• Gautham R Shenoy's avatar
    sched: Nominate idle load balancer from a semi-idle package. · f711f609
    Gautham R Shenoy authored
    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: default avatarGautham R Shenoy <ego@in.ibm.com>
    Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <20090414045530.7645.12175.stgit@sofia.in.ibm.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    f711f609
sched.c 253 KB