diff options
| author | Peter Zijlstra <[email protected]> | 2017-05-06 13:59:54 +0000 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2017-09-29 17:35:15 +0000 |
| commit | 1ea6c46a23f1213d1972bfae220db5c165e27bba (patch) | |
| tree | 434a578058f52ae1f26b22b7f61183d0ba6131b2 /fs/proc/array.c | |
| parent | sched/fair: Rewrite PELT migration propagation (diff) | |
| download | kernel-1ea6c46a23f1213d1972bfae220db5c165e27bba.tar.gz kernel-1ea6c46a23f1213d1972bfae220db5c165e27bba.zip | |
sched/fair: Propagate an effective runnable_load_avg
The load balancer uses runnable_load_avg as load indicator. For
!cgroup this is:
runnable_load_avg = \Sum se->avg.load_avg ; where se->on_rq
That is, a direct sum of all runnable tasks on that runqueue. As
opposed to load_avg, which is a sum of all tasks on the runqueue,
which includes a blocked component.
However, in the cgroup case, this comes apart since the group entities
are always runnable, even if most of their constituent entities are
blocked.
Therefore introduce a runnable_weight which for task entities is the
same as the regular weight, but for group entities is a fraction of
the entity weight and represents the runnable part of the group
runqueue.
Then propagate this load through the PELT hierarchy to arrive at an
effective runnable load avgerage -- which we should not confuse with
the canonical runnable load average.
Suggested-by: Tejun Heo <[email protected]>
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
