All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Zi Yan <ziy@nvidia.com>,
	 Baolin Wang <baolin.wang@linux.alibaba.com>,
	"Liam R. Howlett" <liam@infradead.org>,
	 Nico Pache <nico.pache@linux.dev>,
	Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
	 Barry Song <baohua@kernel.org>,
	Lance Yang <lance.yang@linux.dev>,
	 Usama Arif <usama.arif@linux.dev>,
	Kiryl Shutsemau <kas@kernel.org>, Guo Ren <guoren@kernel.org>,
	 Brian Cain <bcain@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	 Dinh Nguyen <dinguyen@kernel.org>,
	Simon Schuster <schuster.simon@siemens-energy.com>,
	 Jonas Bonn <jonas@southpole.se>,
	Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
	 Stafford Horne <shorne@gmail.com>, Rich Felker <dalias@libc.org>,
	 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	Paul Walmsley <pjw@kernel.org>,
	 Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	 Alexandre Ghiti <alex@ghiti.fr>,
	Russell King <linux@armlinux.org.uk>,
	 Vineet Gupta <vgupta@kernel.org>,
	Michal Simek <monstr@monstr.eu>, Chris Zankel <chris@zankel.net>,
	 Max Filippov <jcmvbkbc@gmail.com>, Will Deacon <will@kernel.org>,
	 "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>,
	Nick Piggin <npiggin@gmail.com>,
	 Peter Zijlstra <peterz@infradead.org>,
	"David S. Miller" <davem@davemloft.net>,
	 Andreas Larsson <andreas@gaisler.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	 Matt Turner <mattst88@gmail.com>,
	Magnus Lindholm <linmag7@gmail.com>,
	 Catalin Marinas <catalin.marinas@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	 Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>,
	 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	 Helge Deller <deller@gmx.de>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	 Michael Ellerman <mpe@ellerman.id.au>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
	 Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	 Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	 Sven Schnelle <svens@linux.ibm.com>,
	Richard Weinberger <richard@nod.at>,
	 Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	Johannes Berg <johannes@sipsolutions.net>,
	 Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	 Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	 Arnd Bergmann <arnd@arndb.de>,
	Vlastimil Babka <vbabka@kernel.org>,
	 Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	 Michal Hocko <mhocko@suse.com>, Jason Gunthorpe <jgg@ziepe.ca>,
	 John Hubbard <jhubbard@nvidia.com>, Peter Xu <peterx@redhat.com>,
	 Yoshinori Sato <ysato@users.sourceforge.jp>,
	Shakeel Butt <shakeel.butt@linux.dev>,
	 Jonathan Corbet <corbet@lwn.net>,
	Randy Dunlap <rdunlap@infradead.org>,
	linux-mm@kvack.org,  linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	 linux-m68k@lists.linux-m68k.org, linux-openrisc@vger.kernel.org,
	linux-sh@vger.kernel.org,  linux-riscv@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-snps-arc@lists.infradead.org, linux-arch@vger.kernel.org,
	sparclinux@vger.kernel.org,  linux-alpha@vger.kernel.org,
	loongarch@lists.linux.dev, linux-mips@vger.kernel.org,
	 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-s390@vger.kernel.org,  linux-um@lists.infradead.org,
	Hugh Dickins <hughd@google.com>, Qi Zheng <qi.zheng@linux.dev>,
	 linux-doc@vger.kernel.org
Subject: Re: [PATCH v4 11/12] mm: make userland page table freeing RCU-safe
Date: Wed, 23 Sep 2026 10:06:43 +0100	[thread overview]
Message-ID: <arOWZCeV8FrkAvhK@gremlin> (raw)
In-Reply-To: <72d1548a-a4ee-4832-b2ab-4bc82f1933f8@kernel.org>

On Wed, Sep 23, 2026 at 11:04:17AM +0200, David Hildenbrand (Arm) wrote:
> On 9/22/26 17:35, Lorenzo Stoakes (ARM) wrote:
>
> The patch subject confused me at first: that's not what the patch is doing, no?
> Previous patches did that, and now you're just removing the leftovers?
>
> Maybe I'm missing something that this patch does along the lines of teaching the
> code to be RCU-safe.

It is the final piece that makes that the case, so I think it's OK to allow
oneself a nice subject line? No? :)

If people are confused they can read the commit message which goes into some
detail.

