Re: [SLUB] nfs_page cmpxchg_double_fail and perf lock perturbation on dual-socket NFS/RDMA

From: Vlastimil Babka (SUSE)

Date: Fri Sep 18 2026 - 03:09:33 EST


On 9/17/26 18:25, Tim Menninger wrote:
> It reproduces with slab_nomerge.
>
> I booted the same kernel with:
>
> $ cat /proc/cmdline
> ... slab_nomerge ...
>
> Uninstrumented throughput remains in the high-45 to low-46 GB/s
> range, as before. During perf lock it was around 30 GB/s in these
> runs, versus roughly 25 GB/s previously.
>
> The dominant lock measurements are essentially unchanged:
>
> default slab_nomerge
> unpinned/node0
> contentions 4,782,839 4,858,759
> total wait 14.39 min 14.26 min
> average wait 180.47 us 176.13 us
>
> node0/node0
> contentions 4,582,012 4,686,729
> total wait 14.13 min 14.34 min
> average wait 185.05 us 183.53 us
>
> unpinned/balanced
> contentions 4,572,196 4,544,677
> total wait 12.81 min 12.56 min
> average wait 168.14 us 165.84 us
>
> The uninstrumented cmpxchg_double_fail deltas were:
>
> default slab_nomerge
> unpinned/node0 7,471 8,892
> node0/node0 713 457
> unpinned/balanced 1,503 1,504
>
> The CPU-utilization change while perf lock is active also remains.
> System-wide %idle for uninstrumented/instrumented windows was:
>
> default slab_nomerge
> uninstr. instr. uninstr. instr.
> unpinned/node0 31.46% 3.60% 23.02% 2.15%
> node0/node0 84.26% 12.07% 84.62% 11.85%
> unpinned/balanced 66.86% 14.83% 66.58% 14.78%

I believe the weirdest part in the original report was how slub stat
counters such as free_fastpath etc got order of magnitude higher with
instrumented vs non-instrumented.
Did any of that change with slab_nomerge?

> Thanks,
> Tim