Windows 8: Thread Scheduling and Multicore Use Superior to 7's

Trev0r09

Member
Member
Messages
11
My laptop's CPU is the intel core i5-2410 (2.3/2.6/2.9 GHz) which is dual core, but is also hyperthreaded, so it has 2 additional "virtual cores". At any rate, I've monitored core use since I bought this laptop with Windows 7 Home Premium x64 back in July of 2011, using Keat's excellent multicore monitoring gadget, and I noticed that the 4th "core" is hardly used at all in Windows 7. Most of the time it sits at 0%, while the other 3 do the heavy lifting.

With Windows 8, this unfair division of labor seems to be a thing of the past, with all cores staying lit up almost all the time, and multitasking does seem quite a bit smoother. In fact, everything seems quite a bit snappier and responsive in Windows 8, in relation to 7.

I'd be curious to see if anyone in this forum is having a similar experience, so please do provide feedback!
 
Hey, finally I found someone who could crosscheck this problem with me.

Does your processor reach turbo boost frequencies, in Task Manager? Ever? Also, disabled core parking is not necessarily a good thing.
 
Teerex,

I tried disabling core parking in Windows 7, and I noticed that my CPU's core speed dropped from 2.3 GHz to 2.0 GHz. Overall system performance did suffer.

With Windows 7, I never kept track of SpeedStep or TurboBoost kicking in, in either Task Manager or with my multicore sidebar gadget, but I have verified that my CPU did hit its rated SpeedStep core speed of 2.6 GHz, as well as its TurboBoost speed of 2.9 GHz when I put the system under load. I verified this using tools such as Topala's "SIW", as well as Everest. But I did note that my 4th "core" was rarely put to use in Windows 7, using both Task Manager and the sidebar gadget. Windows 8 seems to have completely solved this problem.
 
I'm asking you about Turbo in Windows 8. Does Windows 8 task manager ever show a frequency higher than 2,3 GHz?

As for cores - you do only have a two-core processor, and every 'loading' of the virtual cores implies a sharing of the frontend, which is not an optimal situation, especially in applications which were not coded well for parallel execution. So, core parking has a purpose on HT Intel processors.
 
Teerex,

You may be on to something -

So far, I have not seen my CPU frequency go above its core 2.3 GHz in Windows 8's updated Task Manager, even with a fully loaded system, and while running Passmark's 64-bit CPU test. It stays planted @ 2.3 GHz.

btw, I realize that my processor is only two-core (hence my use of quotation marks around other "cores" - HT "cores", as I'm sure you're well aware, are simply virtualized thread pipelines that mirror the architectural states of other, real cores), but the parking issues raised here still apply.
 
Last edited:
There is a thing about hyperhreading that core parking kinda (maybe) addresses, and they are 'improving' it in Ivy, allegedly. Of course it's all minuscule for a rational human being, but still... :p

Some structures within the chip are now better optimized for single threaded execution. Hyper Threading requires a bunch of partitioning of internal structures (e.g. buffers/queues) to allow instructions from multiple threads to use those structures simultaneously. In Sandy Bridge, many of those structures are statically partitioned. If you have a buffer that can hold 20 entries, each thread gets up to 10 entries in the buffer. In the event of a single threaded workload, half of the buffer goes unused. Ivy Bridge reworks a number of these data structures to dynamically allocate resources to threads. Now if there's only a single thread active, these structures will dedicate all resources to servicing that thread. One such example is the DSB queue that serves the uOp cache mentioned above. There's a lookup mechanism for putting uOps into the cache. Those requests are placed into the DSB queue, which used to be split evenly between threads. In Ivy Bridge the DSB queue is allocated dynamically to one or both threads.

Bla bla.. Maybe it's nothing, but I see both core parking and hyperthreading working perfectly in Win 7 Resource Manager and HW64 even for, e. g. Chrome; - for routine programs and tasks.

What happened with that in Windows 8 is thus a mistery. Is it not being detected? HW 64 doesn't work properly on Win 8. Or did they drop the ball on the hardware front and ceased detecting and using Sandy Bridge 'features' properly?
 
Teerex, the task manager do not report actual cpu speed. It only report the speed your CPU is rated at. I have a core i7-2600k clocked at 4.5 and it report 3.4 You need to use CPU-Z to see your cpu frequency in real time.

Edit : CPU-Z isn't working properly yet with windows 8 here.
 
Last edited:
Something is off - Resource monitor shows frequency values like 129 and 131% of maximum frequency, which would indicate active Turbo Boost, but that is not reflected in Task Manager which is at the same time perfectly capable of showing frequencies lower than the nominal maximum frequency. Almost all major third party performance recording apps also seem to be broken, without explanation from anyone so far.
 
Teerex, the task manager do not report actual cpu speed. It only report the speed your CPU is rated at. I have a core i7-2600k clocked at 4.5 and it report 3.4 You need to use CPU-Z to see your cpu frequency in real time.

Edit : CPU-Z isn't working properly yet with windows 8 here.


Well, I know now why CPU-Z is borked and will remain so. Windows 8 uses the APIC timer - to get the CPU frequency for the TaskMan, I guess, the timer which is the same unshareable system resource CPU-Z, AIDA 64 and other tools used to use to get the CPU operating frequency. Win 8 also resets it on-the-fly.

They (CPUID, Aida, etc.) are now all left hanging in the wind.
 
Back
Top