All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roman Gushchin <guro@fb.com>
To: <linux-mm@kvack.org>
Cc: Roman Gushchin <guro@fb.com>, Michal Hocko <mhocko@kernel.org>,
	Vladimir Davydov <vdavydov.dev@gmail.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
	David Rientjes <rientjes@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Tejun Heo <tj@kernel.org>, <kernel-team@fb.com>,
	<cgroups@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: [v7 0/5] cgroup-aware OOM killer
Date: Mon, 4 Sep 2017 15:21:03 +0100	[thread overview]
Message-ID: <20170904142108.7165-1-guro@fb.com> (raw)

This patchset makes the OOM killer cgroup-aware.

v7:
  - __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

v6:
  - 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

v5:
  - 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

v4:
  - 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

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

v2:
  - 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

v1:
  https://lkml.org/lkml/2017/5/18/969


Cc: Michal Hocko <mhocko@kernel.org>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: kernel-team@fb.com
Cc: cgroups@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org

Roman Gushchin (5):
  mm, oom: refactor the oom_kill_process() function
  mm, oom: cgroup-aware OOM killer
  mm, oom: introduce oom_priority for memory cgroups
  mm, oom, docs: describe the cgroup-aware OOM killer
  mm, oom: cgroup v2 mount option to disable cgroup-aware OOM killer

 Documentation/admin-guide/kernel-parameters.txt |   1 +
 Documentation/cgroup-v2.txt                     |  56 +++++
 include/linux/memcontrol.h                      |  36 +++
 include/linux/oom.h                             |  12 +-
 mm/memcontrol.c                                 | 293 ++++++++++++++++++++++++
 mm/oom_kill.c                                   | 209 +++++++++++------
 6 files changed, 537 insertions(+), 70 deletions(-)

-- 
2.13.5

WARNING: multiple messages have this Message-ID (diff)
From: Roman Gushchin <guro@fb.com>
To: linux-mm@kvack.org
Cc: Roman Gushchin <guro@fb.com>, Michal Hocko <mhocko@kernel.org>,
	Vladimir Davydov <vdavydov.dev@gmail.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
	David Rientjes <rientjes@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Tejun Heo <tj@kernel.org>,
	kernel-team@fb.com, cgroups@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [v7 0/5] cgroup-aware OOM killer
Date: Mon, 4 Sep 2017 15:21:03 +0100	[thread overview]
Message-ID: <20170904142108.7165-1-guro@fb.com> (raw)

This patchset makes the OOM killer cgroup-aware.

v7:
  - __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

v6:
  - 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

v5:
  - 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

v4:
  - 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

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

v2:
  - 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

v1:
  https://lkml.org/lkml/2017/5/18/969


Cc: Michal Hocko <mhocko@kernel.org>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: kernel-team@fb.com
Cc: cgroups@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org

Roman Gushchin (5):
  mm, oom: refactor the oom_kill_process() function
  mm, oom: cgroup-aware OOM killer
  mm, oom: introduce oom_priority for memory cgroups
  mm, oom, docs: describe the cgroup-aware OOM killer
  mm, oom: cgroup v2 mount option to disable cgroup-aware OOM killer

 Documentation/admin-guide/kernel-parameters.txt |   1 +
 Documentation/cgroup-v2.txt                     |  56 +++++
 include/linux/memcontrol.h                      |  36 +++
 include/linux/oom.h                             |  12 +-
 mm/memcontrol.c                                 | 293 ++++++++++++++++++++++++
 mm/oom_kill.c                                   | 209 +++++++++++------
 6 files changed, 537 insertions(+), 70 deletions(-)

