This series converts memcg stats to be irq safe i.e. memcg stats can be updated in any context (task, softirq or hardirq) without disabling the irqs. This is still not nmi-safe on all architectures but after this series converting memcg charging and stats nmi-safe will be easier. Changes since RFC[1]: -------------------- 1. Rebased on next-20250513 (mm tree has some conflicts with cgroup tree). 2. Does not depend of nmi-safe memcg series [2]. 3. Made memcg_rstat_updated re-entrant using this_cpu_* ops as suggested by Vlastimil. 4. Fixes some spelling mistakes as suggested by Vlastimil. 5. Rearranged the 6th and 7th patch as suggested by Vlastimil. Link: http://lore.kernel.org/20250513031316.2147548-1-shakeel.butt@xxxxxxxxx [1] Link: http://lore.kernel.org/20250509232859.657525-1-shakeel.butt@xxxxxxxxx [2] Shakeel Butt (7): memcg: memcg_rstat_updated re-entrant safe against irqs memcg: move preempt disable to callers of memcg_rstat_updated memcg: make mod_memcg_state re-entrant safe against irqs memcg: make count_memcg_events re-entrant safe against irqs memcg: make __mod_memcg_lruvec_state re-entrant safe against irqs memcg: no stock lock for cpu hot-unplug memcg: objcg stock trylock without irq disabling include/linux/memcontrol.h | 41 +-------- mm/memcontrol-v1.c | 6 +- mm/memcontrol.c | 170 +++++++++++++++---------------------- mm/swap.c | 8 +- mm/vmscan.c | 14 +-- 5 files changed, 86 insertions(+), 153 deletions(-) -- 2.47.1