mirror of https://github.com/torvalds/linux.git
The vmstat_text array contains labels for counters displayed in
/proc/vmstat. It is important to keep the labels in sync with the
counters.
There is a BUILD_BUG_ON() check in vmstat_start() that ensures the size of
the vmstat_text is not smaller than VM_EVENT_COUNTERS. This helps to
catch cases where a new counter is added but the label is not. However,
it does not help if a counter is removed but the label remains.
It would be nice to make the BUILD_BUG_ON() check more strict to catch
such cases. However, when compiling with MEMCG enabled but
VM_EVENT_COUNTERS disabled, the vmstat_text array is larger than
NR_VMSTAT_ITEMS.
This issue arises because some elements of the vmstat_text array are
present when either MEMCG or VM_EVENT_COUNTERS is enabled, but
NR_VMSTAT_ITEMS only accounts for these elements if VM_EVENT_COUNTERS is
enabled.
Instead of adjusting the NR_VMSTAT_ITEMS definition to account for MEMCG,
make MEMCG select VM_EVENT_COUNTERS. VM_EVENT_COUNTERS is enabled in most
configurations anyway.
Link: https://lkml.kernel.org/r/20250604095111.533783-1-kirill.shutemov@linux.intel.com
Fixes:
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| .kunitconfig | ||
| Kconfig | ||
| Makefile | ||
| calibrate.c | ||
| do_mounts.c | ||
| do_mounts.h | ||
| do_mounts_initrd.c | ||
| do_mounts_rd.c | ||
| init_task.c | ||
| initramfs.c | ||
| initramfs_internal.h | ||
| initramfs_test.c | ||
| main.c | ||
| noinitramfs.c | ||
| version-timestamp.c | ||
| version.c | ||