From: David Rientjes <rientjes@google.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Mel Gorman <mgorman@suse.de>,
Johannes Weiner <hannes@cmpxchg.org>,
Oleg Nesterov <oleg@redhat.com>, Vlastimil Babka <vbabka@suse.cz>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Subject: Re: [patch -mm] mm, oom: add global access to memory reserves on livelock
Date: Tue, 25 Aug 2015 16:41:29 -0700 (PDT) [thread overview]
Message-ID: <alpine.DEB.2.10.1508251635560.10653@chino.kir.corp.google.com> (raw)
In-Reply-To: <20150825142503.GE6285@dhcp22.suse.cz>
On Tue, 25 Aug 2015, Michal Hocko wrote:
> > I don't believe a solution that requires admin intervention is
> > maintainable.
>
> Why?
>
Because the company I work for has far too many machines for that to be
possible.
> > It would be better to reboot when memory reserves are fully depleted.
>
> The question is when are the reserves depleted without any way to
> replenish them. While playing with GFP_NOFS patch set which gives
> __GFP_NOFAIL allocations access to memory reserves
> (http://marc.info/?l=linux-mm&m=143876830916540&w=2) I could see the
> warning hit while the system still resurrected from the memory pressure.
>
If there is a holder of a mutex that then allocates gigabytes of memory,
no amount of memory reserves is going to assist in resolving an oom killer
livelock, whether that's partial access to memory reserves or full access
to memory reserves.
You're referring to two different conditions:
(1) oom livelock as a result of an oom kill victim waiting on a lock that
is held by an allocator, and
(2) depletion of memory reserves, which can also happen today without
this patchset and we have fixed in the past.
This patch addresses (1) by giving it a higher probability, absent the
ability to determine which thread is holding the lock that the victim
depends on, to make forward progress. It would be fine to do (2) as a
separate patch, since it is a separate problem, that I agree has a higher
likelihood of happening now to panic when memory reserves have been
depleted.
> I think an OOM reserve/watermark makes more sense. It will not solve the
> livelock but neithere granting the full access to reserves will. But the
> partial access has a potential to leave some others means to intervene.
>
Unless the oom watermark was higher than the lowest access to memory
reserves other than ALLOC_NO_WATERMARKS, then no forward progress would be
made in this scenario. I think it would be better to give access to that
crucial last page that may solve the livelock to make forward progress, or
panic as a result of complete depletion of memory reserves. That panic()
is a very trivial patch that can be checked in the allocator slowpath and
addresses a problem that already exists today.
--
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>
next prev parent reply other threads:[~2015-08-25 23:41 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-20 21:00 David Rientjes
2015-08-20 23:10 ` Andrew Morton
2015-08-21 8:17 ` Michal Hocko
2015-08-21 13:29 ` Tetsuo Handa
2015-08-24 21:10 ` David Rientjes
2015-08-25 15:26 ` Michal Hocko
2015-08-24 21:04 ` David Rientjes
2015-08-25 14:25 ` Michal Hocko
2015-08-25 23:41 ` David Rientjes [this message]
2015-08-26 7:01 ` Michal Hocko
2015-08-26 22:23 ` David Rientjes
2015-08-27 12:41 ` Michal Hocko
2015-08-27 20:52 ` 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.10.1508251635560.10653@chino.kir.corp.google.com \
--to=rientjes@google.com \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=mhocko@kernel.org \
--cc=oleg@redhat.com \
--cc=penguin-kernel@i-love.sakura.ne.jp \
--cc=vbabka@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