• Peter Zijlstra's avatar
    sched: fair: weight calculations · 8f1bc385
    Peter Zijlstra authored
    In order to level the hierarchy, we need to calculate load based on the
    root view. That is, each task's load is in the same unit.
    
                 A
                / \
               B   1
              / \
             2   3
    
    To compute 1's load we do:
    
    	   weight(1)
    	--------------
    	 rq_weight(A)
    
    To compute 2's load we do:
    
    	  weight(2)      weight(B)
    	------------ * -----------
    	rq_weight(B)   rw_weight(A)
    
    This yields load fractions in comparable units.
    
    The consequence is that it changes virtual time. We used to have:
    
                    time_{i}
      vtime_{i} = ------------
                   weight_{i}
    
      vtime = \Sum vtime_{i} = time / rq_weight.
    
    But with the new way of load calculation we get that vtime equals time.
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    8f1bc385
sched_fair.c 37.8 KB