From: Baolin Wang <baolin.wang@linux.alibaba.com>
To: "David Hildenbrand (Red Hat)" <david@kernel.org>,
akpm@linux-foundation.org, catalin.marinas@arm.com,
will@kernel.org
Cc: lorenzo.stoakes@oracle.com, ryan.roberts@arm.com,
Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org,
surenb@google.com, mhocko@suse.com, riel@surriel.com,
harry.yoo@oracle.com, jannh@google.com, willy@infradead.org,
baohua@kernel.org, linux-mm@kvack.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/2] support batched checks of the references for large folios
Date: Tue, 2 Dec 2025 13:37:59 +0800 [thread overview]
Message-ID: <a2b43faf-cf33-41e5-8997-e4a0471ec3ec@linux.alibaba.com> (raw)
In-Reply-To: <341d1aed-13ad-41ee-ad30-487c5baec399@kernel.org>
On 2025/12/2 00:23, David Hildenbrand (Red Hat) wrote:
> On 11/25/25 01:56, Baolin Wang wrote:
>> Currently, folio_referenced_one() always checks the young flag for
>> each PTE
>> sequentially, which is inefficient for large folios. This inefficiency is
>> especially noticeable when reclaiming clean file-backed large folios,
>> where
>> folio_referenced() is observed as a significant performance hotspot.
>>
>> Moreover, on Arm architecture, which supports contiguous PTEs, there
>> is already
>> an optimization to clear the young flags for PTEs within a contiguous
>> range.
>> However, this is not sufficient. We can extend this to perform batched
>> operations
>> for the entire large folio (which might exceed the contiguous range:
>> CONT_PTE_SIZE).
>>
>> By supporting batched checking of the young flags and flushing TLB
>> entries,
>> I observed a 33% performance improvement in my file-backed folios
>> reclaim tests.
>
> Can you point at the benchmark or briefly explain what it does? What
> exactly are we measuring that improves by 33%?
Sorry for not being clear. I've described the performance test in patch
2, and I should have copied it to the cover letter:
"
Performance testing:
Allocate 10G clean file-backed folios by mmap() in a memory cgroup, and
try to reclaim 8G file-backed folios via the memory.reclaim interface. I
can observe 33% performance improvement on my Arm64 32-core server (and
10%+ improvement on my X86 machine). Meanwhile, the hotspot
folio_check_references() dropped from approximately 35% to around 5%.
W/o patchset:
real 0m1.518s
user 0m0.000s
sys 0m1.518s
W/ patchset:
real 0m1.018s
user 0m0.000s
sys 0m1.018s
"
prev parent reply other threads:[~2025-12-02 5:38 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-25 0:56 [PATCH 0/2] support batched checks of the references for large folios Baolin Wang
2025-11-25 0:56 ` [PATCH 1/2] arm64: mm: support batch clearing of the young flag " Baolin Wang
2025-11-25 0:56 ` [PATCH 2/2] mm: rmap: support batched checks of the references " Baolin Wang
2025-11-25 9:29 ` [PATCH 0/2] " Barry Song
2025-11-25 17:38 ` Kairui Song
2025-12-01 16:23 ` David Hildenbrand (Red Hat)
2025-12-02 5:37 ` Baolin Wang [this message]
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=a2b43faf-cf33-41e5-8997-e4a0471ec3ec@linux.alibaba.com \
--to=baolin.wang@linux.alibaba.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=david@kernel.org \
--cc=harry.yoo@oracle.com \
--cc=jannh@google.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=mhocko@suse.com \
--cc=riel@surriel.com \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=surenb@google.com \
--cc=vbabka@suse.cz \
--cc=will@kernel.org \
--cc=willy@infradead.org \
/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;
as well as URLs for NNTP newsgroup(s).