sched: Nominate idle load balancer from a semi-idle package.
authorGautham R Shenoy <ego@in.ibm.com>
Tue, 14 Apr 2009 04:55:30 +0000 (10:25 +0530)
committerIngo Molnar <mingo@elte.hu>
Tue, 14 Apr 2009 09:49:19 +0000 (11:49 +0200)
commitf711f6090a81cbd396b63de90f415d33f563af9b
treeb2212ddcae5a88a1ca6a521a892003af1d5a35bc
parent002f128b473fb82f454654be5081b0919ee01ab2
sched: Nominate idle load balancer from a semi-idle package.

Currently the nomination of idle-load balancer is done by choosing the first
idle cpu in the nohz.cpu_mask. This may not be power-efficient, since
such an idle cpu could come from a completely idle core/package thereby
preventing the whole core/package from being in a low-power state.

For eg, consider a quad-core dual package system. The cpu numbering need
not be sequential and can something like [0, 2, 4, 6] and [1, 3, 5, 7].
With sched_mc/smt_power_savings and the power-aware IRQ balance, we try to keep
as fewer Packages/Cores active. But the current idle load balancer logic
goes against this by choosing the first_cpu in the nohz.cpu_mask and not
taking the system topology into consideration.

Improve the algorithm to nominate the idle load balancer from a semi idle
cores/packages thereby increasing the probability of the cores/packages being
in deeper sleep states for longer duration.

The algorithm is activated only when sched_mc/smt_power_savings != 0.

Signed-off-by: Gautham R Shenoy <ego@in.ibm.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20090414045530.7645.12175.stgit@sofia.in.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c
This page took 0.02531 seconds and 5 git commands to generate.