[PATCH 0/6] sched/proxy: doodles..

From: Peter Zijlstra

Date: Tue May 26 2026 - 07:43:13 EST


This goes on top of queue:sched/proxy.

I was trying to do some cleanups and playing around with that PROXY_WAKING
removal, and also moving towards using ->is_blocked to replace the core
se.sched_delayed usage.

But aside from making a few silly mistakes and taking far too long to figure
out WTF happened, I've ran into a snag with the scheme to remove PROXY_WAKING.

This happens in patch #4, where we switch the proxy paths to be guarded by
->is_blocked, rather than ->blocked_on. This works fine for schedule() /
pick_next_task, since that guarantees there are no delayed tasks.

However ttwu_runnable() has no such luck, and if ->is_blocked is all we have,
then it turns out that we'll always fully block delayed tasks and send then
through the long path.

Now, I did me some ttwu-delayed patches a while ago, and Mike has been poking
me about them. Those patches pick out the delayed things before we take locks,
so perhaps we can resolve this that way. I'll have to poke a bit more.

In the meantime, I figured I'd share the patches I got... I think at least the
first 3 might live :-)