Re: [PATCH v4] sched/fair: Prefer fully idle cores for NOHZ balancing

From: Shrikanth Hegde

Date: Tue Aug 04 2026 - 17:19:10 EST




On 8/4/26 11:39 PM, Andrea Righi wrote:
Hi Shrikanth,


Just Curious, making nohz_full=<except first core> yeilds similar numbers?

Yes, provided that the housekeeping core is also excluded from the workload.

I tested this booting with:

nohz_full=1-175,177-351

This leaves CPUs 0 and 176 for housekeeping. I excluded that core from the
workload and ran 87 OpenMP tasks on the remaining node-0 cores (1 task per core,
excluding the housekeeping one):

$ env OMP_NUM_THREADS=87 \
OMP_DYNAMIC=false \
OPENBLAS_LOOPS=10 \
OPENBLAS_PARAM_M=16384 \
OPENBLAS_PARAM_N=16384 \
OPENBLAS_PARAM_K=16384 \
numactl -C 1-87,177-263 --membind=0 \
./benchmark/sgemm.goto 1 1 1

Results:

unpatched : 5.246 TFLOP/s
unpatched+nohz_full : 6.953 TFLOP/s
patched : 6.861 TFLOP/s
patched+nohz_full : 6.984 TFLOP/s

So, nohz_full seems to prevent the problematic ILB wakeups and can produce
similar results for this CPU-bound workload. However, it shouldn't be considered
a sobstiute for the ILB fix, since it requires explicit partitioning and
reserved housekeeping CPUs. Full dyntick also enables context tracking on the
isolated CPUs, adding kernel entry/exit overhead.


That's good to know. Thanks for running them.
I put "just curious", knowing nohz_full is not a solution.