>
> > Now every architecture has been converted to support
> > CONFIG_MMU_GATHER_RCU_TABLE_FREE, this configuration option no longer makes
> > any sense to keep around.
> >
> > Therefore remove it, and remove all the dead code that existed for
> > !CONFIG_MMU_GATHER_RCU_TABLE_FREE architectures previously.
> >
> > Additionally, CONFIG_MMU_GATHER_TABLE_FREE is no longer necessary, as all
> > architectures instead use CONFIG_HAVE_ARCH_TLB_REMOVE_TABLE when a custom
> > __tlb_remove_table() is required, so remove this too.
> >
> > A number of architectures only enabled CONFIG_MMU_GATHER_RCU_TABLE_FREE if
> > CONFIG_MMU was set, however the mmu_gather logic only actually does
> > something meaningful if CONFIG_MMU is set (mmu_gather.c is only compiled in
> > this case, for instance).
> >
> > As a result, there's no need to gate any of this logic on CONFIG_MMU
> > explicitly.
> >
> > CONFIG_PT_RECLAIM however does have a strict dependency on CONFIG_MMU, so
> > make this dependency explicit.
> >
> > Additionally, correct comments to remove references to non-RCU page table
> > gathering and make it clear that this is not 'semi-RCU', nor has it been
> > since commit 1fb3d8c20bfa ("mm/mmu_gather: replace IPI with
> > synchronize_rcu() when batch allocation fails").
> >
> > With this change in place the kernel policy is now that userspace page
> > tables are freed after an RCU grace period, and thus it is now safe to
> > unconditionally perform page table walks under RCU, safe in the knowledge
> > that page tables will not be freed underneath the walker.
> >
> > This is all that is guaranteed, however, so naturally it is still incumbent
> > upon page table walkers to ensure that the page table entries are as
> > expected.
> >
> > Acked-by: Kiryl Shutsemau (Meta) <kas@kernel.org>
> > Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
>
>
> [...]
>
> > --- a/mm/Kconfig
> > +++ b/mm/Kconfig
> > @@ -1465,7 +1465,7 @@ config HAVE_ARCH_TLB_REMOVE_TABLE
> >
> >  config PT_RECLAIM
> >  	def_bool y
> > -	depends on MMU_GATHER_RCU_TABLE_FREE && !HAVE_ARCH_TLB_REMOVE_TABLE
> > +	depends on MMU && !HAVE_ARCH_TLB_REMOVE_TABLE
> >  	help
> >  	  Try to reclaim empty user page table pages in paths other than munmap
> >  	  and exit_mmap path.
>
> $ git grep PT_RECLAIM
> mm/Kconfig:config PT_RECLAIM
> mm/memory.c:    if (!IS_ENABLED(CONFIG_PT_RECLAIM))
> mm/mmu_gather.c:#ifdef CONFIG_PT_RECLAIM
> mm/mmu_gather.c:#endif /* CONFIG_PT_RECLAIM */
>
> whereby all files are MMU-only.
>
> Makes sense.
>
>
> Very nice
>
> Acked-by: David Hildenbrand (Arm) <david@kernel.org>

Thanks.

>
> --
> Cheers,
>
> David

--
Cheers, Lorenzo

WARNING: multiple messages have this Message-ID (diff)
From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Zi Yan <ziy@nvidia.com>,
	 Baolin Wang <baolin.wang@linux.alibaba.com>,
	"Liam R. Howlett" <liam@infradead.org>,
	 Nico Pache <nico.pache@linux.dev>,
	Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
	 Barry Song <baohua@kernel.org>,
	Lance Yang <lance.yang@linux.dev>,
	 Usama Arif <usama.arif@linux.dev>,
	Kiryl Shutsemau <kas@kernel.org>, Guo Ren <guoren@kernel.org>,
	 Brian Cain <bcain@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	 Dinh Nguyen <dinguyen@kernel.org>,
	Simon Schuster <schuster.simon@siemens-energy.com>,
	 Jonas Bonn <jonas@southpole.se>,
	Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
	 Stafford Horne <shorne@gmail.com>, Rich Felker <dalias@libc.org>,
	 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	Paul Walmsley <pjw@kernel.org>,
	 Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	 Alexandre Ghiti <alex@ghiti.fr>,
	Russell King <linux@armlinux.org.uk>,
	 Vineet Gupta <vgupta@kernel.org>,
	Michal Simek <monstr@monstr.eu>, Chris Zankel <chris@zankel.net>,
	 Max Filippov <jcmvbkbc@gmail.com>, Will Deacon <will@kernel.org>,
	 "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>,
	Nick Piggin <npiggin@gmail.com>,
	 Peter Zijlstra <peterz@infradead.org>,
	"David S. Miller" <davem@davemloft.net>,
	 Andreas Larsson <andreas@gaisler.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	 Matt Turner <mattst88@gmail.com>,
	Magnus Lindholm <linmag7@gmail.com>,
	 Catalin Marinas <catalin.marinas@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	 Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>,
	 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	 Helge Deller <deller@gmx.de>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	 Michael Ellerman <mpe@ellerman.id.au>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
	 Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	 Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	 Sven Schnelle <svens@linux.ibm.com>,
	Richard Weinberger <richard@nod.at>,
	 Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	Johannes Berg <johannes@sipsolutions.net>,
	 Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	 Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	 Arnd Bergmann <arnd@arndb.de>,
	Vlastimil Babka <vbabka@kernel.org>,
	 Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	 Michal Hocko <mhocko@suse.com>, Jason Gunthorpe <jgg@ziepe.ca>,
	 John Hubbard <jhubbard@nvidia.com>, Peter Xu <peterx@redhat.com>,
	 Yoshinori Sato <ysato@users.sourceforge.jp>,
	Shakeel Butt <shakeel.butt@linux.dev>,
	 Jonathan Corbet <corbet@lwn.net>,
	Randy Dunlap <rdunlap@infradead.org>,
	linux-mm@kvack.org,  linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	 linux-m68k@lists.linux-m68k.org, linux-openrisc@vger.kernel.org,
	linux-sh@vger.kernel.org,  linux-riscv@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-snps-arc@lists.infradead.org, linux-arch@vger.kernel.org,
	sparclinux@vger.kernel.org,  linux-alpha@vger.kernel.org,
	loongarch@lists.linux.dev, linux-mips@vger.kernel.org,
	 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-s390@vger.kernel.org,  linux-um@lists.infradead.org,
	Hugh Dickins <hughd@google.com>, Qi Zheng <qi.zheng@linux.dev>,
	 linux-doc@vger.kernel.org
Subject: Re: [PATCH v4 11/12] mm: make userland page table freeing RCU-safe
Date: Wed, 23 Sep 2026 10:06:43 +0100	[thread overview]
Message-ID: <arOWZCeV8FrkAvhK@gremlin> (raw)
In-Reply-To: <72d1548a-a4ee-4832-b2ab-4bc82f1933f8@kernel.org>

On Wed, Sep 23, 2026 at 11:04:17AM +0200, David Hildenbrand (Arm) wrote:
> On 9/22/26 17:35, Lorenzo Stoakes (ARM) wrote:
>
> The patch subject confused me at first: that's not what the patch is doing, no?
> Previous patches did that, and now you're just removing the leftovers?
>
> Maybe I'm missing something that this patch does along the lines of teaching the
> code to be RCU-safe.

It is the final piece that makes that the case, so I think it's OK to allow
oneself a nice subject line? No? :)

