linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Rientjes <rientjes@google.com>
To: Michal Hocko <mhocko@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	cgroups@vger.kernel.org
Subject: Re: [patch] mm, memcg: add oom killer delay
Date: Thu, 30 May 2013 13:47:30 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.2.02.1305301338430.20389@chino.kir.corp.google.com> (raw)
In-Reply-To: <20130530150539.GA18155@dhcp22.suse.cz>

On Thu, 30 May 2013, Michal Hocko wrote:

> > Completely disabling the oom killer for a memcg is problematic if
> > userspace is unable to address the condition itself, usually because it
> > is unresponsive. 
> 
> Isn't this a bug in the userspace oom handler? Why is it unresponsive? It
> shouldn't allocated any memory so nothing should prevent it from running (if
> other tasks are preempting it permanently then the priority of the handler
> should be increased).
> 

Unresponsiveness isn't necessarily only because of memory constraints, you 
may have your oom notifier in a parent cgroup that isn't oom.  If a 
process is stuck on mm->mmap_sem in the oom cgroup, though, the oom 
notifier may not be able to scrape /proc/pid and attain necessary 
information in making an oom kill decision.  If the oom notifier is in the 
oom cgroup, it may not be able to successfully read the memcg "tasks" 
file to even determine the set of eligible processes.  There is also no 
guarantee that the userspace oom handler will have the necessary memory to 
even re-enable the oom killer in the memcg under oom which would allow the 
kernel to make forward progress.

We've used this for a few years as a complement to oom notifiers so that a 
process would have a grace period to deal with the oom condition itself 
before allowing the kernel to terminate a process and free memory.  We've 
simply had no alternative in the presence of kernel constraints that 
prevent it from being done in any other way.  We _want_ userspace to deal 
with the issue but when it cannot collect the necessary information (and 
we're not tracing every fork() that every process in a potentially oom 
memcg does) to deal with the condition, we want the kernel to step in 
instead of relying on an admin to login or a global oom condition.

If you'd like to debate this issue, I'd be more than happy to do so and 
show why this patch is absolutely necessary for inclusion, but I'd ask 
that you'd present the code from your userspace oom handler so I can 
understand how it works without needing such backup support.

--
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:[~2013-05-30 20:47 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-30  1:18 David Rientjes
2013-05-30 15:07 ` Michal Hocko
2013-05-30 20:47   ` David Rientjes [this message]
2013-05-31  8:10     ` Michal Hocko
2013-05-31 10:22       ` David Rientjes
2013-05-31 11:02         ` Michal Hocko
2013-05-31 11:21         ` Michal Hocko
2013-05-31 19:29           ` David Rientjes
2013-06-01  6:11             ` Johannes Weiner
2013-06-01 10:29               ` Michal Hocko
2013-06-01 15:15                 ` Johannes Weiner
2013-06-03 15:34               ` Michal Hocko
2013-06-03 16:48                 ` Johannes Weiner
2013-06-03 18:03                   ` Michal Hocko
2013-06-03 18:30                   ` Johannes Weiner
2013-06-03 21:33                     ` KOSAKI Motohiro
2013-06-04  9:17                     ` Michal Hocko
2013-06-04 18:48                       ` Johannes Weiner
2013-06-04 19:27                         ` Michal Hocko
2013-06-05 13:49                         ` Michal Hocko
2013-06-03 16:31               ` Michal Hocko
2013-06-03 16:51                 ` Johannes Weiner
2013-06-01 10:20             ` Michal Hocko
2013-06-03 18:18               ` David Rientjes
2013-06-03 18:54                 ` Johannes Weiner
2013-06-03 19:09                   ` David Rientjes
2013-06-03 21:43                     ` Johannes Weiner
2013-06-03 19:31                 ` Michal Hocko
2013-06-03 21:17                   ` David Rientjes
2013-06-04  9:55                     ` Michal Hocko
2013-06-05  6:40                       ` David Rientjes
2013-06-05  9:39                         ` Michal Hocko
2013-06-06  0:09                           ` David Rientjes
2013-06-10 14:23                             ` Michal Hocko
2013-06-11 20:33                               ` David Rientjes
2013-06-12 20:23                                 ` Michal Hocko
2013-06-12 21:27                                   ` David Rientjes
2013-06-13 15:16                                     ` Michal Hocko
2013-06-13 22:25                                       ` David Rientjes
2013-06-14  0:56                                         ` Kamezawa Hiroyuki
2013-06-14 10:12                                           ` David Rientjes
2013-06-19 21:30                                             ` David Rientjes
2013-06-25  1:39                                             ` Kamezawa Hiroyuki
2013-06-26 23:18                                               ` David Rientjes
2013-07-10 11:23                                             ` Michal Hocko
2013-05-31 21:46 ` Andrew Morton
2013-06-03 18:00   ` 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=alpine.DEB.2.02.1305301338430.20389@chino.kir.corp.google.com \
    --to=rientjes@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=cgroups@vger.kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.cz \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox