[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20230320141621.fm3iwh7khjhji6zc@revolver>
Date: Mon, 20 Mar 2023 10:16:21 -0400
From: "Liam R. Howlett" <Liam.Howlett@...cle.com>
To: Vlastimil Babka <vbabka@...e.cz>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Matthew Wilcox <willy@...radead.org>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, patches@...ts.linux.dev,
maple-tree@...ts.infradead.org
Subject: Re: [PATCH 00/10] cleanup vma_merge() and improve mergeability tests
Sorry for the late review, I've been away.
For the whole series,
Reviewed-by: Liam R. Howlett <Liam.Howlett@...cle.com>
* Vlastimil Babka <vbabka@...e.cz> [230309 06:18]:
> Also available in git:
> https://git.kernel.org/vbabka/h/vma_merge_cleanup-v1r2
>
> Changes since RFC:
> - rebased to 6.3-rc1, dropped first patch (urgent fix) that was merged there
> - reindent parameters of mergeability checks (suggested by willy on IRC)
>
> My initial goal here was to try making the check for vm_ops->close in
> is_mergeable_vma() only be applied for vma's that would be truly removed
> as part of the merge (see Patch 9). This would then allow reverting the
> quick fix d014cd7c1c35 ("mm, mremap: fix mremap() expanding for vma's
> with vm_ops->close()"). This was successful enough to allow the revert
> (Patch 10). Checks using can_vma_merge_before() are still pessimistic
> about possible vma removal, and making them precise would probably
> complicate the vma_merge() code too much.
>
> Liam's 6.3-rc1 simplification of vma_merge() and removal of
> __vma_adjust() was very much helpful in understanding the vma_merge()
> implementation and especially when vma removals can happen, which is now
> very obvious. While studing the code, I've found ways to make it
> hopefully even more easy to follow, so that's the patches 1-8. That made
> me also notice a bug that's now already fixed in 6.3-rc1.
>
> Vlastimil Babka (10):
> mm/mmap/vma_merge: use only primary pointers for preparing merge
> mm/mmap/vma_merge: use the proper vma pointer in case 3
> mm/mmap/vma_merge: use the proper vma pointers in cases 1 and 6
> mm/mmap/vma_merge: use the proper vma pointer in case 4
> mm/mmap/vma_merge: initialize mid and next in natural order
> mm/mmap/vma_merge: set mid to NULL if not applicable
> mm/mmap/vma_merge: rename adj_next to adj_start
> mm/mmap/vma_merge: convert mergeability checks to return bool
> mm/mmap: start distinguishing if vma can be removed in mergeability
> test
> mm/mremap: simplify vma expansion again
>
> mm/mmap.c | 142 ++++++++++++++++++++++++++++------------------------
> mm/mremap.c | 20 ++------
> 2 files changed, 80 insertions(+), 82 deletions(-)
>
> --
> 2.39.2
>
Powered by blists - more mailing lists