From: Michal Hocko <mhocko@suse.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Suren Baghdasaryan <surenb@google.com>,
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
Christian Brauner <christian.brauner@ubuntu.com>,
Tim Murray <timmurray@google.com>,
mingo@kernel.org, Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
esyr@redhat.com, christian@kellner.me, areber@redhat.com,
Shakeel Butt <shakeelb@google.com>,
cyphar@cyphar.com, Oleg Nesterov <oleg@redhat.com>,
adobriyan@gmail.com, Andrew Morton <akpm@linux-foundation.org>,
gladkov.alexey@gmail.com, Michel Lespinasse <walken@google.com>,
daniel.m.jordan@oracle.com, avagin@gmail.com,
bernd.edlinger@hotmail.de,
John Johansen <john.johansen@canonical.com>,
laoar.shao@gmail.com, Minchan Kim <minchan@kernel.org>,
kernel-team <kernel-team@android.com>,
LKML <linux-kernel@vger.kernel.org>,
linux-fsdevel@vger.kernel.org, linux-mm <linux-mm@kvack.org>
Subject: Re: [PATCH 1/1] mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
Date: Fri, 21 Aug 2020 09:17:30 +0200 [thread overview]
Message-ID: <20200821071730.GA32537@dhcp22.suse.cz> (raw)
In-Reply-To: <87r1s0txxe.fsf@x220.int.ebiederm.org>
On Thu 20-08-20 23:39:25, Eric W. Biederman wrote:
> Michal Hocko <mhocko@suse.com> writes:
>
> > On Thu 20-08-20 08:56:53, Suren Baghdasaryan wrote:
> > [...]
> >> Catching up on the discussion which was going on while I was asleep...
> >> So it sounds like there is a consensus that oom_adj should be moved to
> >> mm_struct rather than trying to synchronize it among tasks sharing mm.
> >> That sounds reasonable to me too. Michal answered all the earlier
> >> questions about this patch, so I won't be reiterating them, thanks
> >> Michal. If any questions are still lingering about the original patch
> >> I'll be glad to answer them.
> >
> > I think it still makes some sense to go with a simpler (aka less tricky)
> > solution which would be your original patch with an incremental fix for
> > vfork and the proper ordering (http://lkml.kernel.org/r/20200820124109.GI5033@dhcp22.suse.cz)
> > and then make a more complex shift to mm struct on top of that. The
> > former will be less tricky to backport to stable IMHO.
>
> So I am confused.
>
> I don't know how a subtle dependency on something in clone
> is better than something flat footed in exec.
Well, I think that setting a flag is an easier approach than handle all
the special cases for the mm thing. But this is likely because this is
not my domain so my judgment call might be misled. Anyway if there is a
general consensus that doing the middle step is not worth it I am not
going to object.
> That said if we are going for a small change why not:
>
> /*
> * Make sure we will check other processes sharing the mm if this is
> * not vfrok which wants its own oom_score_adj.
> * pin the mm so it doesn't go away and get reused after task_unlock
> */
> if (!task->vfork_done) {
> struct task_struct *p = find_lock_task_mm(task);
>
> if (p) {
> - if (atomic_read(&p->mm->mm_users) > 1) {
> + if (atomic_read(&p->mm->mm_users) > p->signal->nr_threads) {
> mm = p->mm;
> mmgrab(mm);
> }
> task_unlock(p);
> }
> }
I remember playing with something like that but it had problems too. I
do not remember details. Oleg would know better.
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2020-08-21 7:17 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-20 0:20 Suren Baghdasaryan
2020-08-20 5:56 ` Michal Hocko
2020-08-20 8:46 ` Christian Brauner
2020-08-20 9:09 ` Michal Hocko
2020-08-20 10:32 ` Christian Brauner
2020-08-20 11:14 ` Michal Hocko
2020-08-20 10:55 ` Oleg Nesterov
2020-08-20 11:13 ` Michal Hocko
2020-08-20 11:29 ` Michal Hocko
2020-08-20 11:41 ` Oleg Nesterov
2020-08-20 11:47 ` Christian Brauner
2020-08-20 11:30 ` Christian Brauner
2020-08-20 11:42 ` Michal Hocko
2020-08-20 12:41 ` Michal Hocko
2020-08-20 13:43 ` Christian Brauner
2020-08-20 12:34 ` Eric W. Biederman
2020-08-20 12:42 ` Michal Hocko
2020-08-20 12:45 ` Eric W. Biederman
2020-08-20 12:54 ` Eric W. Biederman
2020-08-20 13:26 ` Michal Hocko
2020-08-20 13:34 ` Christian Brauner
[not found] ` <dcb62b67-5ad6-f63a-a909-e2fa70b240fc@i-love.sakura.ne.jp>
2020-08-20 14:00 ` Christian Brauner
2020-08-20 14:15 ` Michal Hocko
[not found] ` <42d5645e-0364-c8cd-01dc-93a9aaff5b09@i-love.sakura.ne.jp>
2020-08-20 14:34 ` Michal Hocko
[not found] ` <637ab0e7-e686-0c94-753b-b97d24bb8232@i-love.sakura.ne.jp>
2020-08-20 14:49 ` Eric W. Biederman
2020-08-20 15:06 ` Christian Brauner
2020-08-20 15:56 ` Suren Baghdasaryan
2020-08-20 16:26 ` Michal Hocko
2020-08-20 16:29 ` Christian Brauner
2020-08-20 16:47 ` Suren Baghdasaryan
2020-08-21 4:39 ` Eric W. Biederman
2020-08-21 7:17 ` Michal Hocko [this message]
2020-08-21 11:15 ` Oleg Nesterov
2020-08-21 15:28 ` Suren Baghdasaryan
2020-08-21 16:06 ` Suren Baghdasaryan
2020-08-21 16:37 ` Oleg Nesterov
2020-08-21 17:22 ` Suren Baghdasaryan
2020-08-21 16:33 ` Oleg Nesterov
2020-08-21 17:59 ` Oleg Nesterov
2020-08-21 18:53 ` Suren Baghdasaryan
2020-08-24 20:03 ` Suren Baghdasaryan
2020-08-20 13:41 ` Eric W. Biederman
2020-08-20 14:04 ` Oleg Nesterov
2020-08-20 14:36 ` Oleg Nesterov
2020-08-20 15:06 ` Eric W. Biederman
2020-08-20 14:43 ` Eric W. Biederman
2020-08-20 14:12 ` 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=20200821071730.GA32537@dhcp22.suse.cz \
--to=mhocko@suse.com \
--cc=adobriyan@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=areber@redhat.com \
--cc=avagin@gmail.com \
--cc=bernd.edlinger@hotmail.de \
--cc=christian.brauner@ubuntu.com \
--cc=christian@kellner.me \
--cc=cyphar@cyphar.com \
--cc=daniel.m.jordan@oracle.com \
--cc=ebiederm@xmission.com \
--cc=esyr@redhat.com \
--cc=gladkov.alexey@gmail.com \
--cc=john.johansen@canonical.com \
--cc=kernel-team@android.com \
--cc=laoar.shao@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan@kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=penguin-kernel@i-love.sakura.ne.jp \
--cc=peterz@infradead.org \
--cc=shakeelb@google.com \
--cc=surenb@google.com \
--cc=tglx@linutronix.de \
--cc=timmurray@google.com \
--cc=walken@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox