From: Jason Gunthorpe <jgg@ziepe.ca>
To: Christoph Hellwig <hch@infradead.org>
Cc: Jerome Glisse <jglisse@redhat.com>,
Ralph Campbell <rcampbell@nvidia.com>,
John Hubbard <jhubbard@nvidia.com>,
Felix.Kuehling@amd.com, linux-rdma@vger.kernel.org,
linux-mm@kvack.org, Andrea Arcangeli <aarcange@redhat.com>,
dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
Ben Skeggs <bskeggs@redhat.com>,
Philip Yang <Philip.Yang@amd.com>
Subject: Re: [PATCH v3 hmm 08/12] mm/hmm: Remove racy protection against double-unregistration
Date: Tue, 18 Jun 2019 15:57:57 -0300 [thread overview]
Message-ID: <20190618185757.GP6961@ziepe.ca> (raw)
In-Reply-To: <20190618132722.GA1633@infradead.org>
On Tue, Jun 18, 2019 at 06:27:22AM -0700, Christoph Hellwig wrote:
> On Tue, Jun 18, 2019 at 10:13:24AM -0300, Jason Gunthorpe wrote:
> > > I don't even think we even need to bother with the POISON, normal list
> > > debugging will already catch a double unregistration anyway.
> >
> > mirror->hmm isn't a list so list debugging won't help.
> >
> > My concern when I wrote this was that one of the in flight patches I
> > can't see might be depending on this double-unregister-is-safe
> > behavior, so I wanted them to crash reliably.
> >
> > It is a really overly conservative thing to do..
>
> mirror->list is a list, and if we do a list_del on it during the
> second unregistration it will trip up on the list poisoning.
With the previous loose coupling of the mirror and the range some code
might rance to try to create a range without a mirror, which will now
reliably crash with the poison.
It isn't so much the double unregister that worries me, but racing
unregister with range functions.
Jason
next prev parent reply other threads:[~2019-06-18 18:57 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-14 0:44 [PATCH v3 hmm 00/12] mm/hmm: Various revisions from a locking/code review Jason Gunthorpe
2019-06-14 0:44 ` [PATCH v3 hmm 01/12] mm/hmm: fix use after free with struct hmm in the mmu notifiers Jason Gunthorpe
2019-06-15 13:56 ` Christoph Hellwig
2019-06-14 0:44 ` [PATCH v3 hmm 02/12] mm/hmm: Use hmm_mirror not mm as an argument for hmm_range_register Jason Gunthorpe
2019-06-15 13:59 ` Christoph Hellwig
2019-06-18 13:05 ` Jason Gunthorpe
2019-06-19 8:14 ` Christoph Hellwig
2019-06-14 0:44 ` [PATCH v3 hmm 03/12] mm/hmm: Hold a mmgrab from hmm to mm Jason Gunthorpe
2019-06-15 13:59 ` Christoph Hellwig
2019-06-14 0:44 ` [PATCH v3 hmm 04/12] mm/hmm: Simplify hmm_get_or_create and make it reliable Jason Gunthorpe
2019-06-15 14:12 ` Christoph Hellwig
2019-06-18 0:36 ` Jason Gunthorpe
2019-06-18 18:55 ` Jason Gunthorpe
2019-06-14 0:44 ` [PATCH v3 hmm 05/12] mm/hmm: Remove duplicate condition test before wait_event_timeout Jason Gunthorpe
2019-06-15 14:12 ` Christoph Hellwig
2019-06-14 0:44 ` [PATCH v3 hmm 06/12] mm/hmm: Hold on to the mmget for the lifetime of the range Jason Gunthorpe
2019-06-15 14:14 ` Christoph Hellwig
2019-06-18 15:11 ` Jason Gunthorpe
2019-06-19 8:18 ` Christoph Hellwig
2019-06-19 11:34 ` Jason Gunthorpe
2019-06-19 11:54 ` Christoph Hellwig
2019-06-14 0:44 ` [PATCH v3 hmm 07/12] mm/hmm: Use lockdep instead of comments Jason Gunthorpe
2019-06-15 14:14 ` Christoph Hellwig
2019-06-14 0:44 ` [PATCH v3 hmm 08/12] mm/hmm: Remove racy protection against double-unregistration Jason Gunthorpe
2019-06-15 14:16 ` Christoph Hellwig
2019-06-18 13:13 ` Jason Gunthorpe
2019-06-18 13:27 ` Christoph Hellwig
2019-06-18 18:57 ` Jason Gunthorpe [this message]
2019-06-19 8:19 ` Christoph Hellwig
2019-06-14 0:44 ` [PATCH v3 hmm 09/12] mm/hmm: Poison hmm_range during unregister Jason Gunthorpe
2019-06-15 14:17 ` Christoph Hellwig
2019-06-18 18:04 ` Jason Gunthorpe
2019-06-14 0:44 ` [PATCH v3 hmm 10/12] mm/hmm: Do not use list*_rcu() for hmm->ranges Jason Gunthorpe
2019-06-15 14:18 ` Christoph Hellwig
2019-06-18 0:38 ` Jason Gunthorpe
2019-06-14 0:44 ` [PATCH v3 hmm 11/12] mm/hmm: Remove confusing comment and logic from hmm_release Jason Gunthorpe
2019-06-15 14:21 ` Christoph Hellwig
2019-06-18 0:45 ` Jason Gunthorpe
2019-06-18 5:37 ` Christoph Hellwig
2019-06-19 0:53 ` Kuehling, Felix
2019-06-19 8:07 ` Christoph Hellwig
2019-06-19 11:56 ` Jason Gunthorpe
2019-06-19 12:03 ` Christoph Hellwig
2019-06-14 0:44 ` [PATCH v3 hmm 12/12] mm/hmm: Fix error flows in hmm_invalidate_range_start Jason Gunthorpe
2019-06-15 14:25 ` Christoph Hellwig
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=20190618185757.GP6961@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=Felix.Kuehling@amd.com \
--cc=Philip.Yang@amd.com \
--cc=aarcange@redhat.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=bskeggs@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=hch@infradead.org \
--cc=jglisse@redhat.com \
--cc=jhubbard@nvidia.com \
--cc=linux-mm@kvack.org \
--cc=linux-rdma@vger.kernel.org \
--cc=rcampbell@nvidia.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