Re: [PATCHSET v14 sched_ext/for-7.4] sched: Make proxy execution compatible with sched_ext

From: Tejun Heo

Date: Mon Sep 28 2026 - 16:05:54 EST


On Tue, Sep 22, 2026 at 06:51:39PM +0200, Andrea Righi wrote:
> Andrea Righi (16):
...
> sched_ext: Block proxy donors before taking control
> sched_ext: Fix ops.running/stopping() pairing for proxy-exec donors
> sched_ext: Move reject DSQ draining into core
> sched_ext: Generalize the reject DSQ reenqueue path
> sched_ext: Handle proxy-exec races in remote DSQ transfers
> sched_ext: Split curr|donor references properly
> sched_ext: Track proxy execution for NOHZ_FULL
> sched_ext: Delegate proxy donor admission to BPF schedulers
> sched_ext: Add selftest for blocked donor admission
> sched_ext: scx_qmap: Add proxy execution support
> sched: Allow enabling proxy exec with sched_ext

Applied 6-16 to sched_ext/for-7.4 on top of tip/sched/core (be100c77178e)
with the following conflict resolutions:

- 07: sched/core's c72945693b90 ("sched: Restart fair hrtick after same-task
repicks") changed set_next_task_scx() to take enum snt_e. @first is now
derived as type == SNT_PICK. SNT_REPICK returns early as before.

- 08: for-7.4's 7a919c7f86de ("sched_ext: Test scx_has_subs() inline before
calling sub-sched hooks") split scx_reenq_reject() into an inline wrapper
and __scx_reenq_reject(). Moved the combined function into ext.c and
dropped both from sub.h.

- 08, 09, 10: Kept scx_reenq_wait_dispatching() from 7de9a6fb44ea
("sched_ext: Wait for SCX_OPSS_DISPATCHING before reenqueueing a task") in
reenq_local() and scx_reenq_reject(), after the new proxy retry checks.

- 10: be100c77178e already has the fixed scx_proxy_reenqueue_retry()
signature, so only the body was applied. The rq_owned_post_enq() comment
update was applied over the context changed by cb86607ada73 ("sched_ext:
Don't run ops.dequeue() with a DSQ lock held").

- 11: Context only, the can_stop_tick declaration in set_next_task_scx() and
the rq->donor change in scx_rescue_timerfn().

- 14: Context only, enq_blocked in the selftest Makefile.

- 15: dispatch_to_rescue() inserts without needs_immed() per a0d356696f87
("sched_ext: scx_qmap: Do not add IMMED to rescue inserts"), and the
rescue comment keeps the for-7.4 text.

Can you please verify the result?

Thanks.

--
tejun