sched: Hook sched_balance_self() into sched_class::select_task_rq()
Rather ugly patch to fully place the sched_balance_self() code inside the fair class. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
aaee1203ca
commit
5f3edc1b1e
@@ -1300,7 +1300,9 @@ wake_affine(struct sched_domain *this_sd, struct rq *this_rq,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int select_task_rq_fair(struct task_struct *p, int sync)
|
||||
static int sched_balance_self(int cpu, int flag);
|
||||
|
||||
static int select_task_rq_fair(struct task_struct *p, int flag, int sync)
|
||||
{
|
||||
struct sched_domain *sd, *this_sd = NULL;
|
||||
int prev_cpu, this_cpu, new_cpu;
|
||||
@@ -1314,6 +1316,9 @@ static int select_task_rq_fair(struct task_struct *p, int sync)
|
||||
this_rq = cpu_rq(this_cpu);
|
||||
new_cpu = prev_cpu;
|
||||
|
||||
if (flag != SD_BALANCE_WAKE)
|
||||
return sched_balance_self(this_cpu, flag);
|
||||
|
||||
/*
|
||||
* 'this_sd' is the first domain that both
|
||||
* this_cpu and prev_cpu are present in:
|
||||
|
Reference in New Issue
Block a user