From: "David Hildenbrand (Arm)" <david@kernel.org>
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Gerald Schaefer <gerald.schaefer@linux.ibm.com>,
Heiko Carstens <hca@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
linux-s390@vger.kernel.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH 1/2] mm: make lazy MMU mode context-aware
Date: Tue, 14 Apr 2026 10:11:23 +0200 [thread overview]
Message-ID: <aa8a125d-6746-4e16-b301-ff295ca20f0f@kernel.org> (raw)
In-Reply-To: <584f0f88-aef9-4a70-b0bb-abc797f741ed-agordeev@linux.ibm.com>
On 4/14/26 09:53, Alexander Gordeev wrote:
> On Mon, Apr 13, 2026 at 08:32:11PM +0200, David Hildenbrand (Arm) wrote:
>>> 1. copy_pte_range() operates on two ranges: source and destination.
>>> Though lazy_mmu_mode_enable_for_pte_range() applies to the source one,
>>> updates to the destination are still happen while in tha lazy mode.
>>> (Although the lazy mode is not actually needed for the destination
>>> unattached MM).
>>
>> So, here a
>>
>> "No ptes outside of this range in the provided @mm must be updated."
>>
>> could be used.
>>
>>>
>>> 2. move_ptes() also operates on a source and destination ranges, but
>>> unlike copy_pte_range() the destination range is also attached to the
>>> currently active task.
>>
>> But not here.
>
> I did not quite understand these two comments ;), but I think
> I address them further below.
I'm saying that the second case is the problematic one ;)
>
>>> 3. Though theoretical, nesting sections with interleaving calls to
>>> lazy_mmu_mode_enable() and lazy_mmu_mode_enable_for_pte_range() make
>>> it difficult to define (let alone to implement) which range is currently
>>> active, if any.
>>
>> Right. I assume you would specify the source here as well, or which one
>> would it be in your case to speed it up?
>
> It is in all cases the source/old/existing one.
Make sense.
>
>>> All of these goes away if we switch from for_pte_range() to fast_pte_range()
>>> semantics:
>>
>> I don't quite like the "fast" in there. I think you can keep the old
>> name, but clarifying that it is merely a hint, and only ptes that fall
>> into the hint might observe a speedup.
>
> Okay, that simplify things.
>
>> Could performance benefit from multiple ranges? (like in mremap, for
>> example)?
>
> No.
>
>> In that case, an explicit hint interface could be reconsidered.
>
> So all things considered, how does it look?
>
> /**
> * lazy_mmu_mode_enable_for_pte_range() - Enable the lazy MMU mode with a speedup hint.
> * @mm: Address space the ptes represent.
> * @addr: Address of the first pte.
> * @end: End address of the range.
> * @ptep: Page table pointer for the first entry.
> *
> * Enters a new lazy MMU mode section; if the mode was not already enabled,
> * enables it and calls arch_enter_lazy_mmu_mode_for_pte_range().
> *
> * PTEs that fall within the specified range might observe update speedups.
> * The PTE range must belong to the specified memory space and do not cross
> * a page table boundary.
> *
> * There are no requirements on the order or range completeness of PTE
> * updates for the specified range.
> *
> * Must be paired with a call to lazy_mmu_mode_disable().
> *
> * Has no effect if called:
> * - While paused - see lazy_mmu_mode_pause()
> * - In interrupt context
> */
LGTM!
--
Cheers,
David
next prev parent reply other threads:[~2026-04-14 8:11 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-25 7:41 [RFC PATCH 0/2] s390/mm: Batch PTE updates in lazy MMU mode Alexander Gordeev
2026-03-25 7:41 ` [RFC PATCH 1/2] mm: make lazy MMU mode context-aware Alexander Gordeev
2026-03-25 9:55 ` David Hildenbrand (Arm)
2026-03-25 16:20 ` Alexander Gordeev
2026-03-25 16:37 ` Alexander Gordeev
2026-03-31 14:15 ` Kevin Brodsky
2026-04-11 9:31 ` Alexander Gordeev
2026-04-13 10:01 ` Kevin Brodsky
2026-03-31 21:11 ` David Hildenbrand (Arm)
2026-04-13 13:43 ` Alexander Gordeev
2026-04-13 18:32 ` David Hildenbrand (Arm)
2026-04-14 7:53 ` Alexander Gordeev
2026-04-14 8:11 ` David Hildenbrand (Arm) [this message]
2026-04-14 14:30 ` Kevin Brodsky
2026-04-14 16:08 ` Alexander Gordeev
2026-04-14 17:38 ` Kevin Brodsky
2026-03-25 7:41 ` [RFC PATCH 2/2] s390/mm: Batch PTE updates in lazy MMU mode Alexander Gordeev
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=aa8a125d-6746-4e16-b301-ff295ca20f0f@kernel.org \
--to=david@kernel.org \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=borntraeger@linux.ibm.com \
--cc=gerald.schaefer@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=kevin.brodsky@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.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 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.