Skip to content
  • Peter Zijlstra's avatar
    sched: optimize group load balancer · ffda12a1
    Peter Zijlstra authored
    
    
    I noticed that tg_shares_up() unconditionally takes rq-locks for all cpus
    in the sched_domain. This hurts.
    
    We need the rq-locks whenever we change the weight of the per-cpu group sched
    entities. To allevate this a little, only change the weight when the new
    weight is at least shares_thresh away from the old value.
    
    This avoids the rq-lock for the top level entries, since those will never
    be re-weighted, and fuzzes the lower level entries a little to gain performance
    in semi-stable situations.
    
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    ffda12a1