linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Michal Hocko <mhocko@suse.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: Thu, 20 Aug 2020 23:39:25 -0500	[thread overview]
Message-ID: <87r1s0txxe.fsf@x220.int.ebiederm.org> (raw)
In-Reply-To: <20200820162645.GP5033@dhcp22.suse.cz> (Michal Hocko's message of "Thu, 20 Aug 2020 18:26:45 +0200")

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.


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);
		}
	}

That would seem to be the minimal change to make this happen.  That has
the advantage that if a processes does vfork it won't always have to
take the slow path.

Moving to the mm_struct is much less racy but this is simple.

Eric


  parent reply	other threads:[~2020-08-21  4:43 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 [this message]
2020-08-21  7:17                           ` Michal Hocko
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=87r1s0txxe.fsf@x220.int.ebiederm.org \
    --to=ebiederm@xmission.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=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=mhocko@suse.com \
    --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