If people are confused they can read the commit message which goes into some
detail.

>
> > Now every architecture has been converted to support
> > CONFIG_MMU_GATHER_RCU_TABLE_FREE, this configuration option no longer makes
> > any sense to keep around.
> >
> > Therefore remove it, and remove all the dead code that existed for
> > !CONFIG_MMU_GATHER_RCU_TABLE_FREE architectures previously.
> >
> > Additionally, CONFIG_MMU_GATHER_TABLE_FREE is no longer necessary, as all
> > architectures instead use CONFIG_HAVE_ARCH_TLB_REMOVE_TABLE when a custom
> > __tlb_remove_table() is required, so remove this too.
> >
> > A number of architectures only enabled CONFIG_MMU_GATHER_RCU_TABLE_FREE if
> > CONFIG_MMU was set, however the mmu_gather logic only actually does
> > something meaningful if CONFIG_MMU is set (mmu_gather.c is only compiled in
> > this case, for instance).
> >
> > As a result, there's no need to gate any of this logic on CONFIG_MMU
> > explicitly.
> >
> > CONFIG_PT_RECLAIM however does have a strict dependency on CONFIG_MMU, so
> > make this dependency explicit.
> >
> > Additionally, correct comments to remove references to non-RCU page table
> > gathering and make it clear that this is not 'semi-RCU', nor has it been
> > since commit 1fb3d8c20bfa ("mm/mmu_gather: replace IPI with
> > synchronize_rcu() when batch allocation fails").
> >
> > With this change in place the kernel policy is now that userspace page
> > tables are freed after an RCU grace period, and thus it is now safe to
> > unconditionally perform page table walks under RCU, safe in the knowledge
> > that page tables will not be freed underneath the walker.
> >
> > This is all that is guaranteed, however, so naturally it is still incumbent
> > upon page table walkers to ensure that the page table entries are as
> > expected.
> >
> > Acked-by: Kiryl Shutsemau (Meta) <kas@kernel.org>
> > Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
>
>
> [...]
>
> > --- a/mm/Kconfig
> > +++ b/mm/Kconfig
> > @@ -1465,7 +1465,7 @@ config HAVE_ARCH_TLB_REMOVE_TABLE
> >
> >  config PT_RECLAIM
> >  	def_bool y
> > -	depends on MMU_GATHER_RCU_TABLE_FREE && !HAVE_ARCH_TLB_REMOVE_TABLE
> > +	depends on MMU && !HAVE_ARCH_TLB_REMOVE_TABLE
> >  	help
> >  	  Try to reclaim empty user page table pages in paths other than munmap
> >  	  and exit_mmap path.
>
> $ git grep PT_RECLAIM
> mm/Kconfig:config PT_RECLAIM
> mm/memory.c:    if (!IS_ENABLED(CONFIG_PT_RECLAIM))
> mm/mmu_gather.c:#ifdef CONFIG_PT_RECLAIM
> mm/mmu_gather.c:#endif /* CONFIG_PT_RECLAIM */
>
> whereby all files are MMU-only.
>
> Makes sense.
>
>
> Very nice
>
> Acked-by: David Hildenbrand (Arm) <david@kernel.org>

Thanks.

>
> --
> Cheers,
>
> David

--
Cheers, Lorenzo

_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

WARNING: multiple messages have this Message-ID (diff)
From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Zi Yan <ziy@nvidia.com>,
	 Baolin Wang <baolin.wang@linux.alibaba.com>,
	"Liam R. Howlett" <liam@infradead.org>,
	 Nico Pache <nico.pache@linux.dev>,
	Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
	 Barry Song <baohua@kernel.org>,
	Lance Yang <lance.yang@linux.dev>,
	 Usama Arif <usama.arif@linux.dev>,
	Kiryl Shutsemau <kas@kernel.org>, Guo Ren <guoren@kernel.org>,
	 Brian Cain <bcain@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	 Dinh Nguyen <dinguyen@kernel.org>,
	Simon Schuster <schuster.simon@siemens-energy.com>,
	 Jonas Bonn <jonas@southpole.se>,
	Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
	 Stafford Horne <shorne@gmail.com>, Rich Felker <dalias@libc.org>,
	 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	Paul Walmsley <pjw@kernel.org>,
	 Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	 Alexandre Ghiti <alex@ghiti.fr>,
	Russell King <linux@armlinux.org.uk>,
	 Vineet Gupta <vgupta@kernel.org>,
	Michal Simek <monstr@monstr.eu>, Chris Zankel <chris@zankel.net>,
	 Max Filippov <jcmvbkbc@gmail.com>, Will Deacon <will@kernel.org>,
	 "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>,
	Nick Piggin <npiggin@gmail.com>,
	 Peter Zijlstra <peterz@infradead.org>,
	"David S. Miller" <davem@davemloft.net>,
	 Andreas Larsson <andreas@gaisler.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	 Matt Turner <mattst88@gmail.com>,
	Magnus Lindholm <linmag7@gmail.com>,
	 Catalin Marinas <catalin.marinas@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	 Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>,
	 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	 Helge Deller <deller@gmx.de>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	 Michael Ellerman <mpe@ellerman.id.au>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
	 Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	 Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	 Sven Schnelle <svens@linux.ibm.com>,
	Richard Weinberger <richard@nod.at>,
	 Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	Johannes Berg <johannes@sipsolutions.net>,
	 Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	 Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	 Arnd Bergmann <arnd@arndb.de>,
	Vlastimil Babka <vbabka@kernel.org>,
	 Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	 Michal Hocko <mhocko@suse.com>, Jason Gunthorpe <jgg@ziepe.ca>,
	 John Hubbard <jhubbard@nvidia.com>, Peter Xu <peterx@redhat.com>,
	 Yoshinori Sato <ysato@users.sourceforge.jp>,
	Shakeel Butt <shakeel.butt@linux.dev>,
	 Jonathan Corbet <corbet@lwn.net>,
	Randy Dunlap <rdunlap@infradead.org>,
	linux-mm@kvack.org,  linux-kernel@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	 linux-m68k@lists.linux-m68k.org, linux-openrisc@vger.kernel.org,
	linux-sh@vger.kernel.org,  linux-riscv@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-snps-arc@lists.infradead.org, linux-arch@vger.kernel.org,
	sparclinux@vger.kernel.org,  linux-alpha@vger.kernel.org,
	loongarch@lists.linux.dev, linux-mips@vger.kernel.org,
	 linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-s390@vger.kernel.org,  linux-um@lists.infradead.org,
	Hugh Dickins <hughd@google.com>, Qi Zheng <qi.zheng@linux.dev>,
	 linux-doc@vger.kernel.org
Subject: Re: [PATCH v4 11/12] mm: make userland page table freeing RCU-safe
Date: Wed, 23 Sep 2026 10:06:43 +0100	[thread overview]
Message-ID: <arOWZCeV8FrkAvhK@gremlin> (raw)
In-Reply-To: <72d1548a-a4ee-4832-b2ab-4bc82f1933f8@kernel.org>

On Wed, Sep 23, 2026 at 11:04:17AM +0200, David Hildenbrand (Arm) wrote:
> On 9/22/26 17:35, Lorenzo Stoakes (ARM) wrote:
>
> The patch subject confused me at first: that's not what the patch is doing, no?
> Previous patches did that, and now you're just removing the leftovers?
>
> Maybe I'm missing something that this patch does along the lines of teaching the
> code to be RCU-safe.

It is the final piece that makes that the case, so I think it's OK to allow
oneself a nice subject line? No? :)

