[PATCH memcg v3 0/3] memcg: prohibit unconditional exceeding the limit of dying tasks

From: Vasily Averin
Date: Sat Oct 23 2021 - 09:19:57 EST


Memory cgroup charging allows killed or exiting tasks to exceed the hard
limit. It can be misused and allow to trigger global OOM from inside
memcg-limited container. On the other hand if memcg fail allocation,
called from inside #PF handler it trigger global OOM from inside
pagefault_out_of_memory().

To prevent these problems this patch set:
a) removes execution of out_of_memory() from pagefault_out_of_memory(),
becasue nobody can explain why it is necessary.
b) allow memcg to fail allocation of dying/killed tasks.

v3: resplit, improved patch descriptions
v2: resplit,
use old patch from Michal Hocko removing out_of_memory() from
pagefault_out_of_memory()


Michal Hocko (1):
mm, oom: do not trigger out_of_memory from the #PF

Vasily Averin (2):
mm, oom: pagefault_out_of_memory: don't force global OOM for dying
tasks
memcg: prohibit unconditional exceeding the limit of dying tasks

mm/memcontrol.c | 27 ++++++++-------------------
mm/oom_kill.c | 23 ++++++++++-------------
2 files changed, 18 insertions(+), 32 deletions(-)

--
2.32.0