[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240905092858.GA15400@noisy.programming.kicks-ass.net>
Date: Thu, 5 Sep 2024 11:28:58 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Tejun Heo <tj@...nel.org>
Cc: David Vernet <void@...ifault.com>, linux-kernel@...r.kernel.org,
kernel-team@...a.com
Subject: Re: [PATCH sched_ext/for-6.12] sched_ext: Handle cases where
pick_task_scx() is called without preceding balance_scx()
On Wed, Sep 04, 2024 at 02:47:03PM -1000, Tejun Heo wrote:
> sched_ext dispatches tasks from the BPF scheduler from balance_scx() and
> thus every pick_task_scx() call must be preceded by balance_scx(). While
> this usually holds, there are rare cases where a higher sched class's
> balance() returns true indicating that it has tasks to run on the CPU and
> thus terminating balance() calls but fails to actually find the next task to
> run when pick_task() is called.
Oh cute. Which class in particular did you see this do?
Looking at balance_fair() / sched_balance_newidle() I suppose we could
verify we actually have a runnable task once we've re-acquired the
rq-lock and have pulled_task > 0.
Tightening all that up would probably be better than trying to deal with
the fallout like this, hmm?
Powered by blists - more mailing lists