From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Michal Hocko <mhocko@kernel.org>,
David Rientjes <rientjes@google.com>,
linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm,oom: Bring OOM notifier callbacks to outside of OOM killer.
Date: Wed, 27 Jun 2018 07:28:22 -0700 [thread overview]
Message-ID: <20180627142822.GV3593@linux.vnet.ibm.com> (raw)
In-Reply-To: <c0aeb719-ccb7-46c7-2ad9-b0630bf4d542@i-love.sakura.ne.jp>
On Wed, Jun 27, 2018 at 07:52:23PM +0900, Tetsuo Handa wrote:
> On 2018/06/27 8:50, Paul E. McKenney wrote:
> > On Wed, Jun 27, 2018 at 05:10:48AM +0900, Tetsuo Handa wrote:
> >> As far as I can see,
> >>
> >> - atomic_set(&oom_callback_count, 1);
> >> + atomic_inc(&oom_callback_count);
> >>
> >> should be sufficient.
> >
> > I don't see how that helps. For example, suppose that two tasks
> > invoked rcu_oom_notify() at about the same time. Then they could
> > both see oom_callback_count equal to zero, both atomically increment
> > oom_callback_count, then both do the IPI invoking rcu_oom_notify_cpu()
> > on each online CPU.
> >
> > So far, so good. But rcu_oom_notify_cpu() enqueues a per-CPU RCU
> > callback, and enqueuing the same callback twice in quick succession
> > would fatally tangle RCU's callback lists.
> >
> > What am I missing here?
>
> You are pointing out that "number of rsp->call() is called" > "number of
> rcu_oom_callback() is called" can happen if concurrently called, aren't you?
Yes. Reusing an rcu_head before invocation of the earlier use is
very bad indeed. ;-)
> Then, you are not missing anything. You will need to use something equivalent
> to oom_lock even if you can convert rcu_oom_notify() to use shrinkers.
What should I look at to work out whether it makes sense to convert
rcu_oom_notify() to shrinkers, and if so, how to go about it?
Or are you simply asking me to serialize rcu_oom_notify()? (Which is
of course not difficult, so please just let me know.)
Thanx, Paul
next prev parent reply other threads:[~2018-06-27 14:26 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-20 11:20 [PATCH] mm,oom: Bring OOM notifier callbacks to outside of OOM killer Tetsuo Handa
2018-06-20 11:55 ` Michal Hocko
2018-06-20 12:21 ` Tetsuo Handa
2018-06-20 13:07 ` Michal Hocko
2018-06-25 13:03 ` peter enderborg
2018-06-25 13:03 ` peter enderborg
2018-06-25 13:07 ` Michal Hocko
2018-06-25 13:07 ` Michal Hocko
2018-06-25 14:02 ` peter enderborg
2018-06-25 14:02 ` peter enderborg
2018-06-25 14:04 ` peter enderborg
2018-06-25 14:04 ` peter enderborg
2018-06-25 14:12 ` Michal Hocko
2018-06-25 14:12 ` Michal Hocko
2018-06-20 22:36 ` David Rientjes
2018-06-21 7:31 ` Michal Hocko
2018-06-21 11:27 ` Tetsuo Handa
2018-06-21 12:05 ` Michal Hocko
2018-06-26 17:03 ` Paul E. McKenney
2018-06-26 20:10 ` Tetsuo Handa
2018-06-26 23:50 ` Paul E. McKenney
2018-06-27 10:52 ` Tetsuo Handa
2018-06-27 14:28 ` Paul E. McKenney [this message]
2018-06-27 7:22 ` Michal Hocko
2018-06-27 14:31 ` Paul E. McKenney
2018-06-28 11:39 ` Michal Hocko
2018-06-28 21:31 ` Paul E. McKenney
2018-06-29 9:04 ` Michal Hocko
2018-06-29 12:52 ` Paul E. McKenney
2018-06-29 13:26 ` Michal Hocko
2018-06-30 17:05 ` Paul E. McKenney
2018-07-02 12:00 ` Michal Hocko
2018-07-02 21:37 ` Paul E. McKenney
2018-07-03 7:24 ` Michal Hocko
2018-07-03 16:01 ` Paul E. McKenney
2018-07-06 5:39 ` Michal Hocko
2018-07-06 12:22 ` Paul E. McKenney
2018-06-29 14:35 ` Tetsuo Handa
2018-06-30 17:19 ` Paul E. McKenney
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=20180627142822.GV3593@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.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: link
Be 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.