From: Michal Hocko <mhocko@kernel.org> To: Roman Gushchin <guro@fb.com> Cc: Andrew Morton <akpm@linux-foundation.org>, David Rientjes <rientjes@google.com>, Johannes Weiner <hannes@cmpxchg.org>, Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>, linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org> Subject: Re: [PATCH 0/2] mm, oom: do not grant oom victims full memory reserves access Date: Tue, 1 Aug 2017 14:54:57 +0200 [thread overview] Message-ID: <20170801125457.GM15774@dhcp22.suse.cz> (raw) In-Reply-To: <20170801124238.GA9497@castle.dhcp.TheFacebook.com> On Tue 01-08-17 13:42:38, Roman Gushchin wrote: > On Tue, Aug 01, 2017 at 02:29:05PM +0200, Michal Hocko wrote: > > On Tue 01-08-17 13:23:44, Roman Gushchin wrote: > > > On Tue, Aug 01, 2017 at 02:16:44PM +0200, Michal Hocko wrote: > > > > On Thu 27-07-17 11:03:55, Michal Hocko wrote: > > > > > Hi, > > > > > this is a part of a larger series I posted back in Oct last year [1]. I > > > > > have dropped patch 3 because it was incorrect and patch 4 is not > > > > > applicable without it. > > > > > > > > > > The primary reason to apply patch 1 is to remove a risk of the complete > > > > > memory depletion by oom victims. While this is a theoretical risk right > > > > > now there is a demand for memcg aware oom killer which might kill all > > > > > processes inside a memcg which can be a lot of tasks. That would make > > > > > the risk quite real. > > > > > > > > > > This issue is addressed by limiting access to memory reserves. We no > > > > > longer use TIF_MEMDIE to grant the access and use tsk_is_oom_victim > > > > > instead. See Patch 1 for more details. Patch 2 is a trivial follow up > > > > > cleanup. > > > > > > > > Any comments, concerns? Can we merge it? > > > > > > I've rebased the cgroup-aware OOM killer and ran some tests. > > > Everything works well. > > > > Thanks for your testing. Can I assume your Tested-by? > > Sure. Thanks! > I wonder if we can get rid of TIF_MEMDIE completely, > if we will count OOM victims on per-oom-victim-signal-struct rather than > on per-thread basis? Say, assign oom_mm using cmpxchg, and call > exit_oom_victim() from __exit_signal()? __thaw_task() can be called from > mark_oom_victim() unconditionally. > > Do you see any problems with this approach? Ohh, I wish we could do that. All my previous attempts failed though. I have always hit the problem to tell that the last thread of the process is exiting to know when to call exit_oom_victim and release the oom disable barrier. Maybe things have changed somehow since I've tried the last time but this is a tricky code. I will certainly get back to it some day but not likely anytime soon. -- Michal Hocko SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org> To: Roman Gushchin <guro@fb.com> Cc: Andrew Morton <akpm@linux-foundation.org>, David Rientjes <rientjes@google.com>, Johannes Weiner <hannes@cmpxchg.org>, Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>, linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org> Subject: Re: [PATCH 0/2] mm, oom: do not grant oom victims full memory reserves access Date: Tue, 1 Aug 2017 14:54:57 +0200 [thread overview] Message-ID: <20170801125457.GM15774@dhcp22.suse.cz> (raw) In-Reply-To: <20170801124238.GA9497@castle.dhcp.TheFacebook.com> On Tue 01-08-17 13:42:38, Roman Gushchin wrote: > On Tue, Aug 01, 2017 at 02:29:05PM +0200, Michal Hocko wrote: > > On Tue 01-08-17 13:23:44, Roman Gushchin wrote: > > > On Tue, Aug 01, 2017 at 02:16:44PM +0200, Michal Hocko wrote: > > > > On Thu 27-07-17 11:03:55, Michal Hocko wrote: > > > > > Hi, > > > > > this is a part of a larger series I posted back in Oct last year [1]. I > > > > > have dropped patch 3 because it was incorrect and patch 4 is not > > > > > applicable without it. > > > > > > > > > > The primary reason to apply patch 1 is to remove a risk of the complete > > > > > memory depletion by oom victims. While this is a theoretical risk right > > > > > now there is a demand for memcg aware oom killer which might kill all > > > > > processes inside a memcg which can be a lot of tasks. That would make > > > > > the risk quite real. > > > > > > > > > > This issue is addressed by limiting access to memory reserves. We no > > > > > longer use TIF_MEMDIE to grant the access and use tsk_is_oom_victim > > > > > instead. See Patch 1 for more details. Patch 2 is a trivial follow up > > > > > cleanup. > > > > > > > > Any comments, concerns? Can we merge it? > > > > > > I've rebased the cgroup-aware OOM killer and ran some tests. > > > Everything works well. > > > > Thanks for your testing. Can I assume your Tested-by? > > Sure. Thanks! > I wonder if we can get rid of TIF_MEMDIE completely, > if we will count OOM victims on per-oom-victim-signal-struct rather than > on per-thread basis? Say, assign oom_mm using cmpxchg, and call > exit_oom_victim() from __exit_signal()? __thaw_task() can be called from > mark_oom_victim() unconditionally. > > Do you see any problems with this approach? Ohh, I wish we could do that. All my previous attempts failed though. I have always hit the problem to tell that the last thread of the process is exiting to know when to call exit_oom_victim and release the oom disable barrier. Maybe things have changed somehow since I've tried the last time but this is a tricky code. I will certainly get back to it some day but not likely anytime soon. -- Michal Hocko SUSE Labs -- 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:[~2017-08-01 12:55 UTC|newest] Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-07-27 9:03 [PATCH 0/2] mm, oom: do not grant oom victims full memory reserves access Michal Hocko 2017-07-27 9:03 ` Michal Hocko 2017-07-27 9:03 ` [PATCH 1/2] mm, oom: do not rely on TIF_MEMDIE for " Michal Hocko 2017-07-27 9:03 ` Michal Hocko 2017-08-01 15:30 ` Tetsuo Handa 2017-08-01 15:30 ` Tetsuo Handa 2017-08-01 16:52 ` Michal Hocko 2017-08-01 16:52 ` Michal Hocko 2017-08-02 6:10 ` Michal Hocko 2017-08-02 6:10 ` Michal Hocko 2017-08-03 1:39 ` Tetsuo Handa 2017-08-03 1:39 ` Tetsuo Handa 2017-08-03 7:06 ` Michal Hocko 2017-08-03 7:06 ` Michal Hocko 2017-08-03 8:03 ` Tetsuo Handa 2017-08-03 8:03 ` Tetsuo Handa 2017-08-03 8:21 ` Michal Hocko 2017-08-03 8:21 ` Michal Hocko 2017-08-02 8:29 ` [PATCH v2 " Michal Hocko 2017-08-02 8:29 ` Michal Hocko 2017-08-03 9:37 ` Mel Gorman 2017-08-03 9:37 ` Mel Gorman 2017-08-03 11:00 ` Michal Hocko 2017-08-03 11:00 ` Michal Hocko 2017-08-03 12:22 ` Mel Gorman 2017-08-03 12:22 ` Mel Gorman 2017-07-27 9:03 ` [PATCH 2/2] mm: replace TIF_MEMDIE checks by tsk_is_oom_victim Michal Hocko 2017-07-27 9:03 ` Michal Hocko 2017-07-27 14:01 ` Tetsuo Handa 2017-07-27 14:01 ` Tetsuo Handa 2017-07-27 14:08 ` Tetsuo Handa 2017-07-27 14:08 ` Tetsuo Handa 2017-07-27 14:18 ` Michal Hocko 2017-07-27 14:18 ` Michal Hocko 2017-07-27 14:45 ` Michal Hocko 2017-07-27 14:45 ` Michal Hocko 2017-07-27 14:55 ` Roman Gushchin 2017-07-27 14:55 ` Roman Gushchin 2017-07-29 8:33 ` kbuild test robot 2017-07-31 6:46 ` Michal Hocko 2017-07-31 6:46 ` Michal Hocko 2017-08-01 12:16 ` [PATCH 0/2] mm, oom: do not grant oom victims full memory reserves access Michal Hocko 2017-08-01 12:16 ` Michal Hocko 2017-08-01 12:23 ` Roman Gushchin 2017-08-01 12:23 ` Roman Gushchin 2017-08-01 12:29 ` Michal Hocko 2017-08-01 12:29 ` Michal Hocko 2017-08-01 12:42 ` Roman Gushchin 2017-08-01 12:42 ` Roman Gushchin 2017-08-01 12:54 ` Michal Hocko [this message] 2017-08-01 12:54 ` Michal Hocko 2017-08-07 14:21 ` Michal Hocko 2017-08-07 14:21 ` Michal Hocko
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=20170801125457.GM15774@dhcp22.suse.cz \ --to=mhocko@kernel.org \ --cc=akpm@linux-foundation.org \ --cc=guro@fb.com \ --cc=hannes@cmpxchg.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=penguin-kernel@I-love.SAKURA.ne.jp \ --cc=rientjes@google.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.