#StackBounty: #windows-10 #cpu #performance #hyper-threading How does the Windows 10 scheduler deal with Hyper Threading since Core Par…

Bounty: 50

I’m running Windows 10 (1607) on an Intel Xeon E3-1231v3 CPU (Haswell, 4 physical cores, 8 logical cores).

When I first had Windows 7 installed on this machine, I could observe that four out of eight logical cores were parked until an application needed more than 4 threads. One can check with Windows resource monitor whether cores are parked or not (example).
As far as I understand, this is an important technique to keep the threads balanced across physical cores, as explained on the Microsoft website: “the Core Parking algorithm and infrastructure is also used to balance processor performance between logical processors on Windows 7 client systems with processors that include Intel Hyper-Threading Technology.

However after upgrading to Windows 10, I noticed that there is no core parking. All logical cores are active all the time and when you run an application using less than four threads you can see how the scheduler equally distributes them across all logical cpu cores. Microsoft employees have confirmed that Core Parking is disabled in Windows 10.

But I wonder why? What was the reason for this? Is there a replacement and if yes, how does it look like? Has Microsoft implemented a new scheduler strategy that made core parking obsolete?


Appendix:

Here is an example on how core parking introduced in Windows 7 can benefit performance (in comparison to Vista which didn’t have core parking feature yet). What you can see is that on Vista, HT (Hyper Threading) harms performance while on Windows 7 it doesn’t:

enter image description here

enter image description here

(source)

I tried to enable Core Parking as mentioned here, but what I observed was that the Core Parking algorithm isn’t Hyper Threading aware anymore. It parked cores 4,5,6,7, while it should have parked core 1,3,5,7 to avoid that threads are assigned to the same physical core. Windows enumerates cores in such a way that two successive indices belong to the same physical core. Very strange. It seems Microsoft has messed this up fundamentally. And no one noticed…

Furthermore, I did some CPU benchmarks using exactly 4 threads.

CPU affinity set to all cores (Windows defualt):

Average running time: 17.094498, standard deviation: 2.472625

CPU affinity set to every other core (so that it runs on different physical cores, best possible scheduling):

Average running time: 15.014045, standard deviation: 1.302473

CPU affinity set to the worst possible scheduling (four logical cores on two physical cores):

Average running time: 20.811493, standard deviation: 1.405621

So there is a performance difference. And you can see that the Windows defualt scheduling ranks between the best and worst possible scheduling, as we would expect it to happen with a non-hyperthreading aware scheduler. However, as pointed out in the comments, there may be other causes responsible for this, like fewer context switches, inference by monitoring applications, etc. So we still don’t have a definitive answer here.

Source code for my benchmark:

#include <stdlib.h>
#include <Windows.h>
#include <math.h>

double runBenchmark(int num_cores) {
  int size = 1000;
  double** source = new double*[size];
  for (int x = 0; x < size; x++) {
    source[x] = new double[size];
  }
  double** target = new double*[size * 2];
  for (int x = 0; x < size * 2; x++) {
    target[x] = new double[size * 2];
  }
  #pragma omp parallel for num_threads(num_cores)
  for (int x = 0; x < size; x++) {
    for (int y = 0; y < size; y++) {
      source[y][x] = rand();
    }
  }
  #pragma omp parallel for num_threads(num_cores)
  for (int x = 0; x < size-1; x++) {
    for (int y = 0; y < size-1; y++) {
      target[x * 2][y * 2] = 0.25 * (source[x][y] + source[x + 1][y] + source[x][y + 1] + source[x + 1][y + 1]);
    }
  }
  double result = target[rand() % size][rand() % size];
  for (int x = 0; x < size * 2; x++) delete[] target[x];
  for (int x = 0; x < size; x++) delete[] source[x];
  delete[] target;
  delete[] source;
  return result;
}

int main(int argc, char** argv)
{
  int num_cores = 4;
  system("pause");  // So we can set cpu affinity before the benchmark starts 
  const int iters = 1000;
  double avgElapsedTime = 0.0;
  double elapsedTimes[iters];
  for (int i = 0; i < iters; i++) {
    LARGE_INTEGER frequency;
    LARGE_INTEGER t1, t2;
    QueryPerformanceFrequency(&frequency);
    QueryPerformanceCounter(&t1);
    runBenchmark(num_cores);
    QueryPerformanceCounter(&t2);
    elapsedTimes[i] = (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart;
    avgElapsedTime += elapsedTimes[i];
  }
  avgElapsedTime = avgElapsedTime / iters;
  double variance = 0;
  for (int i = 0; i < iters; i++) {
    variance += (elapsedTimes[i] - avgElapsedTime) * (elapsedTimes[i] - avgElapsedTime);
  }
  variance = sqrt(variance / iters);
  printf("Average running time: %f, standard deviation: %f", avgElapsedTime, variance);
  return 0;
}


Get this bounty!!!

#StackBounty: #windows-10 #ssl #webdav Windows 10 + WebDAV: Mutual authentication failed: The server's password is out of date at t…

Bounty: 50

We have an existing WebDAV installation with an Apache mod_dav was WebDAV drive hosted at an SSL protected URL with CA issued certificate and basic authentication. MacOSX and Windows < 10 have been able to connect for a number of years.

With the exception of one machine, new Windows 10 machines fail to connect to this WebDAV server. An attempt to map the network drive results in the basic authentication credentials being asked twice, and then the following error appears:

The mapped network drive could not be created because the following error
has occurred:

Mutual Authentication failed: The server's password is out of date at
the domain controller.

More specifically, when the “Finish” button is pressed in the Map Network Drive dialog, a username and password is requested – this dialog is shown before attempting to make any kind of connection to the WebDAV server. A valid username and password is entered, and at this point an approximately 6 second delay is experienced while a dialog is shown saying “Attempting to connect to”. After this delay a single request arrives at the WebDAV server looking like this:

PROPFIND /shared HTTP/1.1
Host: 127.0.0.1:8022
User-Agent: Microsoft-WebDAV-MiniRedir/10.0.10586
translate: f
X-Forwarded-For: xx.xx.xx.xx
X-Forwarded-Host: x.x.x
X-Forwarded-Server: x.x.x
Connection: Keep-Alive

The above request contains no authentication headers, and so the WebDAV server responds as expected with the following:

HTTP/1.1 401 Unauthorized
Date: Wed, 13 Jan 2016 14:18:10 GMT
Server: Apache/2.4.12 (Unix)
WWW-Authenticate: Basic realm="Xxx Xx"
Content-Length: 381
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

[content]

Immediately after receiving this response the Map Network Drive dialog asks for a username and password again. Entering the same username and password triggers a second approximately 6 second delay, after which the “Mutual authentication error” appears without any attempt being made to contact the WebDAV server.

Some notes:

  • There is no domain controller, this is a simple secure WebDAV server protected by Basic Auth and SSL.

  • One Windows 10 machine works fine, we do not know what is special about this machine, and all new Windows 10 machines fail.

  • We tried changing the HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWebClientParameters BasicAuthLevel to 2 and it made no difference (as expected, the original value was 1, and we are using a CA issued SSL certificate).

Has anyone encountered this problem before?


Get this bounty!!!

#StackBounty: #windows-10 #external-hard-drive KeepAliveHD not activating for an external hard drive (Windows 10)

Bounty: 50

My external HDD keeps going to sleep. I’ve gone into Windows power settings, and set USB selective suspend setting to disabled.

I’ve set all USB root hubs to not be powered off to conserve power.

These settings did not prevent the external HDD from disappearing from Windows 10 file explorer.

I download KeepAliveHD which used to work for me, but now will not allow the setting for my G drive on my external HDD to become Enabled.

enter image description here

If I click “Accept” here it remains disabled.

How can I keep my external hard drives awake?

Help appreciated.


Get this bounty!!!

#StackBounty: #windows-7 #windows #windows-10 #internet-explorer Internet Explorer is randomly becoming unresponsive

Bounty: 50

I have no idea what this issue is, but at random times when I’m using my PC Internet Explorer will NOT respond to any clicks, and when I click a tab it will close it instead of switching to that tab.

To fix it I always need to press CTRL+ALT+DEL and click cancel for Internet Explorer to start responding properly again, and for tabs to stop closing when I click them.

I’m running Windows 10, and this issue has also occurred in Windows 7 before I upgraded, is this a Hardware or Software issue?


Get this bounty!!!

#StackBounty: #dual-boot #grub2 #windows-7 #windows-10 Unable to boot to Windows 7 successfully from the first try

Bounty: 50

I had Windows 10 installed along Ubuntu, and would choose from grub loader.

I later uninstalled Win 10 and installed Win 7 in its place, I updated grub in Ubuntu but the Windows 10 entry in grub did not go away.

I now have two entries, both entitled Windows 10, one in /dev/sd1 and the other in /dev/sda2.

Both load Windows 7, but not on the first try. When I initially load it, the screen is dark, while Windows has loaded in the background (I can hear the sounds).

I have to power-off the computer, then choose Windows again for the screen to work. Sometimes I have to repeat this more than once.

I don’t know much in Linux so I can’t tell if the problem is from Windows or grub.


Get this bounty!!!

#StackBounty: #windows-7 #windows #windows-10 #windows-explorer Explorer is randomly becoming unresponsive

Bounty: 50

I have no idea what this issue is, but at random times when I’m using my PC explorer will NOT respond to any clicks at all, when I click a tab it’ll close it instead of switching to that tab, to fix it I always need to press CTRL + ALT + DEL and click cancel for explorer to start responding properly again, and for tabs to stop closing when I click them.

I’m running Windows 10, and this issue also occurred in Windows 7 before I upgraded, is this a Hardware or Software issue?


Get this bounty!!!

#StackBounty: #windows-10 #hdmi #context-menu Menu has black borders after using HDMI in Windows 10

Bounty: 50

This has happened several times, and it’s always after connecting to a TV through HDMI to do a presentation. It happens after disconnecting from the HDMI.

The menu is cropped to the right and bottom, and it has black borders. If the cursor goes over some of the black entries they get repainted, and sub-menus have it as well.

I can fix it only with a restart. Anything I can do about this problem?

enter image description here

Edit:: My video card driver as requested:

enter image description here


Get this bounty!!!

#StackBounty: #windows-10 #resolution #scaling #title-bar Windows 10 strange behavior of title bar

Bounty: 50

I’m facing strange issue on Windows 10. Same application behaves different on same windows version – the difference is seen at title bar appearance:

Above is normal, expected (at least by me) behavior – all three buttons are in the right corner, the application logo and title in the top-left. Under certain circumstances (which I can’t find and thus need your help) the same application title bar looks like this:

enter image description here

The three buttons take all the length of title bar and centered in it, title bar’s height is 30 pixels longer, application logo is top-right and application title disappears at all.

The question is what windows 10 setting(if any) causes such difference for same application?
Thanks in advance.


Get this bounty!!!

#StackBounty: #windows-10 #boot #drivers #services #revo-uninstaller Uninstalling AOMEI Backupper causes Stop code: INACCESSIBLE BOOT D…

Bounty: 100

I’m trying to remove AOMEI Backupper 4.0.2 from my PC. I installed a trial and found it can’t do what I need it to do. Now I can’t remove it without killing my PC. After removal the PC will bootloop 3 times, the 3rd time it will go into “Automatic Repair” and fail. Luckily I can use advanced options > System Restore to recover the machine.

I’ve narrowed it down to these 3 drivers: ambakdrv.sys, ammntdrv.sys, amwrtdrv.sys. Even unchecking these drivers in Autoruns will cause the system to fail.

Autoruns and Everything showing these drivers are from AOMEI Backupper

Revo Uninstaller can’t uninstall it successfully. I even had Revo Uninstaller monitor the installation of this product and I have all the logs for this install. The included un-installer fails because it can’t find the uninst000.dat.

How do I remove this crap software from my machine? How do I completely remove: ambakdrv.sys, ammntdrv.sys, amwrtdrv.sys without breaking the current Windows Install?


Get this bounty!!!

#StackBounty: #windows-server-2008 #iis-7 #windows-10 #iis-8 #asp-classic IIS – Chunked large file uploads fail without error

Bounty: 50

I need a way to send large files (5 GB) to my webserver, for this I use a plugin that can send chuncks of 100MB. I configured request/response limits and if I send files with a maximum of approximately 800MB, then everything is working fine.
If I send larger files then the 10th chunk just stops working. No error or anything, it just stays in a loading state.

I then tried to send smaller chunks (10MB), but then it stalls after 98 requests. With 6mb chunks it also failed and when I finally tried with 1mb chunks it seems to work till the end.
The same thing happens when I don’t send chunks, but regular files in serial with the same size.

Obviously I’m happy that it worked, but it feels like it’s more luck than wisdom, and I’m hesitant to use this in production if I dont understand why the smaller chunks work and the bigger don’t.

Does anybody have any idea what could be causing this behaviour?

I’d rather set the chunk size to about 100mb, so smaller files are send as one file instead of chunks I need to combine again. So I’d like to know how I can enable the larger chunks.


Get this bounty!!!