Entities of equal weight should receive equitable distribution of cpu time. This is challenging in the case of a task_group's shares as execution may be occurring on multiple cpus simultaneously. To handle this we divide up the shares into weights proportionate with the load on each cfs_rq. This does not however, account for the fact that the sum of the parts may be less than one cpu and so we need to normalize: load(tg) = min(runnable_avg(tg), 1) * tg->shares Where runnable_avg is the aggregate time in which the task_group had runnable children. Signed-off-by: Paul Turner <pjt@google.com> Reviewed-by: Ben Segall <bsegall@google.com>. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/20120823141506.930124292@google.com Signed-off-by: Ingo Molnar <mingo@kernel.org> |
||
---|---|---|
.. | ||
Makefile | ||
auto_group.c | ||
auto_group.h | ||
clock.c | ||
core.c | ||
cpupri.c | ||
cpupri.h | ||
cputime.c | ||
debug.c | ||
fair.c | ||
features.h | ||
idle_task.c | ||
rt.c | ||
sched.h | ||
stats.c | ||
stats.h | ||
stop_task.c |