Re: [PATCH v3 09/14] sched: Split scheduler execution context

From: John Stultz
Date: Tue Apr 25 2023 - 10:52:49 EST


On Sat, Apr 22, 2023 at 11:14 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Tue, Apr 11, 2023 at 04:25:06AM +0000, John Stultz wrote:
> > From: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> >
> > Lets define the scheduling context as all the scheduler state in
> > task_struct and the execution context as all state required to run the
> > task.
> >
> > Currently both are intertwined in task_struct. We want to logically
> > split these such that we can run the execution context of one task
> > with the scheduling context of another.
> >
> > To this purpose introduce rq_selected() to point to the task_struct
> > used for scheduler state and preserve rq_curr() to denote the execution
> > context.
>
> I can't say I like the rq_selected() naming :/

So, I'm not married to any particular naming, but the earlier use of
"rq->proxy" in the earlier patches really made very little sense, at
least from my perspective of the word (especially as it had logical
knots where it would set rq->proxy to what pick_next_task() returned,
and then go and set curr to the results of proxy()). So it seemed
cleanest to separate it out and use a different term.

We could do "rq_picked()", or "rq_next", or ... suggestions are welcome.

Thanks again for taking a look here and providing feedback! I really
appreciate it!
-john