summaryrefslogtreecommitdiff
path: root/kernel/sched_rt.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2009-09-10 13:42:00 +0200
committerIngo Molnar <mingo@elte.hu>2009-09-15 16:01:04 +0200
commit5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f (patch)
tree46f987010ca017be945831b76d8ea846f1ba8fc9 /kernel/sched_rt.c
parentaaee1203ca52b9db799433c33c9bffc33cdf8909 (diff)
downloadlwn-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.c5
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