If people are confused they can read the commit message which goes into some
detail.

>
> > Now every architecture has been converted to support
> > CONFIG_MMU_GATHER_RCU_TABLE_FREE, this configuration option no longer makes
> > any sense to keep around.
> >
> > Therefore remove it, and remove all the dead code that existed for
> > !CONFIG_MMU_GATHER_RCU_TABLE_FREE architectures previously.
> >
> > Additionally, CONFIG_MMU_GATHER_TABLE_FREE is no longer necessary, as all
> > architectures instead use CONFIG_HAVE_ARCH_TLB_REMOVE_TABLE when a custom
> > __tlb_remove_table() is required, so remove this too.
> >
> > A number of architectures only enabled CONFIG_MMU_GATHER_RCU_TABLE_FREE if
> > CONFIG_MMU was set, however the mmu_gather logic only actually does
> > something meaningful if CONFIG_MMU is set (mmu_gather.c is only compiled in
> > this case, for instance).
> >
> > As a result, there's no need to gate any of this logic on CONFIG_MMU
> > explicitly.
> >
> > CONFIG_PT_RECLAIM however does have a strict dependency on CONFIG_MMU, so
> > make this dependency explicit.
> >
> > Additionally, correct comments to remove references to non-RCU page table
> > gathering and make it clear that this is not 'semi-RCU', nor has it been
> > since commit 1fb3d8c20bfa ("mm/mmu_gather: replace IPI with
> > synchronize_rcu() when batch allocation fails").
> >
> > With this change in place the kernel policy is now that userspace page
> > tables are freed after an RCU grace period, and thus it is now safe to
> > unconditionally perform page table walks under RCU, safe in the knowledge
> > that page tables will not be freed underneath the walker.
> >
> > This is all that is guaranteed, however, so naturally it is still incumbent
> > upon page table walkers to ensure that the page table entries are as
> > expected.
> >
> > Acked-by: Kiryl Shutsemau (Meta) <kas@kernel.org>
> > Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
>
>
> [...]
>
> > --- a/mm/Kconfig
> > +++ b/mm/Kconfig
> > @@ -1465,7 +1465,7 @@ config HAVE_ARCH_TLB_REMOVE_TABLE
> >
> >  config PT_RECLAIM
> >  	def_bool y
> > -	depends on MMU_GATHER_RCU_TABLE_FREE && !HAVE_ARCH_TLB_REMOVE_TABLE
> > +	depends on MMU && !HAVE_ARCH_TLB_REMOVE_TABLE
> >  	help
> >  	  Try to reclaim empty user page table pages in paths other than munmap
> >  	  and exit_mmap path.
>
> $ git grep PT_RECLAIM
> mm/Kconfig:config PT_RECLAIM
> mm/memory.c:    if (!IS_ENABLED(CONFIG_PT_RECLAIM))
> mm/mmu_gather.c:#ifdef CONFIG_PT_RECLAIM
> mm/mmu_gather.c:#endif /* CONFIG_PT_RECLAIM */
>
> whereby all files are MMU-only.
>
> Makes sense.
>
>
> Very nice
>
> Acked-by: David Hildenbrand (Arm) <david@kernel.org>

Thanks.

>
> --
> Cheers,
>
> David

--
Cheers, Lorenzo

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2026-09-23  9:07 UTC|newest]