-- 
2.13.5

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

             reply	other threads:[~2017-09-04 14:21 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-04 14:21 Roman Gushchin [this message]
2017-09-04 14:21 ` [v7 0/5] cgroup-aware OOM killer Roman Gushchin
2017-09-04 14:21 ` [v7 1/5] mm, oom: refactor the oom_kill_process() function Roman Gushchin
2017-09-04 14:21   ` Roman Gushchin
2017-09-05 13:34   ` Michal Hocko
2017-09-05 13:34     ` Michal Hocko
2017-09-04 14:21 ` [v7 2/5] mm, oom: cgroup-aware OOM killer Roman Gushchin
2017-09-04 14:21   ` Roman Gushchin
2017-09-05 14:57   ` Michal Hocko
2017-09-05 14:57     ` Michal Hocko
2017-09-05 14:57     ` Michal Hocko
2017-09-05 20:23     ` Roman Gushchin
2017-09-05 20:23       ` Roman Gushchin
2017-09-06  8:31       ` Michal Hocko
2017-09-06  8:31         ` Michal Hocko
2017-09-06 12:57         ` Roman Gushchin
2017-09-06 12:57           ` Roman Gushchin
2017-09-06 12:57           ` Roman Gushchin
2017-09-06 13:22           ` Michal Hocko
2017-09-06 13:22             ` Michal Hocko
2017-09-06 13:22             ` Michal Hocko
2017-09-06 13:41             ` Roman Gushchin
2017-09-06 13:41               ` Roman Gushchin
2017-09-06 13:41               ` Roman Gushchin
2017-09-06 14:10               ` Michal Hocko
2017-09-06 14:10                 ` Michal Hocko
2017-09-06  8:34       ` Michal Hocko
2017-09-06  8:34         ` Michal Hocko
2017-09-06 12:33         ` Roman Gushchin
2017-09-06 12:33           ` Roman Gushchin
2017-09-06 12:33           ` Roman Gushchin
2017-09-07 16:18   ` Christopher Lameter
2017-09-07 16:18     ` Christopher Lameter
2017-09-11  8:49     ` Michal Hocko
2017-09-11  8:49       ` Michal Hocko
2017-09-11  8:49       ` Michal Hocko
2017-09-04 14:21 ` [v7 3/5] mm, oom: introduce oom_priority for memory cgroups Roman Gushchin
2017-09-04 14:21   ` Roman Gushchin
2017-09-04 14:21 ` [v7 4/5] mm, oom, docs: describe the cgroup-aware OOM killer Roman Gushchin
2017-09-04 14:21   ` Roman Gushchin
2017-09-04 14:21 ` [v7 5/5] mm, oom: cgroup v2 mount option to disable " Roman Gushchin
2017-09-04 14:21   ` Roman Gushchin
2017-09-04 14:21   ` Roman Gushchin
2017-09-04 17:32   ` Shakeel Butt
2017-09-04 17:32     ` Shakeel Butt
2017-09-04 17:32     ` Shakeel Butt
2017-09-04 17:51     ` Roman Gushchin
2017-09-04 17:51       ` Roman Gushchin
2017-09-04 17:51       ` Roman Gushchin
2017-09-05 13:44   ` Michal Hocko
2017-09-05 13:44     ` Michal Hocko
2017-09-05 14:30     ` Roman Gushchin
2017-09-05 14:30       ` Roman Gushchin
2017-09-05 14:30       ` Roman Gushchin
2017-09-05 15:12       ` Michal Hocko
2017-09-05 15:12         ` Michal Hocko
2017-09-05 19:16         ` Roman Gushchin
2017-09-05 19:16           ` Roman Gushchin
2017-09-05 19:16           ` Roman Gushchin
2017-09-06  8:42           ` Michal Hocko
2017-09-06  8:42             ` Michal Hocko
2017-09-06  8:42             ` Michal Hocko
2017-09-06 17:40             ` Roman Gushchin
2017-09-06 17:40               ` Roman Gushchin
2017-09-06 17:40               ` Roman Gushchin
2017-09-06 17:59               ` Michal Hocko
2017-09-06 17:59                 ` Michal Hocko
2017-09-06 17:59                 ` Michal Hocko
2017-09-06 20:59               ` David Rientjes
2017-09-06 20:59                 ` David Rientjes
2017-09-06 20:59                 ` David Rientjes
2017-09-07 14:43                 ` Christopher Lameter
2017-09-07 14:52                   ` Roman Gushchin
2017-09-07 14:52                     ` Roman Gushchin
2017-09-07 15:03                     ` Christopher Lameter
2017-09-07 15:03                       ` Christopher Lameter
2017-09-07 16:42                       ` Roman Gushchin
2017-09-07 16:42                         ` Roman Gushchin
2017-09-07 16:42                         ` Roman Gushchin
2017-09-07 17:03                         ` Christopher Lameter
2017-09-07 21:55                   ` David Rientjes
2017-09-07 21:55                     ` David Rientjes
2017-09-07 16:21         ` Christopher Lameter
2017-09-07 16:21           ` Christopher Lameter
2017-09-05 21:53     ` Johannes Weiner
2017-09-05 21:53       ` Johannes Weiner
2017-09-06  8:28       ` Michal Hocko
2017-09-06  8:28         ` Michal Hocko
2017-09-06  8:28         ` Michal Hocko
2017-09-07 16:14         ` Johannes Weiner
2017-09-07 16:14           ` Johannes Weiner
2017-09-11  9:05           ` Michal Hocko
2017-09-11  9:05             ` Michal Hocko
2017-09-11 12:50             ` Roman Gushchin
2017-09-11 12:50               ` Roman Gushchin
2017-09-11 12:50               ` Roman Gushchin
2017-09-07 16:27         ` Christopher Lameter
2017-09-07 22:03           ` David Rientjes
2017-09-07 22:03             ` David Rientjes
2017-09-08 21:07             ` Christopher Lameter
2017-09-09  8:45               ` David Rientjes
2017-09-09  8:45                 ` David Rientjes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170904142108.7165-1-guro@fb.com \
    --to=guro@fb.com \
    --cc=akpm@linux-foundation.org \
    --cc=cgroups@vger.kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=kernel-team@fb.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=penguin-kernel@I-love.SAKURA.ne.jp \
    --cc=rientjes@google.com \
    --cc=tj@kernel.org \
    --cc=vdavydov.dev@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.