From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
Kevin Brodsky <kevin.brodsky@arm.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
Andreas Larsson <andreas@gaisler.com>,
Andrew Morton <akpm@linux-foundation.org>,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
Borislav Petkov <bp@alien8.de>,
Catalin Marinas <catalin.marinas@arm.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Dave Hansen <dave.hansen@linux.intel.com>,
David Hildenbrand <david@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
David Woodhouse <dwmw2@infradead.org>,
"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
"Liam R. Howlett" <Liam.Howlett@oracle.com>,
Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Michal Hocko <mhocko@suse.com>, Mike Rapoport <rppt@kernel.org>,
Nicholas Piggin <npiggin@gmail.com>,
Peter Zijlstra <peterz@infradead.org>,
Ryan Roberts <ryan.roberts@arm.com>,
Suren Baghdasaryan <surenb@google.com>,
Thomas Gleixner <tglx@linutronix.de>,
Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
Yeoreum Yun <yeoreum.yun@arm.com>,
linux-arm-kernel@lists.infradead.org,
linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
xen-devel@lists.xenproject.org, x86@kernel.org,
Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Subject: Re: [PATCH v4 01/12] powerpc/64s: Do not re-activate batched TLB flush
Date: Wed, 05 Nov 2025 08:16:58 +0530 [thread overview]
Message-ID: <87qzud42n1.ritesh.list@gmail.com> (raw)
In-Reply-To: <20251029100909.3381140-2-kevin.brodsky@arm.com>
Kevin Brodsky <kevin.brodsky@arm.com> writes:
> From: Alexander Gordeev <agordeev@linux.ibm.com>
>
> Since commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash
> lazy mmu mode") a task can not be preempted while in lazy MMU mode.
> Therefore, the batch re-activation code is never called, so remove it.
>
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
> arch/powerpc/include/asm/thread_info.h | 2 --
> arch/powerpc/kernel/process.c | 25 -------------------------
> 2 files changed, 27 deletions(-)
>
Since the commit referenced in above disables the preemption in
arch_enter_lazy_mmu(), so the expectation is that we will never be
context switched while in lazy_mmu, hence the code changes in
switch_to() around __flush_tlb_pending() should ideally never be called.
With this analysis - the patch looks good to me. I will give this entire
patch series a try on Power HW with Hash mmu too (which uses lazy mmu and
let you know the results of that)!
For this patch please feel free to add:
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
CC: Venkat who also runs CI on linux Power HW for upstream testing :)
-ritesh
> diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
> index b0f200aba2b3..97f35f9b1a96 100644
> --- a/arch/powerpc/include/asm/thread_info.h
> +++ b/arch/powerpc/include/asm/thread_info.h
> @@ -154,12 +154,10 @@ void arch_setup_new_exec(void);
> /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
> #define TLF_NAPPING 0 /* idle thread enabled NAP mode */
> #define TLF_SLEEPING 1 /* suspend code enabled SLEEP mode */
> -#define TLF_LAZY_MMU 3 /* tlb_batch is active */
> #define TLF_RUNLATCH 4 /* Is the runlatch enabled? */
>
> #define _TLF_NAPPING (1 << TLF_NAPPING)
> #define _TLF_SLEEPING (1 << TLF_SLEEPING)
> -#define _TLF_LAZY_MMU (1 << TLF_LAZY_MMU)
> #define _TLF_RUNLATCH (1 << TLF_RUNLATCH)
>
> #ifndef __ASSEMBLER__
> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> index eb23966ac0a9..9237dcbeee4a 100644
> --- a/arch/powerpc/kernel/process.c
> +++ b/arch/powerpc/kernel/process.c
> @@ -1281,9 +1281,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
> {
> struct thread_struct *new_thread, *old_thread;
> struct task_struct *last;
> -#ifdef CONFIG_PPC_64S_HASH_MMU
> - struct ppc64_tlb_batch *batch;
> -#endif
>
> new_thread = &new->thread;
> old_thread = ¤t->thread;
> @@ -1291,14 +1288,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
> WARN_ON(!irqs_disabled());
>
> #ifdef CONFIG_PPC_64S_HASH_MMU
> - batch = this_cpu_ptr(&ppc64_tlb_batch);
> - if (batch->active) {
> - current_thread_info()->local_flags |= _TLF_LAZY_MMU;
> - if (batch->index)
> - __flush_tlb_pending(batch);
> - batch->active = 0;
> - }
> -
> /*
> * On POWER9 the copy-paste buffer can only paste into
> * foreign real addresses, so unprivileged processes can not
> @@ -1369,20 +1358,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
> */
>
> #ifdef CONFIG_PPC_BOOK3S_64
> -#ifdef CONFIG_PPC_64S_HASH_MMU
> - /*
> - * This applies to a process that was context switched while inside
> - * arch_enter_lazy_mmu_mode(), to re-activate the batch that was
> - * deactivated above, before _switch(). This will never be the case
> - * for new tasks.
> - */
> - if (current_thread_info()->local_flags & _TLF_LAZY_MMU) {
> - current_thread_info()->local_flags &= ~_TLF_LAZY_MMU;
> - batch = this_cpu_ptr(&ppc64_tlb_batch);
> - batch->active = 1;
> - }
> -#endif
> -
> /*
> * Math facilities are masked out of the child MSR in copy_thread.
> * A new task does not need to restore_math because it will
> --
> 2.47.0
next prev parent reply other threads:[~2025-11-05 2:55 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-29 10:08 [PATCH v4 00/12] Nesting support for lazy MMU mode Kevin Brodsky
2025-10-29 10:08 ` [PATCH v4 01/12] powerpc/64s: Do not re-activate batched TLB flush Kevin Brodsky
2025-11-01 12:05 ` David Hildenbrand
2025-11-05 2:46 ` Ritesh Harjani [this message]
2025-11-06 10:29 ` Kevin Brodsky
2025-11-08 0:35 ` Ritesh Harjani
2025-11-10 13:18 ` Kevin Brodsky
2025-11-07 12:25 ` Ryan Roberts
2025-11-07 12:28 ` Ryan Roberts
2025-10-29 10:08 ` [PATCH v4 02/12] x86/xen: simplify flush_lazy_mmu() Kevin Brodsky
2025-11-01 12:14 ` David Hildenbrand
2025-11-03 18:06 ` Kevin Brodsky
2025-11-07 12:31 ` Ryan Roberts
2025-11-10 10:36 ` Kevin Brodsky
2025-11-11 10:08 ` Ryan Roberts
2025-11-07 15:45 ` Jürgen Groß
2025-10-29 10:09 ` [PATCH v4 03/12] powerpc/mm: implement arch_flush_lazy_mmu_mode() Kevin Brodsky
2025-11-01 12:14 ` David Hildenbrand
2025-11-05 3:15 ` Ritesh Harjani
2025-11-05 9:49 ` Ritesh Harjani
2025-11-06 10:31 ` Kevin Brodsky
2025-10-29 10:09 ` [PATCH v4 04/12] sparc/mm: " Kevin Brodsky
2025-11-01 12:14 ` David Hildenbrand
2025-10-29 10:09 ` [PATCH v4 05/12] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE Kevin Brodsky
2025-11-01 12:16 ` David Hildenbrand
2025-11-05 4:40 ` Ritesh Harjani
2025-11-06 10:33 ` Kevin Brodsky
2025-11-07 13:56 ` Ryan Roberts
2025-11-10 10:37 ` Kevin Brodsky
2025-10-29 10:09 ` [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers Kevin Brodsky
2025-11-01 12:18 ` David Hildenbrand
2025-11-07 14:26 ` Ryan Roberts
2025-11-07 14:34 ` David Hildenbrand (Red Hat)
2025-11-07 15:22 ` Ryan Roberts
2025-11-10 8:11 ` Alexander Gordeev
2025-11-10 9:19 ` Ryan Roberts
2025-11-11 8:01 ` Alexander Gordeev
2025-11-11 12:16 ` Ryan Roberts
2025-11-10 10:45 ` Kevin Brodsky
2025-11-24 12:47 ` Kevin Brodsky
2025-11-24 14:36 ` Ryan Roberts
2025-10-29 10:09 ` [PATCH v4 07/12] mm: enable lazy_mmu sections to nest Kevin Brodsky
2025-10-29 16:41 ` Alexander Gordeev
2025-10-30 10:28 ` Kevin Brodsky
2025-10-30 16:34 ` Alexander Gordeev
2025-11-01 12:22 ` David Hildenbrand
2025-11-03 18:08 ` Kevin Brodsky
2025-11-05 8:49 ` Ritesh Harjani
2025-11-05 16:12 ` Alexander Gordeev
2025-11-06 10:51 ` Kevin Brodsky
2025-11-06 15:33 ` Alexander Gordeev
2025-11-07 10:16 ` Kevin Brodsky
2025-11-07 10:30 ` David Hildenbrand (Red Hat)
2025-11-06 16:32 ` Ritesh Harjani
2025-11-06 17:01 ` Ritesh Harjani
2025-11-07 11:13 ` Kevin Brodsky
2025-11-07 14:59 ` Ryan Roberts
2025-11-10 10:47 ` Kevin Brodsky
2025-11-11 10:24 ` Ryan Roberts
2025-11-11 15:56 ` Kevin Brodsky
2025-11-11 17:03 ` Ryan Roberts
2025-11-12 10:42 ` Kevin Brodsky
2025-11-12 13:57 ` David Hildenbrand (Red Hat)
2025-10-29 10:09 ` [PATCH v4 08/12] arm64: mm: replace TIF_LAZY_MMU with in_lazy_mmu_mode() Kevin Brodsky
2025-11-03 16:03 ` David Hildenbrand
2025-11-03 18:25 ` Kevin Brodsky
2025-11-07 15:28 ` Ryan Roberts
2025-10-29 10:09 ` [PATCH v4 09/12] powerpc/mm: replace batch->active " Kevin Brodsky
2025-11-03 16:05 ` David Hildenbrand
2025-11-04 11:33 ` Kevin Brodsky
2025-11-05 9:40 ` Ritesh Harjani
2025-10-29 10:09 ` [PATCH v4 10/12] sparc/mm: " Kevin Brodsky
2025-11-03 16:11 ` David Hildenbrand (Red Hat)
2025-10-29 10:09 ` [PATCH v4 11/12] x86/xen: use lazy_mmu_state when context-switching Kevin Brodsky
2025-11-03 16:15 ` David Hildenbrand (Red Hat)
2025-11-03 18:29 ` Kevin Brodsky
2025-11-03 19:23 ` David Hildenbrand (Red Hat)
2025-11-04 11:28 ` Kevin Brodsky
2025-10-29 10:09 ` [PATCH v4 12/12] mm: bail out of lazy_mmu_mode_* in interrupt context Kevin Brodsky
2025-11-07 15:42 ` Ryan Roberts
2025-11-10 10:48 ` Kevin Brodsky
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=87qzud42n1.ritesh.list@gmail.com \
--to=ritesh.list@gmail.com \
--cc=Liam.Howlett@oracle.com \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=andreas@gaisler.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=david@redhat.com \
--cc=dwmw2@infradead.org \
--cc=hpa@zytor.com \
--cc=jannh@google.com \
--cc=jgross@suse.com \
--cc=kevin.brodsky@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=maddy@linux.ibm.com \
--cc=mhocko@suse.com \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=peterz@infradead.org \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=sparclinux@vger.kernel.org \
--cc=surenb@google.com \
--cc=tglx@linutronix.de \
--cc=vbabka@suse.cz \
--cc=venkat88@linux.ibm.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.org \
--cc=yeoreum.yun@arm.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.