This patchset reworks memcg-based accounting of the percpu memory: instead of using two types of chunks (memcg-aware and non-memcg-aware) it treats all chunks as memcg-aware. An extra memory used for objcg arrays will is compensated by a better chunks utilization, so the total memory footprint should be the same or smaller. First two patches are preparational changes and cleanups on the memcg side. The third one is percpu accounting rework. v2: - make all chunks memcg-aware instead of on-demand objcg allocation, by Dennis v1: https://lkml.org/lkml/2021/5/11/1343 Roman Gushchin (3): mm, memcg: mark cgroup_memory_nosocket, nokmem and noswap as __ro_after_init mm, memcg: introduce mem_cgroup_kmem_disabled() percpu: rework memcg accounting include/linux/memcontrol.h | 5 ++ mm/memcontrol.c | 11 ++- mm/percpu-internal.h | 52 +-------------- mm/percpu-km.c | 5 +- mm/percpu-stats.c | 46 +++++-------- mm/percpu-vm.c | 11 ++- mm/percpu.c | 133 +++++++++++++++---------------------- 7 files changed, 88 insertions(+), 175 deletions(-) -- 2.31.1