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.