All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shakeel Butt <shakeelb@google.com>
To: Liam Howlett <liam.howlett@oracle.com>
Cc: Alistair Popple <apopple@nvidia.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"nouveau@lists.freedesktop.org" <nouveau@lists.freedesktop.org>,
	"bskeggs@redhat.com" <bskeggs@redhat.com>,
	"rcampbell@nvidia.com" <rcampbell@nvidia.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"jhubbard@nvidia.com" <jhubbard@nvidia.com>,
	"bsingharora@gmail.com" <bsingharora@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"hch@infradead.org" <hch@infradead.org>,
	"jglisse@redhat.com" <jglisse@redhat.com>,
	"willy@infradead.org" <willy@infradead.org>,
	"jgg@nvidia.com" <jgg@nvidia.com>,
	"peterx@redhat.com" <peterx@redhat.com>,
	"hughd@google.com" <hughd@google.com>,
	Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH v9 03/10] mm/rmap: Split try_to_munlock from try_to_unmap
Date: Fri, 4 Jun 2021 21:19:55 -0700	[thread overview]
Message-ID: <CALvZod5EWuUu7MfJ12_+QTY2MUinmShoS+0hoRGVcn5Q1G6eHw@mail.gmail.com> (raw)
In-Reply-To: <20210605033926.pkeq2saomieebrqa@revolver>

On Fri, Jun 4, 2021 at 8:39 PM Liam Howlett <liam.howlett@oracle.com> wrote:
>
> > Particularly the following paragraph:
> > ...
> >     Vlastimil Babka points out another race which this patch protects against.
> >      try_to_unmap_one() might reach its mlock_vma_page() TestSetPageMlocked a
> >     moment after munlock_vma_pages_all() did its Phase 1 TestClearPageMlocked:
> >     leaving PageMlocked and unevictable when it should be evictable.  mmap_sem
> >     is ineffective because exit_mmap() does not hold it; page lock ineffective
> >     because __munlock_pagevec() only takes it afterwards, in Phase 2; pte lock
> >     is effective because __munlock_pagevec_fill() takes it to get the page,
> >     after VM_LOCKED was cleared from vm_flags, so visible to try_to_unmap_one.
> > ...
>
> So this is saying the race with exit_mmap() isn't benign after all?
>

Yes, not benign at all.

WARNING: multiple messages have this Message-ID (diff)
From: Shakeel Butt <shakeelb@google.com>
To: Liam Howlett <liam.howlett@oracle.com>
Cc: "rcampbell@nvidia.com" <rcampbell@nvidia.com>,
	"willy@infradead.org" <willy@infradead.org>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"nouveau@lists.freedesktop.org" <nouveau@lists.freedesktop.org>,
	"bsingharora@gmail.com" <bsingharora@gmail.com>,
	Alistair Popple <apopple@nvidia.com>,
	"hughd@google.com" <hughd@google.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"peterx@redhat.com" <peterx@redhat.com>,
	"hch@infradead.org" <hch@infradead.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"bskeggs@redhat.com" <bskeggs@redhat.com>,
	"jgg@nvidia.com" <jgg@nvidia.com>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>
Subject: Re: [Nouveau] [PATCH v9 03/10] mm/rmap: Split try_to_munlock from try_to_unmap
Date: Fri, 4 Jun 2021 21:19:55 -0700	[thread overview]
Message-ID: <CALvZod5EWuUu7MfJ12_+QTY2MUinmShoS+0hoRGVcn5Q1G6eHw@mail.gmail.com> (raw)
In-Reply-To: <20210605033926.pkeq2saomieebrqa@revolver>

On Fri, Jun 4, 2021 at 8:39 PM Liam Howlett <liam.howlett@oracle.com> wrote:
>
> > Particularly the following paragraph:
> > ...
> >     Vlastimil Babka points out another race which this patch protects against.
> >      try_to_unmap_one() might reach its mlock_vma_page() TestSetPageMlocked a
> >     moment after munlock_vma_pages_all() did its Phase 1 TestClearPageMlocked:
> >     leaving PageMlocked and unevictable when it should be evictable.  mmap_sem
> >     is ineffective because exit_mmap() does not hold it; page lock ineffective
> >     because __munlock_pagevec() only takes it afterwards, in Phase 2; pte lock
> >     is effective because __munlock_pagevec_fill() takes it to get the page,
> >     after VM_LOCKED was cleared from vm_flags, so visible to try_to_unmap_one.
> > ...
>
> So this is saying the race with exit_mmap() isn't benign after all?
>

Yes, not benign at all.
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

WARNING: multiple messages have this Message-ID (diff)
From: Shakeel Butt <shakeelb@google.com>
To: Liam Howlett <liam.howlett@oracle.com>
Cc: "rcampbell@nvidia.com" <rcampbell@nvidia.com>,
	"willy@infradead.org" <willy@infradead.org>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"nouveau@lists.freedesktop.org" <nouveau@lists.freedesktop.org>,
	"bsingharora@gmail.com" <bsingharora@gmail.com>,
	Alistair Popple <apopple@nvidia.com>,
	"hughd@google.com" <hughd@google.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"peterx@redhat.com" <peterx@redhat.com>,
	"hch@infradead.org" <hch@infradead.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"jglisse@redhat.com" <jglisse@redhat.com>,
	"bskeggs@redhat.com" <bskeggs@redhat.com>,
	"jgg@nvidia.com" <jgg@nvidia.com>,
	"jhubbard@nvidia.com" <jhubbard@nvidia.com>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH v9 03/10] mm/rmap: Split try_to_munlock from try_to_unmap
Date: Fri, 4 Jun 2021 21:19:55 -0700	[thread overview]
Message-ID: <CALvZod5EWuUu7MfJ12_+QTY2MUinmShoS+0hoRGVcn5Q1G6eHw@mail.gmail.com> (raw)
In-Reply-To: <20210605033926.pkeq2saomieebrqa@revolver>

On Fri, Jun 4, 2021 at 8:39 PM Liam Howlett <liam.howlett@oracle.com> wrote:
>
> > Particularly the following paragraph:
> > ...
> >     Vlastimil Babka points out another race which this patch protects against.
> >      try_to_unmap_one() might reach its mlock_vma_page() TestSetPageMlocked a
> >     moment after munlock_vma_pages_all() did its Phase 1 TestClearPageMlocked:
> >     leaving PageMlocked and unevictable when it should be evictable.  mmap_sem
> >     is ineffective because exit_mmap() does not hold it; page lock ineffective
> >     because __munlock_pagevec() only takes it afterwards, in Phase 2; pte lock
> >     is effective because __munlock_pagevec_fill() takes it to get the page,
> >     after VM_LOCKED was cleared from vm_flags, so visible to try_to_unmap_one.
> > ...
>
> So this is saying the race with exit_mmap() isn't benign after all?
>

Yes, not benign at all.

  reply	other threads:[~2021-06-05  4:20 UTC|newest]

Thread overview: 123+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-24 13:27 [PATCH v9 00/10] Add support for SVM atomics in Nouveau Alistair Popple
2021-05-24 13:27 ` Alistair Popple
2021-05-24 13:27 ` [Nouveau] " Alistair Popple
2021-05-24 13:27 ` [PATCH v9 01/10] mm: Remove special swap entry functions Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple
2021-05-24 13:27 ` [PATCH v9 02/10] mm/swapops: Rework swap entry manipulation code Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple
2021-05-24 13:27 ` [PATCH v9 03/10] mm/rmap: Split try_to_munlock from try_to_unmap Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple
2021-05-25 18:39   ` Liam Howlett
2021-05-25 18:39     ` Liam Howlett
2021-05-25 18:39     ` [Nouveau] " Liam Howlett
2021-05-25 23:45     ` Shakeel Butt
2021-05-25 23:45       ` Shakeel Butt
2021-05-25 23:45       ` [Nouveau] " Shakeel Butt
2021-05-25 23:45       ` Shakeel Butt
2021-06-04 20:49       ` Liam Howlett
2021-06-04 20:49         ` Liam Howlett
2021-06-04 20:49         ` [Nouveau] " Liam Howlett
2021-06-05  0:41         ` Shakeel Butt
2021-06-05  0:41           ` Shakeel Butt
2021-06-05  0:41           ` [Nouveau] " Shakeel Butt
2021-06-05  0:41           ` Shakeel Butt
2021-06-05  3:39           ` Liam Howlett
2021-06-05  3:39             ` Liam Howlett
2021-06-05  3:39             ` [Nouveau] " Liam Howlett
2021-06-05  4:19             ` Shakeel Butt [this message]
2021-06-05  4:19               ` Shakeel Butt
2021-06-05  4:19               ` [Nouveau] " Shakeel Butt
2021-06-05  4:19               ` Shakeel Butt
2021-06-07  4:51           ` Alistair Popple
2021-06-07  4:51             ` Alistair Popple
2021-06-07  4:51             ` [Nouveau] " Alistair Popple
2021-05-24 13:27 ` [PATCH v9 04/10] mm/rmap: Split migration into its own function Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple
2021-05-24 13:27 ` [PATCH v9 05/10] mm: Rename migrate_pgmap_owner Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple
2021-05-26 19:41   ` Peter Xu
2021-05-26 19:41     ` Peter Xu
2021-05-26 19:41     ` [Nouveau] " Peter Xu
2021-05-24 13:27 ` [PATCH v9 06/10] mm/memory.c: Allow different return codes for copy_nonpresent_pte() Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple
2021-05-26 19:50   ` Peter Xu
2021-05-26 19:50     ` Peter Xu
2021-05-26 19:50     ` [Nouveau] " Peter Xu
2021-05-27  1:20     ` Alistair Popple
2021-05-27  1:20       ` Alistair Popple
2021-05-27  1:20       ` [Nouveau] " Alistair Popple
2021-05-27  1:44       ` Peter Xu
2021-05-27  1:44         ` Peter Xu
2021-05-27  1:44         ` [Nouveau] " Peter Xu
2021-05-24 13:27 ` [PATCH v9 07/10] mm: Device exclusive memory access Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple
2021-05-24 22:11   ` Andrew Morton
2021-05-24 22:11     ` Andrew Morton
2021-05-24 22:11     ` [Nouveau] " Andrew Morton
2021-05-25  1:31     ` John Hubbard
2021-05-25  1:31       ` John Hubbard
2021-05-25  1:31       ` [Nouveau] " John Hubbard
2021-05-25  9:21       ` Alistair Popple
2021-05-25  9:21         ` Alistair Popple
2021-05-25  9:21         ` [Nouveau] " Alistair Popple
2021-05-25 11:51     ` Balbir Singh
2021-05-25 11:51       ` Balbir Singh
2021-05-25 11:51       ` [Nouveau] " Balbir Singh
2021-05-26  7:17       ` John Hubbard
2021-05-26  7:17         ` John Hubbard
2021-05-26  7:17         ` [Nouveau] " John Hubbard
2021-05-26 13:30         ` Alistair Popple
2021-05-26 13:30           ` Alistair Popple
2021-05-26 13:30           ` [Nouveau] " Alistair Popple
2021-06-02  8:50         ` Balbir Singh
2021-06-02  8:50           ` Balbir Singh
2021-06-02  8:50           ` [Nouveau] " Balbir Singh
2021-06-02 14:37           ` Peter Xu
2021-06-02 14:37             ` Peter Xu
2021-06-02 14:37             ` [Nouveau] " Peter Xu
2021-06-03 11:39             ` Alistair Popple
2021-06-03 11:39               ` Alistair Popple
2021-06-03 11:39               ` [Nouveau] " Alistair Popple
2021-06-03 14:47               ` Peter Xu
2021-06-03 14:47                 ` Peter Xu
2021-06-03 14:47                 ` [Nouveau] " Peter Xu
2021-06-04  1:07                 ` Alistair Popple
2021-06-04  1:07                   ` Alistair Popple
2021-06-04  1:07                   ` [Nouveau] " Alistair Popple
2021-06-04 15:20                   ` Peter Xu
2021-06-04 15:20                     ` Peter Xu
2021-06-04 15:20                     ` [Nouveau] " Peter Xu
2021-06-03  8:37           ` John Hubbard
2021-06-03  8:37             ` John Hubbard
2021-06-03  8:37             ` [Nouveau] " John Hubbard
2021-05-26 19:28   ` Peter Xu
2021-05-26 19:28     ` Peter Xu
2021-05-26 19:28     ` [Nouveau] " Peter Xu
2021-05-27  3:35     ` Alistair Popple
2021-05-27  3:35       ` Alistair Popple
2021-05-27  3:35       ` [Nouveau] " Alistair Popple
2021-05-27 13:04       ` Peter Xu
2021-05-27 13:04         ` Peter Xu
2021-05-27 13:04         ` [Nouveau] " Peter Xu
2021-05-28  1:48         ` Alistair Popple
2021-05-28  1:48           ` Alistair Popple
2021-05-28  1:48           ` [Nouveau] " Alistair Popple
2021-05-28 13:11           ` Peter Xu
2021-05-28 13:11             ` Peter Xu
2021-05-28 13:11             ` [Nouveau] " Peter Xu
2021-05-24 13:27 ` [PATCH v9 08/10] mm: Selftests for exclusive device memory Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple
2021-05-24 13:27 ` [PATCH v9 09/10] nouveau/svm: Refactor nouveau_range_fault Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple
2021-05-24 13:27 ` [PATCH v9 10/10] nouveau/svm: Implement atomic SVM access Alistair Popple
2021-05-24 13:27   ` Alistair Popple
2021-05-24 13:27   ` [Nouveau] " Alistair Popple

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=CALvZod5EWuUu7MfJ12_+QTY2MUinmShoS+0hoRGVcn5Q1G6eHw@mail.gmail.com \
    --to=shakeelb@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=apopple@nvidia.com \
    --cc=bsingharora@gmail.com \
    --cc=bskeggs@redhat.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hch@infradead.org \
    --cc=hch@lst.de \
    --cc=hughd@google.com \
    --cc=jgg@nvidia.com \
    --cc=jglisse@redhat.com \
    --cc=jhubbard@nvidia.com \
    --cc=liam.howlett@oracle.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nouveau@lists.freedesktop.org \
    --cc=peterx@redhat.com \
    --cc=rcampbell@nvidia.com \
    --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.