All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: Suren Baghdasaryan <surenb@google.com>
Cc: Matthew Wilcox <willy@infradead.org>,
	akpm@linux-foundation.org, hannes@cmpxchg.org, mhocko@suse.com,
	josef@toxicpanda.com, jack@suse.cz, ldufour@linux.ibm.com,
	laurent.dufour@fr.ibm.com, michel@lespinasse.org,
	liam.howlett@oracle.com, jglisse@google.com, vbabka@suse.cz,
	minchan@google.com, dave@stgolabs.net,
	punit.agrawal@bytedance.com, lstoakes@gmail.com,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	kernel-team@android.com
Subject: Re: [PATCH v2 1/1] mm: do not increment pgfault stats when page fault handler retries
Date: Tue, 18 Apr 2023 14:46:15 -0400	[thread overview]
Message-ID: <ZD7ld4Iffdmv5Q8f@x1n> (raw)
In-Reply-To: <CAJuCfpGuF_kKXMSx2bHNC7FprOfqbCp+cfdsoct9sN=1+wqtAQ@mail.gmail.com>

On Tue, Apr 18, 2023 at 09:45:52AM -0700, Suren Baghdasaryan wrote:
> On Tue, Apr 18, 2023 at 8:48 AM Peter Xu <peterx@redhat.com> wrote:
> >
> > On Tue, Apr 18, 2023 at 04:32:27PM +0100, Matthew Wilcox wrote:
> > > ... when we called clone()?  A thread by definition has a reference to
> > > its own mm.
> >
> > Ah yes.. thanks!
> 
> re: I also had a quick look on do_exit() but I also didn't see where
> do we e.g. wait for all the threads to stop before recycles a mm.
> 
> We recycle mm after all refcounts are dropped in the exit path:
>   do_exit
>     exit_mm
>       mmput(if !mm->mm_users)
>         mmdrop(if !mm->mm_count)
>           free_mm

I assume Matthew means when the task_struct is created with part of
kernel_clone().

copy_mm() has:

	if (clone_flags & CLONE_VM) {
		mmget(oldmm);
		mm = oldmm;
	} else {
		mm = dup_mm(tsk, current->mm);
		if (!mm)
			return -ENOMEM;
	}

If CLONE_VM, we'll mmget() on the existing mm. If !CLONE_VM, we'll just
create a new one with reference held.  For the latter, I think that hides
in mm_init() where it'll just set it to 1:

	atomic_set(&mm->mm_users, 1);

With mm_users>0, do_exit() will leave the mm_struct* alone since mmput()
will still be called but not the final step on mmdrop().

Thanks,

-- 
Peter Xu


      reply	other threads:[~2023-04-18 18:47 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-15  0:08 [PATCH v2 1/1] mm: do not increment pgfault stats when page fault handler retries Suren Baghdasaryan
2023-04-17 17:26 ` Matthew Wilcox
2023-04-17 19:40 ` Peter Xu
2023-04-17 20:29   ` Suren Baghdasaryan
2023-04-17 21:14     ` Peter Xu
2023-04-17 21:21       ` Suren Baghdasaryan
2023-04-17 22:52   ` Matthew Wilcox
2023-04-17 23:17     ` Suren Baghdasaryan
2023-04-18 14:25       ` Matthew Wilcox
2023-04-18 14:54         ` Suren Baghdasaryan
2023-04-18 15:08           ` Matthew Wilcox
2023-04-18 16:06             ` Peter Xu
2023-04-18 17:17               ` Suren Baghdasaryan
2023-04-18 21:48                 ` Suren Baghdasaryan
2023-04-18 22:45                   ` Peter Xu
2023-04-18 22:58                     ` Suren Baghdasaryan
2023-04-18 23:38                       ` Peter Xu
2023-04-19 18:00                         ` Suren Baghdasaryan
2023-04-17 21:26 ` Peter Xu
2023-04-17 22:47   ` Suren Baghdasaryan
2023-04-18 15:19     ` Peter Xu
2023-04-18 15:32       ` Matthew Wilcox
2023-04-18 15:48         ` Peter Xu
2023-04-18 16:45           ` Suren Baghdasaryan
2023-04-18 18:46             ` Peter Xu [this message]

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=ZD7ld4Iffdmv5Q8f@x1n \
    --to=peterx@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=dave@stgolabs.net \
    --cc=hannes@cmpxchg.org \
    --cc=jack@suse.cz \
    --cc=jglisse@google.com \
    --cc=josef@toxicpanda.com \
    --cc=kernel-team@android.com \
    --cc=laurent.dufour@fr.ibm.com \
    --cc=ldufour@linux.ibm.com \
    --cc=liam.howlett@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lstoakes@gmail.com \
    --cc=mhocko@suse.com \
    --cc=michel@lespinasse.org \
    --cc=minchan@google.com \
    --cc=punit.agrawal@bytedance.com \
    --cc=surenb@google.com \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    /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.