diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2009-09-10 13:42:00 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-09-15 16:01:04 +0200 |
commit | 5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f (patch) | |
tree | 46f987010ca017be945831b76d8ea846f1ba8fc9 /kernel/sched_rt.c | |
parent | aaee1203ca52b9db799433c33c9bffc33cdf8909 (diff) | |
download | lwn-5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f.tar.gz lwn-5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f.zip |
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>
Diffstat (limited to 'kernel/sched_rt.c')
-rw-r--r-- | kernel/sched_rt.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index 2eb4bd6a526c..438380810ac4 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c @@ -938,10 +938,13 @@ static void yield_task_rt(struct rq *rq) #ifdef CONFIG_SMP static int find_lowest_rq(struct task_struct *task); -static int select_task_rq_rt(struct task_struct *p, int sync) +static int select_task_rq_rt(struct task_struct *p, int flag, int sync) { struct rq *rq = task_rq(p); + if (flag != SD_BALANCE_WAKE) + return smp_processor_id(); + /* * If the current task is an RT task, then * try to see if we can wake this RT task up on another |