lkml.org 
[lkml]   [2017]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [v7 5/5] mm, oom: cgroup v2 mount option to disable cgroup-aware OOM killer
    On Mon, Sep 04, 2017 at 10:32:37AM -0700, Shakeel Butt wrote:
    > On Mon, Sep 4, 2017 at 7:21 AM, Roman Gushchin <guro@fb.com> wrote:
    > > Introducing of cgroup-aware OOM killer changes the victim selection
    > > algorithm used by default: instead of picking the largest process,
    > > it will pick the largest memcg and then the largest process inside.
    > >
    > > This affects only cgroup v2 users.
    > >
    > > To provide a way to use cgroups v2 if the old OOM victim selection
    > > algorithm is preferred for some reason, the nogroupoom mount option
    > > is added.
    >
    > Is this mount option or boot parameter? From the code, it seems like a
    > boot parameter.

    Sure, you're right.

    Fixed version below.

    Thank you!

    --

    From 0b4757ec8d339fa883e17d4e25a92f45bf5565e0 Mon Sep 17 00:00:00 2001
    From: Roman Gushchin <guro@fb.com>
    Date: Mon, 4 Sep 2017 12:08:52 +0100
    Subject: [v7 5/5] mm, oom: allow disabling cgroup-aware OOM killer

    Introducing of cgroup-aware OOM killer changes the victim selection
    algorithm used by default: instead of picking the largest process,
    it will pick the largest memcg and then the largest process inside.

    This affects only cgroup v2 users.

    To provide a way to use cgroups v2 if the old OOM victim selection
    algorithm is preferred for some reason, the cgroup.memory=nogroupoom
    boot option is added.

    If set, the OOM selection is performed in a "traditional" per-process
    way. Both oom_priority and oom_group memcg knobs are ignored.

    Signed-off-by: Roman Gushchin <guro@fb.com>
    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
    ---
    Documentation/admin-guide/kernel-parameters.txt | 1 +
    mm/memcontrol.c | 8 ++++++++
    2 files changed, 9 insertions(+)

    diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
    index 28f1a0f84456..07891f1030aa 100644
    --- a/Documentation/admin-guide/kernel-parameters.txt
    +++ b/Documentation/admin-guide/kernel-parameters.txt
    @@ -489,6 +489,7 @@
    Format: <string>
    nosocket -- Disable socket memory accounting.
    nokmem -- Disable kernel memory accounting.
    + nogroupoom -- Disable cgroup-aware OOM killer.

    checkreqprot [SELINUX] Set initial checkreqprot flag value.
    Format: { "0" | "1" }
    diff --git a/mm/memcontrol.c b/mm/memcontrol.c
    index d7dd293897ca..6a8235dc41f6 100644
    --- a/mm/memcontrol.c
    +++ b/mm/memcontrol.c
    @@ -87,6 +87,9 @@ static bool cgroup_memory_nosocket;
    /* Kernel memory accounting disabled? */
    static bool cgroup_memory_nokmem;

    +/* Cgroup-aware OOM disabled? */
    +static bool cgroup_memory_nogroupoom;
    +
    /* Whether the swap controller is active */
    #ifdef CONFIG_MEMCG_SWAP
    int do_swap_account __read_mostly;
    @@ -2822,6 +2825,9 @@ bool mem_cgroup_select_oom_victim(struct oom_control *oc)
    if (mem_cgroup_disabled())
    return false;

    + if (cgroup_memory_nogroupoom)
    + return false;
    +
    if (!cgroup_subsys_on_dfl(memory_cgrp_subsys))
    return false;

    @@ -6188,6 +6194,8 @@ static int __init cgroup_memory(char *s)
    cgroup_memory_nosocket = true;
    if (!strcmp(token, "nokmem"))
    cgroup_memory_nokmem = true;
    + if (!strcmp(token, "nogroupoom"))
    + cgroup_memory_nogroupoom = true;
    }
    return 0;
    }
    --
    2.13.5
    \
     
     \ /
      Last update: 2017-09-04 19:52    [W:3.962 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site