The Evolution of the Windows Kernel

cageymaru

Fully [H]
Joined
Apr 10, 2003
Messages
22,080
Hari Pulapaka of the Windows Kernel Team at Microsoft has explained the evolution of the Windows kernel and how it can scale from an ATM machine to a pre-release Windows DataCenter class machine with 896 cores supporting 1792 logical processors and 2TB of RAM. The discussion starts its focus on Windows refactoring for a DLL, statistics such as how many lines of code are in the kernel, and then transitions to the Windows scheduler and the design principles implemented to scale past 64 logical processors.

Windows 10 brought us another innovation in the scheduler space with CPU Sets. CPU Sets allow a process to partition the system such that its process can take over a group of processors and not allow any other process or system to run their threads on those processors. Windows Kernel even steers Interrupts from devices away from the processors that are part of your CPU set. This ensures that even devices cannot target their code on the processors which have been partitioned off by CPU sets for your app or process. Think of this as a low-tech Virtual Machine.
 
All the pretty tech terns in the world mean poop if the damn thing is not stable. I have had the pleasure of rolling back customers to Windows 7 due to the problems with Windows 10 and its insane updates. While I like the steady work, I am at an age where I would like to dial it back a bit.

EDIT: The ones I have rolled back were not installed by me. Those guys got fired due to the problems. From what I can tell, they are the standard issue problems (updates resetting paramters is the big one).
 
All the pretty tech terns in the world mean poop if the damn thing is not stable. I have had the pleasure of rolling back customers to Windows 7 due to the problems with Windows 10 and its insane updates. While I like the steady work, I am at an age where I would like to dial it back a bit.

EDIT: The ones I have rolled back were not installed by me. Those guys got fired due to the problems. From what I can tell, they are the standard issue problems (updates resetting paramters is the big one).
I am pretty sure Microsoft worked out the setting reset issue a long while back. That being said I’m ditching Windows 10 left and right, not for any of those issues mind you. ChromeOS + Citrix server does everything we need at a lower price point with fewer stoppages and slowdowns with a fraction of the IT overhead. The Google metric tracking is just as easy to midigate and licensing for google admin is cheaper than my Enterprise licensing for all those desktops.
 
Its a nice article.

And I'm quite certain the Windows kernel is weel thought through, robust, and reasonably well optimized.
Something the developers could and should be proud off.

Its a shame its let down so much by the rest of the OS. Especially Windows update has become a nuisance. In the last week it has given me problems on 2 out 3 machines I have worked with.

Prompting that an update (1803) is ready, shows that its compatible, but fails somewhere during the update. And the update system then tries again and agian and again, and you cant stop it, and no other updates are seemingly installed meanwhile.
No help is given as to how to fix the problems, besides a reinstall, which is often not a disereable option.
You are caught in an endless update loop that eats your CPU resources and your time, each time you wait for a failed attempt.

They really need to work on this.
 
I am pretty sure Microsoft worked out the setting reset issue a long while back. That being said I’m ditching Windows 10 left and right, not for any of those issues mind you. ChromeOS + Citrix server does everything we need at a lower price point with fewer stoppages and slowdowns with a fraction of the IT overhead. The Google metric tracking is just as easy to midigate and licensing for google admin is cheaper than my Enterprise licensing for all those desktops.

No, they are still resetting parameters back to default with no notification of doing so. I just wrestled with another batch of systems that got updated and everything broke. Really did not break, but had reset back to defaults and required the tedium of setting them again.

From a consultant perspective Windows 10 is awesome! It has increased my billable hours by 132%! From a user perspective,...well hell, as long as they pay the bills,...why should I care?

On server side, I do not do Windows. If they want Windows, they can get someone else.
 
No, they are still resetting parameters back to default with no notification of doing so. I just wrestled with another batch of systems that got updated and everything broke. Really did not break, but had reset back to defaults and required the tedium of setting them again.

From a consultant perspective Windows 10 is awesome! It has increased my billable hours by 132%! From a user perspective,...well hell, as long as they pay the bills,...why should I care?

On server side, I do not do Windows. If they want Windows, they can get someone else.
In a domained Enterprise environment I can’t say this ever happened on this end, but I have been avoiding the latest update. I do use the GPO setting to delete profile data older than 1 year old, as the user data deletion glitch seems to happen because of that I am waiting for the all clear before I push it out. I really should try Home edition at some point to see what all this hate is about.
 
In a domained Enterprise environment I can’t say this ever happened on this end, but I have been avoiding the latest update. I do use the GPO setting to delete profile data older than 1 year old, as the user data deletion glitch seems to happen because of that I am waiting for the all clear before I push it out. I really should try Home edition at some point to see what all this hate is about.
I always wait for any Win 10 build to be "Business ready" before deploying it, especially if its an in-place upgrade.
 
Well, how come they are having such issues with the AMD 2990WX not scaling above 16 cores then?
 
Because the workloads people are trying to use do not scale. Not every task is going to scale toward infinity.

I think that was a reference at the scaling tests done by Phoronix on linux vs the poor scaling on Windows.
 
Interesting they mention Game Mode offering this new "CPU Sets" functionality. I've been wondering if that mode was just some marketing BS or if there were any real technical benefits. Reserving some cores for a game is something that could prove useful as CPUs with 8+ cores become more mainstream. Windows always seemed to me to have a bad habit of jumping threads around for no good reason, so even if you have the CPU power to multitask while gaming you still might get some stuttering. I usually just set CPU affinity and priority, but this seems to go a bit further.

Hopefully this API can be used outside the requirement tying game mode to windows store apps only. But knowing microsoft, they'll shamefully waste good tech for the chance to lock you in.
 
Interesting they mention Game Mode offering this new "CPU Sets" functionality. I've been wondering if that mode was just some marketing BS or if there were any real technical benefits. Reserving some cores for a game is something that could prove useful as CPUs with 8+ cores become more mainstream. Windows always seemed to me to have a bad habit of jumping threads around for no good reason, so even if you have the CPU power to multitask while gaming you still might get some stuttering. I usually just set CPU affinity and priority, but this seems to go a bit further.

Hopefully this API can be used outside the requirement tying game mode to windows store apps only. But knowing microsoft, they'll shamefully waste good tech for the chance to lock you in.

I been using process lasso to run games on certain cores and firefox on the other. Creates a very smooth gaming experience
 
I think that was a reference at the scaling tests done by Phoronix on linux vs the poor scaling on Windows.

That test was specifically for a NUMA architecture; in that type of situation Window's thread scheduling design will hinder performance due to threads being assigned to different cores (resulting in significantly more memory access, which you do NOT want in a NUMA architecture). What Phoronix uncovered wasn't Windows lack of scaling, but Windows scheduling deficiencies in a NUMA environment.
 
Interesting they mention Game Mode offering this new "CPU Sets" functionality. I've been wondering if that mode was just some marketing BS or if there were any real technical benefits. Reserving some cores for a game is something that could prove useful as CPUs with 8+ cores become more mainstream. Windows always seemed to me to have a bad habit of jumping threads around for no good reason, so even if you have the CPU power to multitask while gaming you still might get some stuttering. I usually just set CPU affinity and priority, but this seems to go a bit further.

Hopefully this API can be used outside the requirement tying game mode to windows store apps only. But knowing microsoft, they'll shamefully waste good tech for the chance to lock you in.

Yeah, the thread jumping did not help the FX8350 in any way. (Those were good processors for what they were capable of but, oh well, they did run better under Linux, from what I was told.)
 
There's no shortage of janky shit in Windows but IO Completion Ports are basically awesome and definitely something that's really done right.
 
Back
Top