mbox series

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

Message ID 21d79b86-476c-a8f2-e950-2339606f1253@virtuozzo.com (mailing list archive)
Headers show
Series memcg: prohibit unconditional exceeding the limit of dying tasks | expand

Message

Vasily Averin Oct. 22, 2021, 8:10 a.m. UTC
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(-)