diff options
author | Kirill Tkhai <tkhai@yandex.ru> | 2012-11-22 15:02:15 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-01-24 11:14:30 -0500 |
commit | 1158ddb55416855fd17abe3214298f736f00426a (patch) | |
tree | 493bc349d3e2b33b6c851ff72b2b15b7cc683ee8 /kernel/sched | |
parent | a59f4e079d19464eebb9b06513a1d4f55fdae5ba (diff) |
sched/rt: Add reschedule check to switched_from_rt()
Reschedule rq->curr if the first RT task has just been
pulled to the rq.
Signed-off-by: Kirill V Tkhai <tkhai@yandex.ru>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tkhai Kirill <tkhai@yandex.ru>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/118761353614535@web28f.yandex.ru
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched')
-rw-r--r-- | kernel/sched/rt.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 418feb01344e..29bda5bdf2a5 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c | |||
@@ -1889,8 +1889,11 @@ static void switched_from_rt(struct rq *rq, struct task_struct *p) | |||
1889 | * we may need to handle the pulling of RT tasks | 1889 | * we may need to handle the pulling of RT tasks |
1890 | * now. | 1890 | * now. |
1891 | */ | 1891 | */ |
1892 | if (p->on_rq && !rq->rt.rt_nr_running) | 1892 | if (!p->on_rq || rq->rt.rt_nr_running) |
1893 | pull_rt_task(rq); | 1893 | return; |
1894 | |||
1895 | if (pull_rt_task(rq)) | ||
1896 | resched_task(rq->curr); | ||
1894 | } | 1897 | } |
1895 | 1898 | ||
1896 | void init_sched_rt_class(void) | 1899 | void init_sched_rt_class(void) |