[patch -mm 0/4] mm, memcg: introduce oom policies

From: David Rientjes
Date: Tue Jan 16 2018 - 21:15:11 EST


There are three significant concerns about the cgroup aware oom killer as
it is implemented in -mm:

(1) allows users to evade the oom killer by creating subcontainers or
using other controllers since scoring is done per cgroup and not
hierarchically,

(2) does not allow the user to influence the decisionmaking, such that
important subtrees cannot be preferred or biased, and

(3) unfairly compares the root mem cgroup using completely different
criteria than leaf mem cgroups and allows wildly inaccurate results
if oom_score_adj is used.

This patchset aims to fix (1) completely and, by doing so, introduces a
completely extensible user interface that can be expanded in the future.

It eliminates the mount option for the cgroup aware oom killer entirely
since it is now enabled through the root mem cgroup's oom policy.

It eliminates a pointless tunable, memory.oom_group, that unnecessarily
pollutes the mem cgroup v2 filesystem and is invalid when cgroup v2 is
mounted with the "groupoom" option.
---
Applied on top of -mm.

Documentation/cgroup-v2.txt | 87 ++++++++++++++++-----------------
include/linux/cgroup-defs.h | 5 --
include/linux/memcontrol.h | 37 ++++++++++----
kernel/cgroup/cgroup.c | 13 +----
mm/memcontrol.c | 116 +++++++++++++++++++++++++-------------------
mm/oom_kill.c | 4 +-
6 files changed, 139 insertions(+), 123 deletions(-)