From: Qi Zheng <qi.zheng@linux.dev>
To: Wei Yang <richard.weiyang@gmail.com>,
"David Hildenbrand (Red Hat)" <david@kernel.org>
Cc: will@kernel.org, aneesh.kumar@kernel.org, npiggin@gmail.com,
peterz@infradead.org, dev.jain@arm.com,
akpm@linux-foundation.org, ioworker0@gmail.com,
linmag7@gmail.com, linux-arch@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-alpha@vger.kernel.org, loongarch@lists.linux.dev,
linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-um@lists.infradead.org,
Qi Zheng <zhengqi.arch@bytedance.com>
Subject: Re: [PATCH v3 7/7] mm: make PT_RECLAIM depends on MMU_GATHER_RCU_TABLE_FREE
Date: Fri, 23 Jan 2026 11:21:50 +0800 [thread overview]
Message-ID: <fd90c84b-9829-4699-b7df-c43020519ec9@linux.dev> (raw)
In-Reply-To: <20260122140034.ymigrfppzwvmcjkr@master>
On 1/22/26 10:00 PM, Wei Yang wrote:
> On Mon, Jan 19, 2026 at 11:18:52AM +0100, David Hildenbrand (Red Hat) wrote:
>> On 1/1/26 03:07, Wei Yang wrote:
>>> On Wed, Dec 31, 2025 at 05:52:57PM +0800, Qi Zheng wrote:
>>>>
>>>>
>>>> On 12/31/25 5:42 PM, Wei Yang wrote:
>>>>> On Wed, Dec 17, 2025 at 05:45:48PM +0800, Qi Zheng wrote:
>>>>>> From: Qi Zheng <zhengqi.arch@bytedance.com>
>>>>>>
>>>>>> The PT_RECLAIM can work on all architectures that support
>>>>>> MMU_GATHER_RCU_TABLE_FREE, so make PT_RECLAIM depends on
>>>>>> MMU_GATHER_RCU_TABLE_FREE.
>>>>>>
>>>>>> BTW, change PT_RECLAIM to be enabled by default, since nobody should want
>>>>>> to turn it off.
>>>>>>
>>>>>> Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com>
>>>>>> ---
>>>>>> arch/x86/Kconfig | 1 -
>>>>>> mm/Kconfig | 9 ++-------
>>>>>> 2 files changed, 2 insertions(+), 8 deletions(-)
>>>>>>
>>>>>> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>>>>>> index 80527299f859a..0d22da56a71b0 100644
>>>>>> --- a/arch/x86/Kconfig
>>>>>> +++ b/arch/x86/Kconfig
>>>>>> @@ -331,7 +331,6 @@ config X86
>>>>>> select FUNCTION_ALIGNMENT_4B
>>>>>> imply IMA_SECURE_AND_OR_TRUSTED_BOOT if EFI
>>>>>> select HAVE_DYNAMIC_FTRACE_NO_PATCHABLE
>>>>>> - select ARCH_SUPPORTS_PT_RECLAIM if X86_64
>>>>>> select ARCH_SUPPORTS_SCHED_SMT if SMP
>>>>>> select SCHED_SMT if SMP
>>>>>> select ARCH_SUPPORTS_SCHED_CLUSTER if SMP
>>>>>> diff --git a/mm/Kconfig b/mm/Kconfig
>>>>>> index bd0ea5454af82..fc00b429b7129 100644
>>>>>> --- a/mm/Kconfig
>>>>>> +++ b/mm/Kconfig
>>>>>> @@ -1447,14 +1447,9 @@ config ARCH_HAS_USER_SHADOW_STACK
>>>>>> The architecture has hardware support for userspace shadow call
>>>>>> stacks (eg, x86 CET, arm64 GCS or RISC-V Zicfiss).
>>>>>>
>>>>>> -config ARCH_SUPPORTS_PT_RECLAIM
>>>>>> - def_bool n
>>>>>> -
>>>>>> config PT_RECLAIM
>>>>>> - bool "reclaim empty user page table pages"
>>>>>> - default y
>>>>>> - depends on ARCH_SUPPORTS_PT_RECLAIM && MMU && SMP
>>>>>> - select MMU_GATHER_RCU_TABLE_FREE
>>>>>> + def_bool y
>>>>>> + depends on MMU_GATHER_RCU_TABLE_FREE
>>>>>> help
>>>>>> Try to reclaim empty user page table pages in paths other than munmap
>>>>>> and exit_mmap path.
>>>>>
>>>>> Hi, Qi
>>>>>
>>>>> I am new to PT_RECLAIM, when reading related code I got one question.
>>>>>
>>>>> Before this patch, we could have this config combination:
>>>>>
>>>>> CONFIG_MMU_GATHER_RCU_TABLE_FREE & !CONFIG_PT_RECLAIM
>>>>>
>>>>> This means tlb_remove_table_free() is rcu version while tlb_remove_table_one()
>>>>> is semi rcu version.
>>>>>
>>>>> I am curious could we use rcu version tlb_remove_table_one() for this case?
>>>>> Use rcu version tlb_remove_table_one() if CONFIG_MMU_GATHER_RCU_TABLE_FREE. Is
>>>>> there some limitation here?
>>>>
>>>> I think there's no problem. The rcu version can also ensure that the
>>>> fast GUP works well.
>>>>
>>>
>>> Thanks for your quick response :-)
>>>
>>> And Happy New Year
>>>
>>> So my little suggestion is move the definition of __tlb_remove_table_one()
>>> under CONFIG_MMU_GATHER_RCU_TABLE_FREE. Do you thinks this would be more
>>> clear?
>>
>>
>> Do you mean
>>
>> diff --git a/mm/mmu_gather.c b/mm/mmu_gather.c
>> index 2faa23d7f8d42..6aeba4bae68d2 100644
>> --- a/mm/mmu_gather.c
>> +++ b/mm/mmu_gather.c
>> @@ -319,7 +319,7 @@ static inline void tlb_table_invalidate(struct mmu_gather
>> *tlb)
>> }
>> }
>>
>> -#ifdef CONFIG_PT_RECLAIM
>> +#ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE
>> static inline void __tlb_remove_table_one_rcu(struct rcu_head *head)
>> {
>> struct ptdesc *ptdesc;
>>
>> ?
>
> Sorry for the late reply.
>
> Yes, and maybe we can move the definition to the
> #ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE code block above, then to be next to
> tlb_remove_table_free().
>
> So that we always have rcu version when CONFIG_MMU_GATHER_RCU_TABLE_FREE.
LGTM, could you help submit an official patch?
Thanks,
Qi
>
>>
>> --
>> Cheers
>>
>> David
>
next prev parent reply other threads:[~2026-01-23 3:22 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-17 9:45 [PATCH v3 0/7] enable PT_RECLAIM on all 64-bit architectures Qi Zheng
2025-12-17 9:45 ` [PATCH v3 1/7] mm: change mm/pt_reclaim.c to use asm/tlb.h instead of asm-generic/tlb.h Qi Zheng
2025-12-17 9:45 ` [PATCH v3 2/7] alpha: mm: enable MMU_GATHER_RCU_TABLE_FREE Qi Zheng
2025-12-17 9:45 ` [PATCH v3 3/7] LoongArch: " Qi Zheng
2025-12-17 9:45 ` [PATCH v3 4/7] mips: " Qi Zheng
2025-12-17 9:45 ` [PATCH v3 5/7] parisc: " Qi Zheng
2025-12-17 9:45 ` [PATCH v3 6/7] um: " Qi Zheng
2025-12-17 9:45 ` [PATCH v3 7/7] mm: make PT_RECLAIM depends on MMU_GATHER_RCU_TABLE_FREE Qi Zheng
2025-12-31 9:42 ` Wei Yang
2025-12-31 9:52 ` Qi Zheng
2026-01-01 2:07 ` Wei Yang
2026-01-19 10:18 ` David Hildenbrand (Red Hat)
2026-01-22 14:00 ` Wei Yang
2026-01-23 3:21 ` Qi Zheng [this message]
2026-01-24 1:45 ` Wei Yang
2026-01-18 11:23 ` David Hildenbrand (Red Hat)
2026-01-19 3:50 ` Qi Zheng
2026-01-19 10:12 ` David Hildenbrand (Red Hat)
2026-01-19 10:20 ` David Hildenbrand (Red Hat)
2026-01-23 15:15 ` Andreas Larsson
2026-01-26 6:59 ` Qi Zheng
2026-01-27 11:29 ` David Hildenbrand (Red Hat)
2026-01-27 11:47 ` Qi Zheng
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=fd90c84b-9829-4699-b7df-c43020519ec9@linux.dev \
--to=qi.zheng@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@kernel.org \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=ioworker0@gmail.com \
--cc=linmag7@gmail.com \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-um@lists.infradead.org \
--cc=loongarch@lists.linux.dev \
--cc=npiggin@gmail.com \
--cc=peterz@infradead.org \
--cc=richard.weiyang@gmail.com \
--cc=will@kernel.org \
--cc=zhengqi.arch@bytedance.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.