[lkml]   [2017]   [Sep]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[v8 0/4] cgroup-aware OOM killer
This patchset makes the OOM killer cgroup-aware.

- Do not kill tasks with OOM_SCORE_ADJ -1000
- Make the whole thing opt-in with cgroup mount option control
- Drop oom_priority for further discussions
- Kill the whole cgroup if oom_group is set and it's
memory.max is reached
- Update docs and commit messages

- __oom_kill_process() drops reference to the victim task
- oom_score_adj -1000 is always respected
- Renamed oom_kill_all to oom_group
- Dropped oom_prio range, converted from short to int
- Added a cgroup v2 mount option to disable cgroup-aware OOM killer
- Docs updated
- Rebased on top of mmotm

- Renamed oom_control.chosen to oom_control.chosen_task
- Renamed oom_kill_all_tasks to oom_kill_all
- Per-node NR_SLAB_UNRECLAIMABLE accounting
- Several minor fixes and cleanups
- Docs updated

- Rebased on top of Michal Hocko's patches, which have changed the
way how OOM victims becoming an access to the memory
reserves. Dropped corresponding part of this patchset
- Separated the oom_kill_process() splitting into a standalone commit
- Added debug output (suggested by David Rientjes)
- Some minor fixes

- Reworked per-cgroup oom_score_adj into oom_priority
(based on ideas by David Rientjes)
- Tasks with oom_score_adj -1000 are never selected if
oom_kill_all_tasks is not set
- Memcg victim selection code is reworked, and
synchronization is based on finding tasks with OOM victim marker,
rather then on global counter
- Debug output is dropped
- Refactored TIF_MEMDIE usage

- Merged commits 1-4 into 6
- Separated oom_score_adj logic and debug output into separate commits
- Fixed swap accounting

- Reworked victim selection based on feedback
from Michal Hocko, Vladimir Davydov and Johannes Weiner
- "Kill all tasks" is now an opt-in option, by default
only one process will be killed
- Added per-cgroup oom_score_adj
- Refined oom score calculations, suggested by Vladimir Davydov
- Converted to a patchset


Cc: Michal Hocko <>
Cc: Vladimir Davydov <>
Cc: Johannes Weiner <>
Cc: Tetsuo Handa <>
Cc: David Rientjes <>
Cc: Andrew Morton <>
Cc: Tejun Heo <>

Roman Gushchin (4):
mm, oom: refactor the oom_kill_process() function
mm, oom: cgroup-aware OOM killer
mm, oom: add cgroup v2 mount option for cgroup-aware OOM killer
mm, oom, docs: describe the cgroup-aware OOM killer

Documentation/cgroup-v2.txt | 39 +++++++
include/linux/cgroup-defs.h | 5 +
include/linux/memcontrol.h | 33 ++++++
include/linux/oom.h | 12 +-
kernel/cgroup/cgroup.c | 10 ++
mm/memcontrol.c | 261 ++++++++++++++++++++++++++++++++++++++++++++
mm/oom_kill.c | 210 +++++++++++++++++++++++------------
7 files changed, 501 insertions(+), 69 deletions(-)


 \ /
  Last update: 2017-09-11 15:19    [W:0.324 / U:5.136 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site