From: Michal Hocko <mhocko@kernel.org>
To: Hillf Danton <hillf.zj@alibaba-inc.com>
Cc: 'Oleg Nesterov' <oleg@redhat.com>,
'linux-kernel' <linux-kernel@vger.kernel.org>,
linux-mm@kvack.org
Subject: Re: [PATCH 03/10] proc, oom_adj: extract oom_score_adj setting into a helper
Date: Wed, 22 Jun 2016 08:34:41 +0200 [thread overview]
Message-ID: <20160622063441.GA7520@dhcp22.suse.cz> (raw)
In-Reply-To: <06e801d1cc34$920d5cd0$b6281670$@alibaba-inc.com>
On Wed 22-06-16 11:17:12, Hillf Danton wrote:
>
> > > > diff --git a/fs/proc/base.c b/fs/proc/base.c
> > > > index 968d5ea06e62..a6a8fbdd5a1b 100644
> > > > --- a/fs/proc/base.c
> > > > +++ b/fs/proc/base.c
> > > > @@ -1037,7 +1037,47 @@ static ssize_t oom_adj_read(struct file *file, char __user *buf, size_t count,
> > > > return simple_read_from_buffer(buf, count, ppos, buffer, len);
> > > > }
> > > >
> > > > -static DEFINE_MUTEX(oom_adj_mutex);
> > > > +static int __set_oom_adj(struct file *file, int oom_adj, bool legacy)
> > > > +{
> > > > + static DEFINE_MUTEX(oom_adj_mutex);
> > >
> > > Writers are not excluded for readers!
> > > Is this a hot path?
> >
> > I am not sure I follow you question. This is a write path... Who would
> > be the reader?
> >
> Currently oom_adj_read() and oom_adj_write() are serialized with
> task->sighand->siglock, and in this work oom_adj_mutex is introduced to
> only keep writers in hose.
OK, I see your point now. I didn't bother with the serialization with
readers because I believe it doesn't matter so much. Readers would
have to synchronize with writers to make sure they are seeing the most
current value otherwise you could see an outdated value anyway. It's
not like you would see a "corrupted" value without lock.
The primary point of the lock is to make sure that parallel updaters
cannot allow non-priviledged user to escape the restrictions.
If you see any specific scenario which would suffer from the lack of
serialization I can add the lock to readers as well.
> Plus, oom_adj_write() and oom_badness() are currently serialized
> with task->alloc_lock, and they may be handled in subsequent patches.
alloc_lock is there just to make sure we see the proper mm.
--
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:[~2016-06-22 6:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <06be01d1cb9c$8f235850$ad6a08f0$@alibaba-inc.com>
2016-06-21 9:27 ` Hillf Danton
2016-06-21 11:17 ` Michal Hocko
2016-06-22 3:17 ` Hillf Danton
2016-06-22 6:34 ` Michal Hocko [this message]
2016-06-20 12:43 [PATCH 0/10 -v5] Handle oom bypass more gracefully Michal Hocko
2016-06-20 12:43 ` [PATCH 03/10] proc, oom_adj: extract oom_score_adj setting into a helper Michal Hocko
-- strict thread matches above, loose matches on Subject: below --
2016-06-09 11:52 [PATCH 0/10 -v4] Handle oom bypass more gracefully Michal Hocko
2016-06-09 11:52 ` [PATCH 03/10] proc, oom_adj: extract oom_score_adj setting into a helper Michal Hocko
2016-06-03 9:16 [PATCH 0/10 -v3] Handle oom bypass more gracefully Michal Hocko
2016-06-03 9:16 ` [PATCH 03/10] proc, oom_adj: extract oom_score_adj setting into a helper 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=20160622063441.GA7520@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=hillf.zj@alibaba-inc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=oleg@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox