twx-linux/include
Roman Gushchin 37d5985c00 mm: kmem: prepare remote memcg charging infra for interrupt contexts
Remote memcg charging API uses current->active_memcg to store the
currently active memory cgroup, which overwrites the memory cgroup of the
current process.  It works well for normal contexts, but doesn't work for
interrupt contexts: indeed, if an interrupt occurs during the execution of
a section with an active memcg set, all allocations inside the interrupt
will be charged to the active memcg set (given that we'll enable
accounting for allocations from an interrupt context).  But because the
interrupt might have no relation to the active memcg set outside, it's
obviously wrong from the accounting prospective.

To resolve this problem, let's add a global percpu int_active_memcg
variable, which will be used to store an active memory cgroup which will
be used from interrupt contexts.  set_active_memcg() will transparently
use current->active_memcg or int_active_memcg depending on the context.

To make the read part simple and transparent for the caller, let's
introduce two new functions:
  - struct mem_cgroup *active_memcg(void),
  - struct mem_cgroup *get_active_memcg(void).

They are returning the active memcg if it's set, hiding all implementation
details: where to get it depending on the current context.

Signed-off-by: Roman Gushchin <guro@fb.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Shakeel Butt <shakeelb@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Link: http://lkml.kernel.org/r/20200827225843.1270629-4-guro@fb.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-10-18 09:27:09 -07:00
..
acpi ACPI updates for 5.10-rc1 2020-10-14 11:42:04 -07:00
asm-generic hyperv-next for 5.10, part 2 2020-10-15 15:48:06 -07:00
clocksource
crypto
drm sound updates for 5.10 2020-10-15 11:07:44 -07:00
dt-bindings sound updates for 5.10 2020-10-15 11:07:44 -07:00
keys
kunit kunit: test.h: fix a bad kernel-doc markup 2020-10-15 07:49:48 +02:00
kvm
linux mm: kmem: prepare remote memcg charging infra for interrupt contexts 2020-10-18 09:27:09 -07:00
math-emu
media
memory
misc
net docs updates for v5.10-rc1 2020-10-16 15:02:21 -07:00
pcmcia
ras mm,hwpoison: introduce MF_MSG_UNSPLIT_THP 2020-10-16 11:11:17 -07:00
rdma RDMA: Explicitly pass in the dma_device to ib_register_device 2020-10-16 13:53:46 -03:00
scsi SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
soc networking changes for the 5.10 merge window 2020-10-15 18:42:13 -07:00
sound
target
trace RDMA 5.10 pull request 2020-10-17 11:18:18 -07:00
uapi RDMA 5.10 pull request 2020-10-17 11:18:18 -07:00
vdso
video
xen