From: Ankur Arora <ankur.a.arora@oracle.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Ankur Arora <ankur.a.arora@oracle.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org,
david@kernel.org, bp@alien8.de, dave.hansen@linux.intel.com,
hpa@zytor.com, mingo@redhat.com, mjguzik@gmail.com,
luto@kernel.org, peterz@infradead.org, tglx@linutronix.de,
willy@infradead.org, raghavendra.kt@amd.com, chleroy@kernel.org,
ioworker0@gmail.com, boris.ostrovsky@oracle.com,
konrad.wilk@oracle.com, kristina.martsenko@arm.com,
catalin.marinas@arm.com
Subject: Re: [PATCH v10 7/8] mm, folio_zero_user: support clearing page ranges
Date: Wed, 17 Dec 2025 16:51:54 -0800 [thread overview]
Message-ID: <875xa41uj9.fsf@oracle.com> (raw)
In-Reply-To: <20251217122602.ecf88868aa473ff1d4905a7d@linux-foundation.org>
[ Added Kristina and Catalin for the FEAT_MOPS question. ]
Andrew Morton <akpm@linux-foundation.org> writes:
> On Wed, 17 Dec 2025 11:51:43 -0800 Ankur Arora <ankur.a.arora@oracle.com> wrote:
>
>> > If so, what's the timing on that? It would be nice to do it in the
>> > current -rc cycle for testing reasons and so the changelogs can be
>> > updated to reflect the altered performance numbers.
>>
>> I can send out an updated version of this patch later today. I think the
>> only real change is updating the constant and perf stats motivating
>> the chunk size value of 32MB.
>
> Yep. A tiny change wouldn't normally require a full resend, but fairly
> widespread changelog updates would best be handled with a v11, please.
True, it will need updates to patches 7 and 8.
Will send out a v11 after rerunning tests for both of those. Might take
a day or two but should be able to send it out this week.
>> Anything else you also think needs doing for this?
>
> Nope. Just lots of review, as always ;)
>
> What's the story with architectures other that x86, btw?
The only other architecture I know of which has a similar range
primitive is arm64 (with FEAT_MOPS). That should be extendable to larger
page sizes.
Don't have any numbers on it though. It's only available after arm64 v8.7
which I should have access to next year.
(But maybe Kristina or Catalin have tried out clearing large ranges with
MOPS?)
Other than that, the only one I know of is powerpc which already uses a
primitive to zero a cacheline (DCBZ). Which seems quite similar to
CLZERO on AMD Zen systems (though CLZERO does uncached weakly ordered
writes so needs a store barrier at the end).
Just from googling powerpc's implementation seems to be pretty optimal
already so probably wouldn't gain much from larger chunk sizes and
removal of the cond_resched().
But, CLZERO performs on par (or better) than this "REP; STOS"
implementation especially for smaller extents. So maybe in the future
we could use it to improve the 2MB performance for AMD Zen.
IMO the fiddly part might be in deciding when the cost of not-caching
is higher than the speedup from not-caching.
--
ankur
next prev parent reply other threads:[~2025-12-18 0:52 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-15 20:49 [PATCH v10 0/8] mm: folio_zero_user: clear contiguous pages Ankur Arora
2025-12-15 20:49 ` [PATCH v10 1/8] treewide: provide a generic clear_user_page() variant Ankur Arora
2025-12-18 7:11 ` David Hildenbrand (Red Hat)
2025-12-18 19:31 ` Ankur Arora
2025-12-15 20:49 ` [PATCH v10 2/8] highmem: introduce clear_user_highpages() Ankur Arora
2025-12-15 20:49 ` [PATCH v10 3/8] mm: introduce clear_pages() and clear_user_pages() Ankur Arora
2025-12-15 20:49 ` [PATCH v10 4/8] highmem: do range clearing in clear_user_highpages() Ankur Arora
2025-12-18 7:15 ` David Hildenbrand (Red Hat)
2025-12-18 20:01 ` Ankur Arora
2025-12-15 20:49 ` [PATCH v10 5/8] x86/mm: Simplify clear_page_* Ankur Arora
2025-12-15 20:49 ` [PATCH v10 6/8] x86/clear_page: Introduce clear_pages() Ankur Arora
2025-12-18 7:22 ` David Hildenbrand (Red Hat)
2025-12-15 20:49 ` [PATCH v10 7/8] mm, folio_zero_user: support clearing page ranges Ankur Arora
2025-12-16 2:44 ` Andrew Morton
2025-12-16 6:49 ` Ankur Arora
2025-12-16 15:12 ` Andrew Morton
2025-12-17 8:48 ` Ankur Arora
2025-12-17 18:54 ` Andrew Morton
2025-12-17 19:51 ` Ankur Arora
2025-12-17 20:26 ` Andrew Morton
2025-12-18 0:51 ` Ankur Arora [this message]
2025-12-18 7:36 ` David Hildenbrand (Red Hat)
2025-12-18 20:16 ` Ankur Arora
2025-12-15 20:49 ` [PATCH v10 8/8] mm: folio_zero_user: cache neighbouring pages Ankur Arora
2025-12-18 7:49 ` David Hildenbrand (Red Hat)
2025-12-18 21:01 ` Ankur Arora
2025-12-18 21:23 ` Ankur Arora
2025-12-23 10:11 ` David Hildenbrand (Red Hat)
2025-12-16 2:48 ` [PATCH v10 0/8] mm: folio_zero_user: clear contiguous pages Andrew Morton
2025-12-16 5:04 ` Ankur Arora
2025-12-18 7:38 ` David Hildenbrand (Red Hat)
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=875xa41uj9.fsf@oracle.com \
--to=ankur.a.arora@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=chleroy@kernel.org \
--cc=dave.hansen@linux.intel.com \
--cc=david@kernel.org \
--cc=hpa@zytor.com \
--cc=ioworker0@gmail.com \
--cc=konrad.wilk@oracle.com \
--cc=kristina.martsenko@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=mjguzik@gmail.com \
--cc=peterz@infradead.org \
--cc=raghavendra.kt@amd.com \
--cc=tglx@linutronix.de \
--cc=willy@infradead.org \
--cc=x86@kernel.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