[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240810204542.GA11646@noisy.programming.kicks-ass.net>
Date: Sat, 10 Aug 2024 22:45:42 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Tejun Heo <tj@...nel.org>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
linux-kernel@...r.kernel.org, David Vernet <void@...ifault.com>,
Ingo Molnar <mingo@...hat.com>, Alexei Starovoitov <ast@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [GIT PULL] sched_ext: Initial pull request for v6.11
On Tue, Aug 06, 2024 at 12:09:47PM -1000, Tejun Heo wrote:
> Hello,
>
> On Tue, Aug 06, 2024 at 11:55:35PM +0200, Peter Zijlstra wrote:
> ...
> > > > And the above condition seems a little core_sched specific. Is that
> > > > suitable for the primary pick function?
> > >
> > > Would there be any distinction between pick_task() being called for regular
> > > and core sched paths?
> >
> > There currently is not -- but if you need that, we can definitely add a
> > boolean argument or something. But I think it would be good if a policy
>
> Yeah, SCX might need that.
Right, patch is trivial ofcourse.
> > can inherently know if curr is the better pick.
> > ISTR you having two queue types, one FIFO and one vtime ordered, for
> > both I think it should be possible to determine order, right?
>
> It is tricky because the kernel part can't make assumptions about whether
> two tasks are even on the same timeline. In the usual scheduling path, this
> isn't a problem as the decision is made by the BPF scheduler from balance()
> - if it wants to keep running the current task, it doesn't dispatch a new
> one. Otherwise, it dispatches the next task.
But I have a question.. don't you clear scx.slice when a task needs to
be preempted? That is, why isn't that condition sufficient to determine
if curr has precedence over the first queued? If curr and it is still
queued and its slice is non-zero, take curr.
Am I missing something obvoius?
Powered by blists - more mailing lists