linux/include
Shakeel Butt 940b01fc8d memcg: nmi safe memcg stats for specific archs
There are archs which have NMI but does not support this_cpu_* ops safely
in the nmi context but they support safe atomic ops in nmi context.  For
such archs, let's add infra to use atomic ops for the memcg stats which
can be updated in nmi.

At the moment, the memcg stats which get updated in the objcg charging
path are MEMCG_KMEM, NR_SLAB_RECLAIMABLE_B & NR_SLAB_UNRECLAIMABLE_B. 
Rather than adding support for all memcg stats to be nmi safe, let's just
add infra to make these three stats nmi safe which this patch is doing.

Link: https://lkml.kernel.org/r/20250519063142.111219-3-shakeel.butt@linux.dev
Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
History 2025-05-31 22:46:08 -07:00
..
acpi gcc-15: acpi: sprinkle random '__nonstring' crumbles around 2025-04-20 11:57:54 -07:00
asm-generic mm: implement for_each_valid_pfn() for CONFIG_FLATMEM 2025-05-12 23:50:43 -07:00
clocksource KVM/arm64 updates for 6.14 2025-01-28 09:01:36 -08:00
crypto crypto: ahash - Disable request chaining 2025-04-12 09:33:09 +08:00
cxl cxl: Fix devm host device for CXL fwctl initialization 2025-04-18 09:33:04 -07:00
drm Short summary of fixes pull: 2025-05-09 08:52:24 +10:00
dt-bindings Char/Misc/IIO driver updates for 6.15-rc1 2025-04-01 11:26:08 -07:00
hyperv x86/hyperv: Add comments about hv_vpset and var size hypercall input args 2025-03-21 18:24:22 +00:00
keys keys: drop shadowing dead prototype 2025-01-21 11:25:23 +02:00
kunit kunit: Spelling s/slowm/slow/ 2025-04-08 14:57:24 -06:00
kvm Merge branch 'kvm-arm64/pmu-fixes' into kvmarm/next 2025-03-19 14:54:52 -07:00
linux memcg: nmi safe memcg stats for specific archs 2025-05-31 22:46:08 -07:00
math-emu powerpc/math-emu: Remove -w build flag and fix warnings 2022-09-05 17:28:25 +10:00
media media: v4l2-core: Introduce v4l2_query_ext_ctrl_to_v4l2_queryctrl 2025-03-05 10:43:26 +01:00
memory memory: renesas-rpc-if: Remove Runtime PM wrappers 2023-01-23 11:48:00 +01:00
misc cxl: Remove driver 2025-03-16 22:04:27 +11:00
net net: export a helper for adding up queue stats 2025-05-08 11:56:12 +02:00
pcmcia ARM: pxa/sa1100: move I/O space to PCI_IOBASE 2022-05-07 22:56:17 +02:00
ras PCI/ERR: Handle TLP Log in Flit mode 2025-02-21 17:31:45 -06:00
rdma RDMA/mlx5: Fix compilation warning when USER_ACCESS isn't set 2025-04-07 15:14:34 -03:00
rv rv: Reset per-task monitors also for idle tasks 2025-01-23 12:16:04 -05:00
scsi scsi: usb: Rename the RESERVE and RELEASE constants 2025-02-12 22:20:55 -05:00
soc soc: driver updates for 6.15, part 1 2025-03-27 09:05:55 -07:00
sound ASoC: Fixes for v6.15 2025-05-01 10:22:20 +02:00
target scsi: target: iscsi: switch to using the crc32c library 2024-12-01 17:23:02 -08:00
trace mm: remove VM_PAT 2025-05-22 14:55:37 -07:00
uapi fs/proc: extend the PAGEMAP_SCAN ioctl to report guard regions 2025-05-11 17:48:16 -07:00
ufs scsi: ufs: Introduce quirk to extend PA_HIBERN8TIME for UFS devices 2025-04-11 22:13:00 -04:00
vdso vdso: Address variable shadowing in macros 2025-04-10 11:07:10 +02:00
video gpu: ipu-v3 ipu-cpmem: Remove unused functions 2025-03-01 11:29:03 +02:00
xen xen/mcelog: Add __nonstring annotations for unterminated strings 2025-03-14 11:15:16 +01:00
Kbuild drm: ensure drm headers are self-contained and pass kernel-doc 2025-02-12 10:44:43 +02:00