Commit 2d05f842 authored by Morten Rasmussen's avatar Morten Rasmussen
Browse files

sched: Include blocked load in weighted_cpuload

Adds blocked_load_avg to weighted_cpuload() to take recently runnable
tasks into account in load-balancing decisions. This changes the nature
of weighted_cpuload() as it may >0 while there are currently no runnable
tasks on the cpu rq. Hence care must be taken in the load-balance code
to use cfs_rq->runnable_load_avg or nr_running when current rq status is

This patch is highly experimental and will probably have require
additional updates of the users of weighted_cpuload().

cc: Ingo Molnar <>
cc: Peter Zijlstra <>
Signed-off-by: Morten Rasmussen's avatarMorten Rasmussen <>
parent 41833df0
......@@ -4349,7 +4349,8 @@ static void dequeue_task_fair(struct rq *rq, struct task_struct *p, int flags)
/* Used instead of source_load when we know the type == 0 */
static unsigned long weighted_cpuload(const int cpu)
return cpu_rq(cpu)->cfs.runnable_load_avg;
return cpu_rq(cpu)->cfs.runnable_load_avg
+ cpu_rq(cpu)->cfs.blocked_load_avg;
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment