Re: [PATCH v2] sched/deadline: Make dl-server nohz full aware

From: Ionut Nechita (Wind River)

Date: Tue Jul 21 2026 - 08:20:11 EST


On Wed, May 13, 2026 at 11:13:03AM +0200, Juri Lelli wrote:
> The dl_server_timer() originally caused spurious IPIs on nohz_full
> cores, breaking isolation guarantees. While such IPIs cannot be observed
> on recent kernels, dl-server timers for tick-stopped isolated CPUs still
> fire unnecessarily on housekeeping cores.
>
> The problem is that dl-servers are not coordinated with nohz_full tick
> state. Even when the tick stops on an isolated CPU, its dl-server timer
> continues to fire on housekeeping, wasting cycles and potentially
> affecting housekeeping CPU performance.
>
> Fix by managing servers in sched_can_stop_tick():
>
> - When RT tasks run with CFS/SCX tasks, start the appropriate server(s)
> and keep the tick running
> - When only RT tasks remain, stop all servers and allow tick to stop
> (except for >1 RR tasks which need the tick for round-robin)
> - When only CFS/SCX tasks remain, stop all servers before stopping tick

Hi Juri,

I backported this patch on top of v6.18 (dropping the SCX/ext_server
bits, since 6.18 doesn't carry full sched_ext support) and tested it
on my setup (nohz_full isolated CPUs with mixed RT/CFS workloads). It
applies cleanly after that adaptation and behaves as described: no
more spurious dl-server timer wakeups on housekeeping CPUs while the
isolated cores stay busy with RT/CFS tasks, and the round-robin tick
behaviour for >1 RR tasks is preserved. The fair_server's 5% CFS
bandwidth reservation is now visible and accounted for correctly on
the affected CPUs as well.

Reviewed-by: Ionut Nechita <ionut.nechita@xxxxxxxxxxxxx>

Thanks,
Ionut