summaryrefslogtreecommitdiff
path: root/kernel/sched_stoptask.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2011-04-05 17:23:44 +0200
committerIngo Molnar <mingo@elte.hu>2011-04-14 08:52:35 +0200
commitfd2f4419b4cbe8fe90796df9617c355762afd6a4 (patch)
tree9eefa7f46c7163f00adb416ff4b9db97653d2665 /kernel/sched_stoptask.c
parentd7c01d27ab767a30d672d1fd657aa8336ebdcbca (diff)
downloadlwn-fd2f4419b4cbe8fe90796df9617c355762afd6a4.tar.gz
lwn-fd2f4419b4cbe8fe90796df9617c355762afd6a4.zip
sched: Provide p->on_rq
Provide a generic p->on_rq because the p->se.on_rq semantics are unfavourable for lockless wakeups but needed for sched_fair. In particular, p->on_rq is only cleared when we actually dequeue the task in schedule() and not on any random dequeue as done by things like __migrate_task() and __sched_setscheduler(). This also allows us to remove p->se usage from !sched_fair code. Reviewed-by: Frank Rowand <frank.rowand@am.sony.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Nick Piggin <npiggin@kernel.dk> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/20110405152728.949545047@chello.nl
Diffstat (limited to 'kernel/sched_stoptask.c')
-rw-r--r--kernel/sched_stoptask.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched_stoptask.c b/kernel/sched_stoptask.c
index 1ba2bd40fdac..f607de42e6fc 100644
--- a/kernel/sched_stoptask.c
+++ b/kernel/sched_stoptask.c
@@ -26,7 +26,7 @@ static struct task_struct *pick_next_task_stop(struct rq *rq)
{
struct task_struct *stop = rq->stop;
- if (stop && stop->se.on_rq)
+ if (stop && stop->on_rq)
return stop;
return NULL;