From: Dev Jain <dev.jain@arm.com>
To: Barry Song <baohua@kernel.org>
Cc: akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org,
hughd@google.com, chrisl@kernel.org, kasong@tencent.com,
davem@davemloft.net, andreas@gaisler.com, riel@surriel.com,
liam@infradead.org, vbabka@kernel.org, harry@kernel.org,
jannh@google.com, lance.yang@linux.dev,
baolin.wang@linux.alibaba.com, shikemeng@huaweicloud.com,
nphamcs@gmail.com, baoquan.he@linux.dev, youngjun.park@lge.com,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
rppt@kernel.org, surenb@google.com, mhocko@suse.com,
pfalcato@suse.de, jgg@ziepe.ca, thuth@redhat.com,
sparclinux@vger.kernel.org, ryan.roberts@arm.com,
anshuman.khandual@arm.com
Subject: Re: [PATCH v3 3/9] mm: move anon-exclusive batch helper to rmap.h
Date: Fri, 25 Sep 2026 15:48:32 +0530 [thread overview]
Message-ID: <638cdbef-016a-41f1-986f-7ed6e65e80c4@arm.com> (raw)
In-Reply-To: <CAGsJ_4yVhXF+-gOrOB+JOK6nZt19SA=LT+gXpmaMpErg6Ra5NQ@mail.gmail.com>
On 25/09/26 2:32 am, Barry Song wrote:
> On Thu, Sep 24, 2026 at 9:11 PM Dev Jain <dev.jain@arm.com> wrote:
>>
>> In preparation for optimizing large folio unmapping, we need to reuse
>> the page_anon_exclusive_batch helper in rmap.c and rmap.h and obey the
>> existing use in mprotect.c .
>>
>> Therefore, move it from mprotect.c to rmap.h.
>>
>> While at it, change return type, start_idx and max_len to unsigned long
>> type for future proofing against THP support at >= PUD level. Also
>> shorten expected_anon_exclusive -> anon_exclusive.
>
> I really think the `expected` prefix makes the semantics clearer, so I
> don't think it's necessary to remove it.
>
> If you really find it too long, maybe just use
> `expected_exclusive`, since we're already in the anon context and
> know that it is definitely anon.
>
> Another option might be to make `*exclusive` an output parameter.
> Then we wouldn't need to call
> `expected_anon_exclusive = PageAnonExclusive(first_page + batch_idx);`
> in the caller.
Ah nice! This looks much cleaner, thanks.
>
> static __always_inline unsigned long
> page_anon_exclusive_batch(unsigned long start_idx,
> unsigned long max_len, struct page *first_page, bool *exclusive)
>
>>
>> Signed-off-by: Dev Jain <dev.jain@arm.com>
>
> Otherwise, the patch looks good to me.
>
> Reviewed-by: Barry Song <baohua@kernel.org>
Thanks.
>
>> ---
>> include/linux/rmap.h | 17 +++++++++++++++++
>> mm/mprotect.c | 18 +-----------------
>> 2 files changed, 18 insertions(+), 17 deletions(-)
>>
>> diff --git a/include/linux/rmap.h b/include/linux/rmap.h
>> index 74cca0e3c7264..62ef511a6175a 100644
>> --- a/include/linux/rmap.h
>> +++ b/include/linux/rmap.h
>> @@ -106,6 +106,23 @@ enum ttu_flags {
>>
>> #ifdef CONFIG_MMU
>>
>> +/*
>> + * Get max length of consecutive PTEs pointing to PageAnonExclusive() pages or
>> + * !PageAnonExclusive() pages, starting from start_idx. Caller must enforce
>> + * that the PTEs point to consecutive pages of the same anon large folio.
>> + */
>> +static __always_inline unsigned long page_anon_exclusive_batch(unsigned long start_idx,
>> + unsigned long max_len, struct page *first_page, bool anon_exclusive)
>> +{
>> + unsigned long idx;
>> +
>> + for (idx = start_idx + 1; idx < start_idx + max_len; ++idx) {
>> + if (anon_exclusive != PageAnonExclusive(first_page + idx))
>> + break;
>> + }
>> + return idx - start_idx;
>> +}
>> +
>
> Thanks
> Barry
next prev parent reply other threads:[~2026-09-25 10:18 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 13:09 [PATCH v3 0/9] Optimize anonymous swapbacked large folio unmapping Dev Jain
2026-09-24 13:09 ` [PATCH v3 1/9] mm/swapfile: add batched version of folio_dup_swap Dev Jain
2026-09-29 9:20 ` Kairui Song
2026-09-24 13:09 ` [PATCH v3 2/9] mm/swapfile: add batched version of folio_put_swap Dev Jain
2026-09-29 9:22 ` Kairui Song
2026-09-24 13:09 ` [PATCH v3 3/9] mm: move anon-exclusive batch helper to rmap.h Dev Jain
2026-09-24 21:02 ` Barry Song
2026-09-25 10:18 ` Dev Jain [this message]
2026-09-24 13:09 ` [PATCH v3 4/9] mm/rmap: Add batched version of folio_try_share_anon_rmap_pte Dev Jain
2026-09-25 5:30 ` Barry Song
2026-09-25 11:09 ` Dev Jain
2026-09-25 12:03 ` Barry Song
2026-09-24 13:09 ` [PATCH v3 5/9] mm/internal: rename swap offset helpers to softleaf offset Dev Jain
2026-09-24 13:09 ` [PATCH v3 6/9] mm/internal: add set_softleaf_ptes Dev Jain
2026-09-24 13:09 ` [PATCH v3 7/9] mm/memory: use set_softleaf_ptes for uffd-wp markers Dev Jain
2026-09-24 13:09 ` [PATCH v3 8/9] mm/rmap: batch unmap anonymous swap-backed large folios Dev Jain
2026-09-25 6:15 ` Barry Song
2026-09-25 11:25 ` Dev Jain
2026-09-26 12:37 ` Dev Jain
2026-09-24 13:09 ` [PATCH v3 9/9] mm, sparc: batch arch_unmap_one() Dev Jain
2026-10-02 10:15 ` [PATCH v3 0/9] Optimize anonymous swapbacked large folio unmapping David Hildenbrand (Arm)
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=638cdbef-016a-41f1-986f-7ed6e65e80c4@arm.com \
--to=dev.jain@arm.com \
--cc=akpm@linux-foundation.org \
--cc=andreas@gaisler.com \
--cc=anshuman.khandual@arm.com \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=baoquan.he@linux.dev \
--cc=chrisl@kernel.org \
--cc=davem@davemloft.net \
--cc=david@kernel.org \
--cc=harry@kernel.org \
--cc=hughd@google.com \
--cc=jannh@google.com \
--cc=jgg@ziepe.ca \
--cc=kasong@tencent.com \
--cc=lance.yang@linux.dev \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=nphamcs@gmail.com \
--cc=pfalcato@suse.de \
--cc=riel@surriel.com \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=shikemeng@huaweicloud.com \
--cc=sparclinux@vger.kernel.org \
--cc=surenb@google.com \
--cc=thuth@redhat.com \
--cc=vbabka@kernel.org \
--cc=youngjun.park@lge.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 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.