On Wed, 6 Sep 2017, Roman Gushchin wrote: > From f6e2339926a07500834d86548f3f116af7335d71 Mon Sep 17 00:00:00 2001 > From: Roman Gushchin <guro@xxxxxx> > Date: Wed, 6 Sep 2017 17:43:44 +0100 > Subject: [PATCH] mm, oom: first step towards oom_kill_allocating_task > deprecation > > The oom_kill_allocating_task sysctl which causes the OOM killer > to simple kill the allocating task is useless. Killing the random > task is not the best idea. > > Nobody likes it, and hopefully nobody uses it. > We want to completely deprecate it at some point. > SGI required it when it was introduced simply to avoid the very expensive tasklist scan. Adding Christoph Lameter to the cc since he was involved back then. I attempted to deprecate the old /proc/pid/oom_adj in this same manner; we warned about it for over a year and then finally removed it, one person complained of breakage, and it was reverted with a strict policy that Linux doesn't break userspace. Although it would be good to do, I'm not sure that this is possible unless it can be shown nobody is using it. Talking to SGI would be the first step. I'm not sure what this has to do with the overall patchset though :) > To make a first step towards deprecation, let's warn potential > users about deprecation plans. > > Signed-off-by: Roman Gushchin <guro@xxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Michal Hocko <mhocko@xxxxxxxx> > Cc: Johannes Weiner <hannes@xxxxxxxxxxx> > Cc: David Rientjes <rientjes@xxxxxxxxxx> > Cc: Vladimir Davydov <vdavydov.dev@xxxxxxxxx> > Cc: linux-mm@xxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx > --- > kernel/sysctl.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/kernel/sysctl.c b/kernel/sysctl.c > index 655686d546cb..9158f1980584 100644 > --- a/kernel/sysctl.c > +++ b/kernel/sysctl.c > @@ -220,6 +220,17 @@ static int sysrq_sysctl_handler(struct ctl_table *table, int write, > > #endif > > +static int proc_oom_kill_allocating_tasks(struct ctl_table *table, int write, > + void __user *buffer, size_t *lenp, > + loff_t *ppos) > +{ > + pr_warn_once("The oom_kill_allocating_task sysctl will be deprecated.\n" > + "If you're using it, please, report to " > + "linux-mm@xxxxxxxxxxxxxxxx.\n"); > + > + return proc_dointvec(table, write, buffer, lenp, ppos); > +} > + > static struct ctl_table kern_table[]; > static struct ctl_table vm_table[]; > static struct ctl_table fs_table[]; > @@ -1235,7 +1246,7 @@ static struct ctl_table vm_table[] = { > .data = &sysctl_oom_kill_allocating_task, > .maxlen = sizeof(sysctl_oom_kill_allocating_task), > .mode = 0644, > - .proc_handler = proc_dointvec, > + .proc_handler = proc_oom_kill_allocating_tasks, > }, > { > .procname = "oom_dump_tasks", -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html