Re: [RFC PATCH 1/3] sched/fair: Call newidle_balance() from finish_task_switch()

From: Peter Zijlstra
Date: Mon May 11 2020 - 06:58:51 EST


On Wed, Apr 29, 2020 at 08:31:39PM -0500, Scott Wood wrote:
> > If you were to do a queue_balance_callback() from somewhere in the
> > pick_next_task() machinery, then the balance_callback() at the end of
> > __schedule() would run it, and it'd be gone. How would
> > rt_mutex_setprio() / __sched_setscheduler() be affected?
>
> The rq lock is dropped between queue_balance_callback() and the
> balance_callback() at the end of __schedule(). What stops
> setprio/setscheduler on another cpu from doing the callback at that
> point?

Hurmm.. fair point, and that might explain some issues I had a while
back. Let me poke a little at that.