Linked by David Adams on Wed 4th Aug 2010 18:28 UTC, submitted by estherschindler
Permalink for comment 435626
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
Features
Linked by Thom Holwerda on 05/21/13 21:38 UTC
Linked by Thom Holwerda on 05/20/13 11:29 UTC
Linked by Thom Holwerda on 05/18/13 21:33 UTC
Linked by David Adams on 05/16/13 4:23 UTC
Linked by Thom Holwerda on 05/11/13 21:41 UTC
Linked by Thom Holwerda on 05/08/13 14:22 UTC
Linked by Thom Holwerda on 05/02/13 15:28 UTC
Linked by Thom Holwerda on 04/29/13 21:06 UTC
Linked by Thom Holwerda on 04/24/13 22:24 UTC
Linked by Thom Holwerda on 04/18/13 11:21 UTC
More Features »
Sponsored Links



Member since:
2005-07-11
The kicker comes when the OS scheduler doesn't differentiate between "logical CPU" and "physical CPU" and treats them both as "physical CPUs" with the same number of integer/fpu/execution units. Then it tries to schedule two threads that use the same physical resources, thus causing them to interfere with each other and actually slow things down.
FreeBSD had this issue in 5.x and 6.x. SCHED_BSD (the default scheduler) had no concept of "logical CPUs" and treated each HT "core" as a complete physical CPU. Enabling HT in the BIOS would actually slow things down when more than one app was running. The recommendation at the time was to disable HT in the BIOS and to run a non-SMP kernel (unless there were multiple physical CPUs in the system, of course).
SCHED_ULE in 7.x gained support for scheduling HT cores.
And SCHED_ULE in 8.x has gained more knowledge about NUMA, SMP, SMT, and all the other fun stuff, allowing it to better schedule threads according to what's actually available, where it's running, where the RAM is connected, etc.
Not sure about Linux scheduling, other than it went through the same process, but a lot quicker.
Similarly for Windows XP, which has (I believe) no concept of SMT, and treats an HT core as a full physical CPU. I believe Vista gained support for SMT scheduling, and 7 improved upon it. But don't know for sure.
Edited 2010-08-06 14:47 UTC