Commit f7c9928
committed
NVIDIA: SAUCE: sched/deadline: Skip DL server initialization on nohz_full CPUs
The DL scheduler server (fair_server) is initialized on every online CPU
with a default runtime of 50ms/1000ms. On nohz_full isolated CPUs, the
DL server's dl_task_timer hrtimer fires periodically, which triggers
hrtimer_interrupt(). This re-activates the tick's sched_timer (via
tick_nohz_handler returning HRTIMER_RESTART) before the IRQ-exit path
can suppress it through tick_nohz_full_update_tick(), causing the
scheduler tick to run at full HZ rate on isolated CPUs.
This is a regression from v6.8 where the DL server did not exist and
nohz_full CPUs had no spurious hrtimer activity.
Measured with osnoise tracer on ARM64 (nohz_full=4-64):
Before: IRQ=~1000/s SIRQ=~30/s on isolated CPUs
After: IRQ=0 SIRQ=0 on isolated CPUs (100.00000%)
Verified across 6 reboot cycles with the osnoise method (CPUs 0-60,
10s runtime) - all isolated CPUs consistently at 100.00000% CPU
availability.
Skip DL server initialization for nohz_full CPUs since they are
isolated and do not need CFS bandwidth protection.
Fixes: bd9bbc9 ("sched: Rework dl_server")
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Daniel Bristot de Oliveira <bristot@kernel.org>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Koba Ko <kobak@nvidia.com>1 parent b406505 commit f7c9928
1 file changed
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1620 | 1620 | | |
1621 | 1621 | | |
1622 | 1622 | | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
1623 | 1626 | | |
1624 | 1627 | | |
1625 | 1628 | | |
| |||
0 commit comments