aboutsummaryrefslogtreecommitdiffstats
path: root/fs/proc/array.c
diff options
context:
space:
mode:
authorPeter Zijlstra <[email protected]>2017-05-08 15:30:46 +0000
committerIngo Molnar <[email protected]>2017-09-29 17:35:15 +0000
commit0e2d2aaaae52c247c047d14999b93486bdbd3431 (patch)
tree7bff425ce22d58f3cdd054065eec5b5bd2ea8edf /fs/proc/array.c
parentsched/fair: Rewrite cfs_rq->removed_*avg (diff)
downloadkernel-0e2d2aaaae52c247c047d14999b93486bdbd3431.tar.gz
kernel-0e2d2aaaae52c247c047d14999b93486bdbd3431.zip
sched/fair: Rewrite PELT migration propagation
When an entity migrates in (or out) of a runqueue, we need to add (or remove) its contribution from the entire PELT hierarchy, because even non-runnable entities are included in the load average sums. In order to do this we have some propagation logic that updates the PELT tree, however the way it 'propagates' the runnable (or load) change is (more or less): tg->weight * grq->avg.load_avg ge->avg.load_avg = ------------------------------ tg->load_avg But that is the expression for ge->weight, and per the definition of load_avg: ge->avg.load_avg := ge->weight * ge->avg.runnable_avg That destroys the runnable_avg (by setting it to 1) we wanted to propagate. Instead directly propagate runnable_sum. Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'fs/proc/array.c')
0 files changed, 0 insertions, 0 deletions