sched: Simplify sched_move_task()
Use guards to reduce gotos and simplify control flow. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
af7c5763f5
commit
fa614b4feb
@ -10437,17 +10437,18 @@ void sched_move_task(struct task_struct *tsk)
|
||||
int queued, running, queue_flags =
|
||||
DEQUEUE_SAVE | DEQUEUE_MOVE | DEQUEUE_NOCLOCK;
|
||||
struct task_group *group;
|
||||
struct rq_flags rf;
|
||||
struct rq *rq;
|
||||
|
||||
rq = task_rq_lock(tsk, &rf);
|
||||
CLASS(task_rq_lock, rq_guard)(tsk);
|
||||
rq = rq_guard.rq;
|
||||
|
||||
/*
|
||||
* Esp. with SCHED_AUTOGROUP enabled it is possible to get superfluous
|
||||
* group changes.
|
||||
*/
|
||||
group = sched_get_task_group(tsk);
|
||||
if (group == tsk->sched_task_group)
|
||||
goto unlock;
|
||||
return;
|
||||
|
||||
update_rq_clock(rq);
|
||||
|
||||
@ -10472,9 +10473,6 @@ void sched_move_task(struct task_struct *tsk)
|
||||
*/
|
||||
resched_curr(rq);
|
||||
}
|
||||
|
||||
unlock:
|
||||
task_rq_unlock(rq, tsk, &rf);
|
||||
}
|
||||
|
||||
static inline struct task_group *css_tg(struct cgroup_subsys_state *css)
|
||||
|
Loading…
x
Reference in New Issue
Block a user