From: Harry Yoo <harry.yoo@oracle.com>
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
"Liam R . Howlett" <Liam.Howlett@oracle.com>,
Vlastimil Babka <vbabka@suse.cz>, Jann Horn <jannh@google.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Yosry Ahmed <yosry.ahmed@linux.dev>,
Oliver Sang <oliver.sang@intel.com>
Subject: Re: [PATCH v3 3/7] mm/mremap: introduce and use vma_remap_struct threaded state
Date: Thu, 13 Mar 2025 16:52:59 +0900 [thread overview]
Message-ID: <Z9KO2-XXibMrSFHx@harry> (raw)
In-Reply-To: <27951739dc83b2b1523b81fa9c009ba348388d40.1741639347.git.lorenzo.stoakes@oracle.com>
On Mon, Mar 10, 2025 at 08:50:36PM +0000, Lorenzo Stoakes wrote:
> A number of mremap() calls both pass around and modify a large number of
> parameters, making the code less readable and often repeatedly having to
> determine things such as VMA, size delta, and more.
>
> Avoid this by using the common pattern of passing a state object through
> the operation, updating it as we go. We introduce the vma_remap_struct or
> 'VRM' for this purpose.
>
> This also gives us the ability to accumulate further state through the
> operation that would otherwise require awkward and error-prone pointer
> passing.
>
> We can also now trivially define helper functions that operate on a VRM
> object.
>
> This pattern has proven itself to be very powerful when implemented for
> VMA merge, VMA unmapping and memory mapping operations, so it is
> battle-tested and functional.
>
> We both introduce the data structure and use it, introducing helper
> functions as needed to make things readable, we move some state such as
> mmap lock and mlock() status to the VRM, we introduce a means of
> classifying the type of mremap() operation and de-duplicate the
> get_unmapped_area() lookup.
>
> We also neatly thread userfaultfd state throughout the operation.
>
> Note that there is further refactoring to be done, chiefly adjust
> move_vma() to accept a VRM parameter. We defer this as there is
> pre-requisite work required to be able to do so which we will do in a
> subsequent patch.
>
> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
> ---
Looks good to me,
Reviewed-by: Harry Yoo <harry.yoo@oracle.com>
--
Cheers,
Harry
next prev parent reply other threads:[~2025-03-13 7:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 20:50 [PATCH v3 0/7] refactor mremap and fix bug Lorenzo Stoakes
2025-03-10 20:50 ` [PATCH v3 1/7] mm/mremap: correctly handle partial mremap() of VMA starting at 0 Lorenzo Stoakes
2025-03-10 20:50 ` [PATCH v3 2/7] mm/mremap: refactor mremap() system call implementation Lorenzo Stoakes
2025-03-10 20:50 ` [PATCH v3 3/7] mm/mremap: introduce and use vma_remap_struct threaded state Lorenzo Stoakes
2025-03-13 7:52 ` Harry Yoo [this message]
2025-03-10 20:50 ` [PATCH v3 4/7] mm/mremap: initial refactor of move_vma() Lorenzo Stoakes
2025-03-30 15:01 ` Lai, Yi
2025-03-30 16:46 ` Lorenzo Stoakes
2025-03-30 16:52 ` Lorenzo Stoakes
2025-03-31 9:13 ` Vlastimil Babka
2025-03-31 9:33 ` Lorenzo Stoakes
2025-03-10 20:50 ` [PATCH v3 5/7] mm/mremap: complete " Lorenzo Stoakes
2025-03-10 20:50 ` [PATCH v3 6/7] mm/mremap: refactor move_page_tables(), abstracting state Lorenzo Stoakes
2025-03-10 20:50 ` [PATCH v3 7/7] mm/mremap: thread state through move page table operation Lorenzo Stoakes
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=Z9KO2-XXibMrSFHx@harry \
--to=harry.yoo@oracle.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=jannh@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=oliver.sang@intel.com \
--cc=vbabka@suse.cz \
--cc=yosry.ahmed@linux.dev \
/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.