Messages in this thread | | | Date | Mon, 31 Oct 2011 12:59:16 -0600 | From | Chris Friesen <> | Subject | Re: HT (Hyper Threading) aware process scheduling doesn't work as it should |
| |
On 10/30/2011 03:26 PM, Henrique de Moraes Holschuh wrote: > On Sun, 30 Oct 2011, Artem S. Tashkinov wrote: >> I've found out that even on Linux 3.0.8 the process scheduler doesn't correctly distributes >> the load amongst virtual CPUs. E.g. on a 4-core system (8 total virtual CPUs) the process >> scheduler often run some instances of four different tasks on the same physical CPU. > > Please check how your sched_mc_power_savings and sched_smt_power_savings > tunables. Here's the doc from lesswats.org: > > 'sched_mc_power_savings' tunable under /sys/devices/system/cpu/ controls > the Multi-core related tunable. By default, this is set to '0' (for > optimal performance). By setting this to '1', under light load > scenarios, the process load is distributed such that all the cores in a > processor package are busy before distributing the process load to other > processor packages. > > [...] > > 'sched_smt_power_savings' tunable under /sys/devices/system/cpu/ > controls the multi-threading related tunable. By default, this is set to > '0' (for optimal performance). By setting this to '1', under light load > scenarios, the process load is distributed such that all the threads in > a core and all the cores in a processor package are busy before > distributing the process load to threads and cores, in other processor > packages.
I'm currently running Fedora 14 (2.6.35.14-97.fc14.x86_64 kernel) on an i5 560M cpu. It's supposed to have 2 cores, with hyperthreading.
I created a tiny cpu burner program that just busy-loops. Running two instances on my system they were always scheduled on separate physical cpus regardless of the values in sched_mc_power_savings or sched_smt_power_savings.
Running four instances they were always spread across all four "cpus".
With the newer 8-core chips (plus HT) in multi-socket boards with package-level turbo-boost and NUMA memory access this is going to get really interesting...
Chris
-- Chris Friesen Software Developer GENBAND chris.friesen@genband.com www.genband.com
| |