All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] sched: Remove unlikely annotation from sched_move_task() running check
@ 2017-02-06 16:04 Steven Rostedt
  2017-02-10  8:33 ` [tip:sched/core] sched/core: Remove unlikely() annotation from sched_move_task() tip-bot for Steven Rostedt (VMware)
  0 siblings, 1 reply; 2+ messages in thread
From: Steven Rostedt @ 2017-02-06 16:04 UTC (permalink / raw)
  To: LKML, Peter Zijlstra
  Cc: Ingo Molnar, Andrew Morton, Oleg Nesterov, Vincent Guittot

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

The check for running in sched_move_task() has an unlikely() around it. That
is, it is unlikely that the task being moved is running. That use to be
true. But with a couple of recent updates, it is now likely that the task
will be running.

The first change came from ea86cb4b7621 ("sched/cgroup: Fix
cpu_cgroup_fork() handling") that moved around the use case of
sched_move_task() in do_fork() where the call is now done after the task is
woken (hence it is running).

The second change came from 8e5bfa8c1f84 ("sched/autogroup: Do not use
autogroup->tg in zombie threads") where sched_move_task() is called by the
exit path, by the task that is exiting. Hence it too is running.

Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
Changes from v1.

 Removed annotation entirely, instead of inversing it.

 Changed the subject from:

  sched: Update unlikely to now likely in sched_move_task()

 kernel/sched/core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index c56fb57..dbb295f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -7989,14 +7989,14 @@ void sched_move_task(struct task_struct *tsk)
 
 	if (queued)
 		dequeue_task(rq, tsk, DEQUEUE_SAVE | DEQUEUE_MOVE);
-	if (unlikely(running))
+	if (running)
 		put_prev_task(rq, tsk);
 
 	sched_change_group(tsk, TASK_MOVE_GROUP);
 
 	if (queued)
 		enqueue_task(rq, tsk, ENQUEUE_RESTORE | ENQUEUE_MOVE);
-	if (unlikely(running))
+	if (running)
 		set_curr_task(rq, tsk);
 
 	task_rq_unlock(rq, tsk, &rf);
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-02-10  8:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-06 16:04 [PATCH v2] sched: Remove unlikely annotation from sched_move_task() running check Steven Rostedt
2017-02-10  8:33 ` [tip:sched/core] sched/core: Remove unlikely() annotation from sched_move_task() tip-bot for Steven Rostedt (VMware)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.