• P
    sched: Remove unnecessary iteration over sched domains to update nr_busy_cpus · 37dc6b50
    Preeti U Murthy 提交于
    nr_busy_cpus parameter is used by nohz_kick_needed() to find out the
    number of busy cpus in a sched domain which has SD_SHARE_PKG_RESOURCES
    flag set.  Therefore instead of updating nr_busy_cpus at every level
    of sched domain, since it is irrelevant, we can update this parameter
    only at the parent domain of the sd which has this flag set. Introduce
    a per-cpu parameter sd_busy which represents this parent domain.
    
    In nohz_kick_needed() we directly query the nr_busy_cpus parameter
    associated with the groups of sd_busy.
    
    By associating sd_busy with the highest domain which has
    SD_SHARE_PKG_RESOURCES flag set, we cover all lower level domains
    which could have this flag set and trigger nohz_idle_balancing if any
    of the levels have more than one busy cpu.
    
    sd_busy is irrelevant for asymmetric load balancing. However sd_asym
    has been introduced to represent the highest sched domain which has
    SD_ASYM_PACKING flag set so that it can be queried directly when
    required.
    
    While we are at it, we might as well change the nohz_idle parameter to
    be updated at the sd_busy domain level alone and not the base domain
    level of a CPU.  This will unify the concept of busy cpus at just one
    level of sched domain where it is currently used.
    
    Signed-off-by: Preeti U Murthy<preeti@linux.vnet.ibm.com>
    Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
    Cc: svaidy@linux.vnet.ibm.com
    Cc: vincent.guittot@linaro.org
    Cc: bitbucket@online.de
    Cc: benh@kernel.crashing.org
    Cc: anton@samba.org
    Cc: Morten.Rasmussen@arm.com
    Cc: pjt@google.com
    Cc: peterz@infradead.org
    Cc: mikey@neuling.org
    Link: http://lkml.kernel.org/r/20131030031252.23426.4417.stgit@preeti.in.ibm.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
    37dc6b50
sched.h 36.3 KB