From: Peter Xu <peterx@redhat.com>
To: Lorenzo Stoakes <lstoakes@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Andrew Morton <akpm@linux-foundation.org>,
"Liam R . Howlett" <Liam.Howlett@oracle.com>,
Mark Rutland <mark.rutland@arm.com>,
Andrea Arcangeli <aarcange@redhat.com>,
Mike Rapoport <rppt@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-stable <stable@vger.kernel.org>
Subject: Re: [PATCH 1/2] mm/uffd: Fix vma operation where start addr cuts part of vma
Date: Wed, 17 May 2023 14:54:39 -0400 [thread overview]
Message-ID: <ZGUi79uCvmDLuh0i@x1n> (raw)
In-Reply-To: <99566f92-9b97-4b2b-b75b-860532e851fd@lucifer.local>
On Wed, May 17, 2023 at 07:40:59PM +0100, Lorenzo Stoakes wrote:
> On Wed, May 17, 2023 at 02:37:41PM -0400, Peter Xu wrote:
> > On Wed, May 17, 2023 at 06:20:55PM +0100, Lorenzo Stoakes wrote:
> > > On Wed, May 17, 2023 at 11:04:07AM -0400, Peter Xu wrote:
> > > > It seems vma merging with uffd paths is broken with either
> > > > register/unregister, where right now we can feed wrong parameters to
> > > > vma_merge() and it's found by recent patch which moved asserts upwards in
> > > > vma_merge() by Lorenzo Stoakes:
> > > >
> > > > https://lore.kernel.org/all/ZFunF7DmMdK05MoF@FVFF77S0Q05N.cambridge.arm.com/
> > > >
> > > > The problem is in the current code base we didn't fixup "prev" for the case
> > > > where "start" address can be within the "prev" vma section. In that case
> > > > we should have "prev" points to the current vma rather than the previous
> > > > one when feeding to vma_merge().
> > >
> > > This doesn't seem quite correct, perhaps - "where start is contained within vma
> > > but not clamped to its start. We need to convert this into case 4 which permits
> > > subdivision of prev by assigning vma to prev. As we loop, each subsequent VMA
> > > will be clamped to the start."
> >
> > I think it covers more than case 4 - it can also be case 0 where no merge
> > will happen?
>
> Ugh please let's not call a case that doesn't merge by a number :P but sure of
> course it might also not merge.
To me the original paragraph was still fine. But if you prefer your version
(which I'm perfectly fine either way if you'd like to spell out what cases
it'll trigger), it'll be:
It's possible that "start" is contained within vma but not clamped to its
start. We need to convert this into either "cannot merge" case or "can
merge" case 4 which permits subdivision of prev by assigning vma to
prev. As we loop, each subsequent VMA will be clamped to the start.
Does that look good to you?
Thanks,
--
Peter Xu
next prev parent reply other threads:[~2023-05-17 18:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-17 15:04 [PATCH 0/2] mm/uffd: Fix vma merge/split Peter Xu
2023-05-17 15:04 ` [PATCH 1/2] mm/uffd: Fix vma operation where start addr cuts part of vma Peter Xu
2023-05-17 17:20 ` Lorenzo Stoakes
2023-05-17 18:37 ` Peter Xu
2023-05-17 18:40 ` Lorenzo Stoakes
2023-05-17 18:54 ` Peter Xu [this message]
2023-05-17 19:03 ` Lorenzo Stoakes
2023-05-17 18:01 ` Liam R. Howlett
2023-05-17 15:04 ` [PATCH 2/2] mm/uffd: Allow vma to merge as much as possible Peter Xu
2023-05-17 17:23 ` Lorenzo Stoakes
2023-05-17 18:39 ` Peter Xu
2023-05-17 18:01 ` Liam R. Howlett
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=ZGUi79uCvmDLuh0i@x1n \
--to=peterx@redhat.com \
--cc=Liam.Howlett@oracle.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lstoakes@gmail.com \
--cc=mark.rutland@arm.com \
--cc=rppt@kernel.org \
--cc=stable@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/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