Thread overview: 188+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-22 15:35 [PATCH v4 00/12] mm: make userland page table freeing RCU-safe Lorenzo Stoakes (ARM)
2026-09-22 15:35 ` Lorenzo Stoakes (ARM)
2026-09-22 15:35 ` Lorenzo Stoakes (ARM)
2026-09-22 15:35 ` [PATCH v4 01/12] mm/khugepaged: deposit a newly allocated page table on collapse Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:54   ` sashiko-bot
2026-09-23  2:24   ` Lance Yang
2026-09-23  2:24     ` Lance Yang
2026-09-23  2:24     ` Lance Yang
2026-09-23  7:09     ` Lorenzo Stoakes (ARM)
2026-09-23  7:09       ` Lorenzo Stoakes (ARM)
2026-09-23  7:09       ` Lorenzo Stoakes (ARM)
2026-09-23  7:14   ` Lorenzo Stoakes (ARM)
2026-09-23  7:14     ` Lorenzo Stoakes (ARM)
2026-09-23  7:14     ` Lorenzo Stoakes (ARM)
2026-09-23  7:24     ` Lance Yang
2026-09-23  7:24       ` Lance Yang
2026-09-23  7:24       ` Lance Yang
2026-09-23 19:53     ` Andrew Morton
2026-09-23 19:53       ` Andrew Morton
2026-09-23 19:53       ` Andrew Morton
2026-09-24  3:28     ` Baolin Wang
2026-09-24  3:28       ` Baolin Wang
2026-09-24  3:28       ` Baolin Wang
2026-09-23  8:54   ` David Hildenbrand (Arm)
2026-09-23  8:54     ` David Hildenbrand (Arm)
2026-09-23  8:54     ` David Hildenbrand (Arm)
2026-09-23  9:00     ` Lorenzo Stoakes (ARM)
2026-09-23  9:00       ` Lorenzo Stoakes (ARM)
2026-09-23  9:00       ` Lorenzo Stoakes (ARM)
2026-09-22 15:35 ` [PATCH v4 02/12] mm: enable MMU_GATHER_RCU_TABLE_FREE for most 2-level architectures Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:56   ` sashiko-bot
2026-09-23  4:39   ` Lance Yang
2026-09-23  4:39     ` Lance Yang
2026-09-22 15:35 ` [PATCH v4 03/12] mm: enable MMU_GATHER_RCU_TABLE_FREE for MMU riscv Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:45   ` sashiko-bot
2026-09-23  6:15   ` Lance Yang
2026-09-23  6:15     ` Lance Yang
2026-09-23  6:15     ` Lance Yang
2026-09-23  7:05     ` Lorenzo Stoakes (ARM)
2026-09-23  7:05       ` Lorenzo Stoakes (ARM)
2026-09-23  7:05       ` Lorenzo Stoakes (ARM)
2026-09-23  7:17       ` Lance Yang
2026-09-23  7:17         ` Lance Yang
2026-09-23  7:17         ` Lance Yang
2026-09-22 15:35 ` [PATCH v4 04/12] mm: enable MMU_GATHER_RCU_TABLE_FREE for MMU arm Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:50   ` sashiko-bot
2026-09-23  8:05   ` Lance Yang
2026-09-23  8:05     ` Lance Yang
2026-09-23  8:05     ` Lance Yang
2026-09-23  8:15     ` Lorenzo Stoakes (ARM)
2026-09-23  8:15       ` Lorenzo Stoakes (ARM)
2026-09-23  8:15       ` Lorenzo Stoakes (ARM)
2026-09-22 15:35 ` [PATCH v4 05/12] mm: enable MMU_GATHER_RCU_TABLE_FREE for arc, microblaze, xtensa Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:48   ` sashiko-bot
2026-09-23  8:43   ` Lance Yang
2026-09-23  8:43     ` Lance Yang
2026-09-23  8:43     ` Lance Yang
2026-09-22 15:35 ` [PATCH v4 06/12] mm: enable MMU_GATHER_RCU_TABLE_FREE for sparc64 Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:47   ` sashiko-bot
2026-09-23  8:54   ` Lance Yang
2026-09-23  8:54     ` Lance Yang
2026-09-23  8:54     ` Lance Yang
2026-09-22 15:35 ` [PATCH v4 07/12] mm: enable MMU_GATHER_RCU_TABLE_FREE for m68k-coldfire Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:48   ` sashiko-bot
2026-09-23  9:13   ` Lance Yang
2026-09-23  9:13     ` Lance Yang
2026-09-23  9:13     ` Lance Yang
2026-09-23 11:31   ` Greg Ungerer
2026-09-23 11:31     ` Greg Ungerer
2026-09-23 11:31     ` Greg Ungerer
2026-09-23 11:36     ` Lorenzo Stoakes (ARM)
2026-09-23 11:36       ` Lorenzo Stoakes (ARM)
2026-09-23 11:36       ` Lorenzo Stoakes (ARM)
2026-09-22 15:35 ` [PATCH v4 08/12] mm: enable MMU_GATHER_RCU_TABLE_FREE for sh-X2 Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:49   ` sashiko-bot
2026-09-23 11:54   ` Lance Yang
2026-09-23 11:54     ` Lance Yang
2026-09-23 11:54     ` Lance Yang
2026-09-23 11:56     ` Lorenzo Stoakes (ARM)
2026-09-23 11:56       ` Lorenzo Stoakes (ARM)
2026-09-23 11:56       ` Lorenzo Stoakes (ARM)
2026-09-22 15:35 ` [PATCH v4 09/12] mm: enable MMU_GATHER_RCU_TABLE_FREE for m68k-motorola Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:52   ` sashiko-bot
2026-09-23 13:16   ` Lance Yang
2026-09-23 13:16     ` Lance Yang
2026-09-23 13:16     ` Lance Yang
2026-09-23 13:21     ` Lorenzo Stoakes (ARM)
2026-09-23 13:21       ` Lorenzo Stoakes (ARM)
2026-09-23 13:21       ` Lorenzo Stoakes (ARM)
2026-09-22 15:35 ` [PATCH v4 10/12] mm: enable MMU_GATHER_RCU_TABLE_FREE for sparc32 Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:55   ` sashiko-bot
2026-09-24  2:41   ` Lance Yang
2026-09-24  2:41     ` Lance Yang
2026-09-24  2:41     ` Lance Yang
2026-09-22 15:35 ` [PATCH v4 11/12] mm: make userland page table freeing RCU-safe Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 16:01   ` sashiko-bot
2026-09-23  9:04   ` David Hildenbrand (Arm)
2026-09-23  9:04     ` David Hildenbrand (Arm)
2026-09-23  9:04     ` David Hildenbrand (Arm)
2026-09-23  9:06     ` Lorenzo Stoakes (ARM) [this message]
2026-09-23  9:06       ` Lorenzo Stoakes (ARM)
2026-09-23  9:06       ` Lorenzo Stoakes (ARM)
2026-09-23  9:13       ` David Hildenbrand (Arm)
2026-09-23  9:13         ` David Hildenbrand (Arm)
2026-09-23  9:13         ` David Hildenbrand (Arm)
2026-09-23 11:48         ` Lorenzo Stoakes (ARM)
2026-09-23 11:48           ` Lorenzo Stoakes (ARM)
2026-09-23 11:48           ` Lorenzo Stoakes (ARM)
2026-09-23 13:38           ` David Hildenbrand (Arm)
2026-09-23 13:38             ` David Hildenbrand (Arm)
2026-09-23 13:38             ` David Hildenbrand (Arm)
2026-09-23 13:43             ` Lorenzo Stoakes (ARM)
2026-09-23 13:43               ` Lorenzo Stoakes (ARM)
2026-09-23 13:43               ` Lorenzo Stoakes (ARM)
2026-09-24  2:55   ` Lance Yang
2026-09-24  2:55     ` Lance Yang
2026-09-24  2:55     ` Lance Yang
2026-09-22 15:35 ` [PATCH v4 12/12] mm: change the contract for free_pgtables(), update docs Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:35   ` Lorenzo Stoakes (ARM)
2026-09-22 15:49   ` sashiko-bot
2026-09-23  9:08   ` David Hildenbrand (Arm)
2026-09-23  9:08     ` David Hildenbrand (Arm)
2026-09-23  9:08     ` David Hildenbrand (Arm)
2026-09-23 11:55     ` Lorenzo Stoakes (ARM)
2026-09-23 11:55       ` Lorenzo Stoakes (ARM)
2026-09-23 11:55       ` Lorenzo Stoakes (ARM)
2026-09-24  3:26   ` Lance Yang
2026-09-24  3:26     ` Lance Yang
2026-09-24  3:26     ` Lance Yang
2026-09-24  7:54     ` Lorenzo Stoakes (ARM)
2026-09-24  7:54       ` Lorenzo Stoakes (ARM)
2026-09-24  7:54       ` Lorenzo Stoakes (ARM)
2026-09-22 16:42 ` [PATCH v4 00/12] mm: make userland page table freeing RCU-safe Matthew Wilcox
2026-09-22 16:42   ` Matthew Wilcox
2026-09-22 16:42   ` Matthew Wilcox
2026-09-22 17:22   ` Lorenzo Stoakes (ARM)
2026-09-22 17:22     ` Lorenzo Stoakes (ARM)
2026-09-22 17:22     ` Lorenzo Stoakes (ARM)
2026-09-22 23:00 ` Andrew Morton
2026-09-22 23:00   ` Andrew Morton
2026-09-22 23:00   ` Andrew Morton
2026-09-23  7:04   ` Lorenzo Stoakes (ARM)
2026-09-23  7:04     ` Lorenzo Stoakes (ARM)
2026-09-23  7:04     ` Lorenzo Stoakes (ARM)
2026-09-23 20:01     ` Andrew Morton
2026-09-23 20:01       ` Andrew Morton
2026-09-23 20:01       ` Andrew Morton
2026-09-23  8:45   ` David Hildenbrand (Arm)
2026-09-23  8:45     ` David Hildenbrand (Arm)
2026-09-23  8:45     ` David Hildenbrand (Arm)
2026-09-23  9:04     ` Lorenzo Stoakes (ARM)
2026-09-23  9:04       ` Lorenzo Stoakes (ARM)
2026-09-23  9:04       ` Lorenzo Stoakes (ARM)
2026-09-23  9:15       ` David Hildenbrand (Arm)
2026-09-23  9:15         ` David Hildenbrand (Arm)
2026-09-23  9:15         ` David Hildenbrand (Arm)
2026-09-23  9:39         ` Vlastimil Babka (SUSE)
2026-09-23  9:39           ` Vlastimil Babka (SUSE)
2026-09-23  9:39           ` Vlastimil Babka (SUSE)
2026-09-23 11:39           ` Lorenzo Stoakes (ARM)
2026-09-23 11:39             ` Lorenzo Stoakes (ARM)
2026-09-23 11:39             ` Lorenzo Stoakes (ARM)
2026-09-23 19:59 ` Andrew Morton
2026-09-23 19:59   ` Andrew Morton
2026-09-23 19:59   ` Andrew Morton

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=arOWZCeV8FrkAvhK@gremlin \
    --to=ljs@kernel.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=agordeev@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex@ghiti.fr \
    --cc=andreas@gaisler.com \
    --cc=aneesh.kumar@kernel.org \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=arnd@arndb.de \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=bcain@kernel.org \
    --cc=borntraeger@linux.ibm.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=chenhuacai@kernel.org \
    --cc=chleroy@kernel.org \
    --cc=chris@zankel.net \
    --cc=corbet@lwn.net \
    --cc=dalias@libc.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=david@kernel.org \
    --cc=deller@gmx.de \
    --cc=dev.jain@arm.com \
    --cc=dinguyen@kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=glaubitz@physik.fu-berlin.de \
    --cc=gor@linux.ibm.com \
    --cc=guoren@kernel.org \
    --cc=hca@linux.ibm.com \
    --cc=hpa@zytor.com \
    --cc=hughd@google.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=jgg@ziepe.ca \
    --cc=jhubbard@nvidia.com \
    --cc=johannes@sipsolutions.net \
    --cc=jonas@southpole.se \
    --cc=kas@kernel.org \
    --cc=kernel@xen0n.name \
    --cc=lance.yang@linux.dev \
    --cc=liam@infradead.org \
    --cc=linmag7@gmail.com \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-csky@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-hexagon@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-openrisc@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-snps-arc@lists.infradead.org \
    --cc=linux-um@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=loongarch@lists.linux.dev \
    --cc=maddy@linux.ibm.com \
    --cc=mark.rutland@arm.com \
    --cc=mattst88@gmail.com \
    --cc=mhocko@suse.com \
    --cc=mingo@redhat.com \
    --cc=monstr@monstr.eu \
    --cc=mpe@ellerman.id.au \
    --cc=nico.pache@linux.dev \
    --cc=npiggin@gmail.com \
    --cc=palmer@dabbelt.com \
    --cc=peterx@redhat.com \
    --cc=peterz@infradead.org \
    --cc=pjw@kernel.org \
    --cc=qi.zheng@linux.dev \
    --cc=rdunlap@infradead.org \
    --cc=richard.henderson@linaro.org \
    --cc=richard@nod.at \
    --cc=rppt@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=schuster.simon@siemens-energy.com \
    --cc=shakeel.butt@linux.dev \
    --cc=shorne@gmail.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=stefan.kristiansson@saunalahti.fi \
    --cc=surenb@google.com \
    --cc=svens@linux.ibm.com \
    --cc=tglx@kernel.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=usama.arif@linux.dev \
    --cc=vbabka@kernel.org \
    --cc=vgupta@kernel.org \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    --cc=ysato@users.sourceforge.jp \
    --cc=ziy@nvidia.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.