[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <xhsmh3472qah4.mognet@vschneid-thinkpadt14sgen2i.remote.csb>
Date: Wed, 29 Oct 2025 11:16:23 +0100
From: Valentin Schneider <vschneid@...hat.com>
To: Frederic Weisbecker <frederic@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-mm@...ck.org, rcu@...r.kernel.org,
x86@...nel.org, linux-arm-kernel@...ts.infradead.org,
loongarch@...ts.linux.dev, linux-riscv@...ts.infradead.org,
linux-arch@...r.kernel.org, linux-trace-kernel@...r.kernel.org, Thomas
Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>, Borislav
Petkov <bp@...en8.de>, Dave Hansen <dave.hansen@...ux.intel.com>, "H.
Peter Anvin" <hpa@...or.com>, Andy Lutomirski <luto@...nel.org>, Peter
Zijlstra <peterz@...radead.org>, Arnaldo Carvalho de Melo
<acme@...nel.org>, Josh Poimboeuf <jpoimboe@...nel.org>, Paolo Bonzini
<pbonzini@...hat.com>, Arnd Bergmann <arnd@...db.de>, "Paul E. McKenney"
<paulmck@...nel.org>, Jason Baron <jbaron@...mai.com>, Steven Rostedt
<rostedt@...dmis.org>, Ard Biesheuvel <ardb@...nel.org>, Sami Tolvanen
<samitolvanen@...gle.com>, "David S. Miller" <davem@...emloft.net>, Neeraj
Upadhyay <neeraj.upadhyay@...nel.org>, Joel Fernandes
<joelagnelf@...dia.com>, Josh Triplett <josh@...htriplett.org>, Boqun Feng
<boqun.feng@...il.com>, Uladzislau Rezki <urezki@...il.com>, Mathieu
Desnoyers <mathieu.desnoyers@...icios.com>, Mel Gorman <mgorman@...e.de>,
Andrew Morton <akpm@...ux-foundation.org>, Masahiro Yamada
<masahiroy@...nel.org>, Han Shen <shenhan@...gle.com>, Rik van Riel
<riel@...riel.com>, Jann Horn <jannh@...gle.com>, Dan Carpenter
<dan.carpenter@...aro.org>, Oleg Nesterov <oleg@...hat.com>, Juri Lelli
<juri.lelli@...hat.com>, Clark Williams <williams@...hat.com>, Yair
Podemsky <ypodemsk@...hat.com>, Marcelo Tosatti <mtosatti@...hat.com>,
Daniel Wagner <dwagner@...e.de>, Petr Tesarik <ptesarik@...e.com>
Subject: Re: [RFC PATCH v6 27/29] x86/mm/pti: Implement a TLB flush
immediately after a switch to kernel CR3
On 28/10/25 16:59, Frederic Weisbecker wrote:
> Le Fri, Oct 10, 2025 at 05:38:37PM +0200, Valentin Schneider a écrit :
>> @@ -171,8 +172,27 @@ For 32-bit we have the following conventions - kernel is built with
>> andq $(~PTI_USER_PGTABLE_AND_PCID_MASK), \reg
>> .endm
>>
>> -.macro COALESCE_TLBI
>> +.macro COALESCE_TLBI scratch_reg:req
>> #ifdef CONFIG_COALESCE_TLBI
>> + /* No point in doing this for housekeeping CPUs */
>> + movslq PER_CPU_VAR(cpu_number), \scratch_reg
>> + bt \scratch_reg, tick_nohz_full_mask(%rip)
>> + jnc .Lend_tlbi_\@
>
> I assume it's not possible to have a static call/branch to
> take care of all this ?
>
I think technically yes, but that would have to be a per-cpu patchable
location, which would mean something like each CPU having its own copy of
that text page... Unless there's some existing way to statically optimize
if (cpumask_test_cpu(smp_processor_id(), mask))
where @mask is a boot-time constant (i.e. the nohz_full mask).
> Thanks.
>
> --
> Frederic Weisbecker
> SUSE Labs
Powered by blists - more mailing lists