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, 31 Mar 2026 23:11:22 +0200 [thread overview]
Message-ID: <665a19a0-47c2-404c-bd2b-482ab51b8f64@kernel.org> (raw)
In-Reply-To: <e096e88b-f1fe-44a1-bfa6-451eef028203-agordeev@linux.ibm.com>
On 3/25/26 17:20, Alexander Gordeev wrote:
> On Wed, Mar 25, 2026 at 10:55:23AM +0100, David Hildenbrand (Arm) wrote:
>
> Hi David,
>
>>> +/**
>>> + * lazy_mmu_mode_enable_pte() - Enable the lazy MMU mode with parameters
>>
>> You have to be a lot clearer about implications. For example, what
>> happens if we would bail out and not process all ptes? What are the
>> exact semantics.
>
> The only implication is "only this address/PTE range could be updated
> and that range may span one page table at most".
Probably phrase it stronger. "No ptes outside of this range must be
updated" etc.
>
> Whether all or portion of PTEs were actually updated is not defined,
> just like in case of lazy_mmu_mode_enable_pte().
Okay, then let's document that.
>
> Makes sense?
>
Yes.
>>> + * Enters a new lazy MMU mode section; if the mode was not already enabled,
>>> + * enables it and calls arch_enter_lazy_mmu_mode_pte().
>>> + *
>>> + * 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
>>> + */
>>> +static inline void lazy_mmu_mode_enable_pte(struct mm_struct *mm,
>>> + unsigned long addr,
>>> + unsigned long end,
>>> + pte_t *ptep)
>>
>> It can be multiple ptes, so should this be some kind of "pte_range"/
>>
>> lazy_mmu_mode_enable_for_pte_range()
>>
>> A bit mouthful but clearer.
>>
>>> +{
>>> + struct lazy_mmu_state *state = ¤t->lazy_mmu_state;
>>> +
>>> + if (in_interrupt() || state->pause_count > 0)
>>> + return;
>>> +
>>> + VM_WARN_ON_ONCE(state->enable_count == U8_MAX);
>>> +
>>> + if (state->enable_count++ == 0)
>>> + arch_enter_lazy_mmu_mode_pte(mm, addr, end, ptep);
>
> I will also change arch_enter_lazy_mmu_mode_pte() to
> arch_enter_lazy_mmu_mode_for_pte_range() then.
>
>>> +}
>>
>> I'm wondering whether that could instead be some optional interface that
>> we trigger after the lazy_mmu_mode_enable. But looking at
>
> To me just two separate and (as you put it) mouthful names appeal better
> than an optional follow-up interface.
Yes, probably better.
--
Cheers,
David
next prev parent reply other threads:[~2026-03-31 21: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) [this message]
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)
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=665a19a0-47c2-404c-bd2b-482ab51b8f64@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.