+3
−6
+62
−33
Loading
Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more
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:
Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by:
Ingo Molnar <mingo@elte.hu>