sched: Allow put_prev_task() to drop rq->lock
authorPeter Zijlstra <peterz@infradead.org>
Wed, 29 May 2019 20:36:43 +0000 (20:36 +0000)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 8 Aug 2019 07:09:31 +0000 (09:09 +0200)
commit5f2a45fc9e89e022233085e6f0f352eb6ff770bb
tree6f619f4db2fe3ab531d4a27807af7f6a8e7d2fe9
parent5ba553eff0c3a7c099b1e29a740277a82c0c3314
sched: Allow put_prev_task() to drop rq->lock

Currently the pick_next_task() loop is convoluted and ugly because of
how it can drop the rq->lock and needs to restart the picking.

For the RT/Deadline classes, it is put_prev_task() where we do
balancing, and we could do this before the picking loop. Make this
possible.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Valentin Schneider <valentin.schneider@arm.com>
Cc: Aaron Lu <aaron.lwe@gmail.com>
Cc: mingo@kernel.org
Cc: Phil Auld <pauld@redhat.com>
Cc: Julien Desfossez <jdesfossez@digitalocean.com>
Cc: Nishanth Aravamudan <naravamudan@digitalocean.com>
Link: https://lkml.kernel.org/r/e4519f6850477ab7f3d257062796e6425ee4ba7c.1559129225.git.vpillai@digitalocean.com
kernel/sched/core.c
kernel/sched/deadline.c
kernel/sched/fair.c
kernel/sched/idle.c
kernel/sched/rt.c
kernel/sched/sched.h
kernel/sched/stop_task.c