Re: [PATCH] mm/memcontrol: avoid false sharing between vmstats and events
Andrew Morton <[email protected]>
| Newsgroups | org.kernel.vger.cgroups,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 17 Aug 2026 03:38:35 -0700 Usama Arif <[email protected]> wrote: > Moving v1 userspace eventfd handling into memcontrol-v1.c shrank > struct vmpressure from 112 to 24 bytes when CONFIG_MEMCG_V1 is disabled. > This moved memory_events_local[MEMCG_SWAP_FAIL] and the hot > vmstats_percpu pointer onto the same cacheline. > > The stress-ng mremap stressor exercises MADV_PAGEOUT with swap > disabled, generating about 20 million MEMCG_SWAP_FAIL updates per > 60-second run on a 176-CPU test system. Those writes bounce the line > while memcg statistics paths load vmstats_percpu. > > Move cgwb_list into the existing alignment gap and cacheline-align > vmstats_percpu. This separates the pointer from the event counters > without increasing the size of struct mem_cgroup in the tested > configuration. > > The blamed commit reduced median mremap throughput by 4.38% on the > test system with one socket. The patched kernel brings the performance > to within 0.5% of the parent which is within the observed boot-to-boot > spread (up to 1.2%). Cool, thanks. > Fixes: ea928e9e18da ("mm/vmpressure: move v1 userspace eventfd code into memcontrol-v1.c") That's in mm-stable so I'll squeeze this fix into next week's 7.3-rc1 merge pile.