[PATCH memcg v2 0/2] memcg: prohibit unconditional exceeding the limit of dying tasks

Vasily Averin
2021-10-22T08:10:40Z

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:
1) removes execution of out_of_memory() from pagefault_out_of_memory(),
becasue nobody can explain why it is necessary.
2) allows memcg to fail the allocations of dying/killed tasks.

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 (1):
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