Re: [PATCHSET v2 sched_ext/for-7.3] sched_ext: Bandwidth-limited rescue execution for stranded tasks

Andrea Righi <[email protected]> Mon, 3 Aug 2026 22:42:17 +0200
Newsgroups dev.linux.lists.sched-ext,org.kernel.vger.linux-kernel
Message-ID <anD9KfBO6Bu2lLVQ@gpd4>
Hi Tejun,

On Sun, Aug 02, 2026 at 11:54:35AM -1000, Tejun Heo wrote:
> Hello,
> 
> v2: Changes from the sashiko AI review:
> 
>     - Declare scx_sched_all outside the CONFIG_EXT_SUB_SCHED block, the
>       definition is unconditional (0002).
> 
>     - Track the overload grace and usage-decay timestamps in jiffies_64 so
>       that 32-bit arithmetic on them can't wrap (0009).
> 
>     - Drop the now-unread always_enq_immed rodata mirror (0011).
> 
> v1: https://lore.kernel.org/r/[email protected]
> 
> A sub-scheduler holds only the cids its parent granted and nothing
> guarantees that they cover its tasks' affinities. A task that can run on
> none of them currently has no good ending: the scheduler's insert is
> cap-rejected and reenqueued until the repeat limit ejects the scheduler, or
> the task stalls into the watchdog.
> 
> This series adds kernel-side rescue execution. A scheduler marks an insert
> that may be cap-rejected with SCX_ENQ_RESCUE and the kernel, instead of
> bouncing it, runs the task on the target cpu at a small configured
> bandwidth. A rescue starts out non-disruptive. Schedulers that hold caps on
> the cid largely stay in control of the cpu - a preemption cap, for example,
> still lets its holder preempt the rescuee. When a rescue goes unserved for
> too long, it escalates into protected execution.
> 
> When a cpu's rescue queue stays oversaturated past the overload threshold,
> the kernel ejects the sub-scheduler with the highest recent rescue
> consumption on that cpu instead of misblaming the waiter's owner.

With the updated patch 08/12 everything looks good to me.
For the whole series:

Reviewed-by: Andrea Righi <[email protected]>

Thanks,
-Andrea