On Wed, Sep 03, 2025 at 10:41:21AM -1000, Tejun Heo wrote: > Hello, > > On Wed, Sep 03, 2025 at 10:08:22PM +0200, Peter Zijlstra wrote: > > > I'm a bit confused. This series doesn't have prep patches to add @rf to > > > dl_server_pick_f. Is this the right patch? > > > > Patch 14 seems to be the proposed alternative, and I'm not liking that > > at all. > > > > That rf passing was very much also needed for that other issue; I'm not > > sure why that's gone away. > > Using balance() was my suggestion to stay within the current framework. If > we want to add @rf to pick_task(), that's more fundamental change. We > dropped the discussion in the other thread but I found it odd to add @rf to > pick_task() while disallowing the use of @rf in non-dl-server pick path and > if we want to allow that, we gotta solve the race between pick_task() > dropping rq lock and the ttwu inserting high pri task. I thought the idea was to add rf unconditionally, dl-server or not, it is needed in both cases. Yes, that race needs dealing with. We have this existing pattern that checks if a higher class has runnable tasks and restarting the pick. This is currently only done for pick_next_task_fair() but that can easily be extended. You suggested maybe moving this to the ttwu side -- but up to this point I thought we were in agreement. I'm not sure moving it to the ttwu side makes things better; it would need ttwu to know a pick is in progress and for which class. The existing restart pick is simpler, I think. Yes, the restart is somewhat more complicated if we want to deal with the dl-server, but not terribly so. It could just store a snapshot of rq->dl.dl_nr_running from before the pick and only restart if that went up.