mbox series

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

Message ID 20e50917-3589-bcb7-0174-b6fccfd15c66@virtuozzo.com (mailing list archive)
Headers show
Series memcg: prohibit unconditional exceeding the limit of dying tasks | expand

Message

Vasily Averin Oct. 23, 2021, 1:18 p.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:
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(-)