linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@cmpxchg.org>
To: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Michal Hocko <mhocko@suse.cz>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Mel Gorman <mgorman@suse.de>, Rik van Riel <riel@redhat.com>,
	Pekka Enberg <penberg@kernel.org>,
	Christoph Lameter <cl@linux-foundation.org>,
	Tejun Heo <tj@kernel.org>, Li Zefan <lizefan@huawei.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	cgroups@vger.kernel.org
Subject: Re: [patch 7/8] mm, memcg: allow processes handling oom notifications to access reserves
Date: Wed, 4 Dec 2013 00:45:33 -0500	[thread overview]
Message-ID: <20131204054533.GZ3556@cmpxchg.org> (raw)
In-Reply-To: <alpine.DEB.2.02.1312032118570.29733@chino.kir.corp.google.com>

On Tue, Dec 03, 2013 at 09:20:17PM -0800, David Rientjes wrote:
> Now that a per-process flag is available, define it for processes that
> handle userspace oom notifications.  This is an optimization to avoid
> mantaining a list of such processes attached to a memcg at any given time
> and iterating it at charge time.
> 
> This flag gets set whenever a process has registered for an oom
> notification and is cleared whenever it unregisters.
> 
> When memcg reclaim has failed to free any memory, it is necessary for
> userspace oom handlers to be able to dip into reserves to pagefault text,
> allocate kernel memory to read the "tasks" file, allocate heap, etc.

The task handling the OOM of a memcg can obviously not be part of that
same memcg.

I've said this many times in the past, but here is the most recent
thread from Tejun, me, and Li on this topic:

---

On Tue, 3 Dec 2013 at 15:35:48 +0800, Li Zefan wrote:
> On Mon, 2 Dec 2013 at 11:44:06 -0500, Johannes Weiner wrote:
> > On Fri, Nov 29, 2013 at 03:05:25PM -0500, Tejun Heo wrote:
> > > Whoa, so we support oom handler inside the memcg that it handles?
> > > Does that work reliably?  Changing the above detail in this patch
> > > isn't difficult (and we'll later need to update kernfs too) but
> > > supporting such setup properly would be a *lot* of commitment and I'm
> > > very doubtful we'd be able to achieve that by just carefully avoiding
> > > memory allocation in the operations that usreland oom handler uses -
> > > that set is destined to expand over time, extremely fragile and will
> > > be hellish to maintain.
> > > 
> > > So, I'm not at all excited about commiting to this guarantee.  This
> > > one is an easy one but it looks like the first step onto dizzying
> > > slippery slope.
> > > 
> > > Am I misunderstanding something here?  Are you and Johannes firm on
> > > supporting this?
> >
> > Handling a memcg OOM from userspace running inside that OOM memcg is
> > completely crazy.  I mean, think about this for just two seconds...
> > Really?
> >
> > I get that people are doing it right now, and if you can get away with
> > it for now, good for you.  But you have to be aware how crazy this is
> > and if it breaks you get to keep the pieces and we are not going to
> > accomodate this in the kernel.  Fix your crazy userspace.
> 
> +1

---

--
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-12-04  5:46 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-19 13:14 user defined OOM policies Michal Hocko
2013-11-19 13:40 ` Michal Hocko
2013-11-20  8:02   ` David Rientjes
2013-11-20 15:22     ` Michal Hocko
2013-11-20 17:14       ` Luigi Semenzato
2013-11-21  3:36         ` David Rientjes
2013-11-21  7:03           ` Luigi Semenzato
2013-11-22 18:08             ` Johannes Weiner
2013-11-28 11:36               ` Michal Hocko
2013-11-26  1:29             ` David Rientjes
2013-11-28 11:42               ` Michal Hocko
2013-12-02 23:09                 ` David Rientjes
2013-11-21  3:33       ` David Rientjes
2013-11-28 11:54         ` Michal Hocko
2013-12-02 23:07           ` David Rientjes
2013-12-04  5:19             ` [patch 1/8] fork: collapse copy_flags into copy_process David Rientjes
2013-12-04  5:19               ` [patch 2/8] mm, mempolicy: rename slab_node for clarity David Rientjes
2013-12-04 15:21                 ` Christoph Lameter
2013-12-04  5:20               ` [patch 3/8] mm, mempolicy: remove per-process flag David Rientjes
2013-12-04 15:24                 ` Christoph Lameter
2013-12-05  0:53                   ` David Rientjes
2013-12-05 19:05                     ` Christoph Lameter
2013-12-05 23:53                       ` David Rientjes
2013-12-06 14:46                         ` Christoph Lameter
2013-12-04  5:20               ` [patch 4/8] mm, memcg: add tunable for oom reserves David Rientjes
2013-12-04  5:20               ` [patch 5/8] res_counter: remove interface for locked charging and uncharging David Rientjes
2013-12-04  5:20               ` [patch 6/8] res_counter: add interface for maximum nofail charge David Rientjes
2013-12-04  5:20               ` [patch 7/8] mm, memcg: allow processes handling oom notifications to access reserves David Rientjes
2013-12-04  5:45                 ` Johannes Weiner [this message]
2013-12-05  1:49                   ` David Rientjes
2013-12-05  2:50                     ` Tejun Heo
2013-12-05 23:49                       ` David Rientjes
2013-12-06 17:34                         ` Johannes Weiner
2013-12-07 16:38                           ` Tim Hockin
2013-12-07 17:40                             ` Johannes Weiner
2013-12-07 18:12                               ` Tim Hockin
2013-12-07 19:06                                 ` Johannes Weiner
2013-12-07 21:04                                   ` Tim Hockin
2013-12-06 19:01                         ` Tejun Heo
2013-12-09 20:10                           ` David Rientjes
2013-12-09 22:37                             ` Johannes Weiner
2013-12-10 21:50                             ` Tejun Heo
2013-12-10 23:55                               ` David Rientjes
2013-12-11  9:49                                 ` Mel Gorman
2013-12-11 12:42                                 ` Tejun Heo
2013-12-12  5:37                                   ` Tim Hockin
2013-12-12 14:21                                     ` Tejun Heo
2013-12-12 16:32                                       ` Michal Hocko
2013-12-12 16:37                                         ` Tejun Heo
2013-12-12 18:42                                       ` Tim Hockin
2013-12-12 19:23                                         ` Tejun Heo
2013-12-13  0:23                                           ` Tim Hockin
2013-12-13 11:47                                             ` Tejun Heo
2013-12-04  5:20               ` [patch 8/8] mm, memcg: add memcg oom reserve documentation David Rientjes
2013-11-20 17:25     ` user defined OOM policies Vladimir Murzin
2013-11-20 17:21   ` Vladimir Murzin
2013-11-20 17:33     ` Michal Hocko
2013-11-21  3:38       ` David Rientjes
2013-11-21 17:13         ` Michal Hocko
2013-11-26  1:36           ` David Rientjes
2013-11-22  7:28       ` Vladimir Murzin
2013-11-22 13:18         ` Michal Hocko
2013-11-20  7:50 ` David Rientjes
2013-11-22  0:19 ` Jörn Engel
2013-11-26  1:31   ` 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=20131204054533.GZ3556@cmpxchg.org \
    --to=hannes@cmpxchg.org \
    --cc=akpm@linux-foundation.org \
    --cc=cgroups@vger.kernel.org \
    --cc=cl@linux-foundation.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lizefan@huawei.com \
    --cc=mgorman@suse.de \
    --cc=mhocko@suse.cz \
    --cc=penberg@kernel.org \
    --cc=riel@redhat.com \
    --cc=rientjes@google.com \
    --cc=tj@kernel.org \
    /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