Re: [RFC PATCH v3 13/15] context_tracking,x86: Add infrastructure to defer kernel TLBI
From: Petr Tesarik
Date: Mon Dec 09 2024 - 09:43:15 EST
On Mon, 9 Dec 2024 13:12:49 +0100
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> On Mon, Dec 09, 2024 at 01:04:43PM +0100, Valentin Schneider wrote:
>
> > > But I wonder what exactly was the original scenario encountered by
> > > Valentin. I mean, if TLB entry invalidations were necessary to sync
> > > changes to kernel text after flipping a static branch, then it might be
> > > less overhead to make a list of affected pages and call INVLPG on them.
>
> No; TLB is not involved with text patching (on x86).
>
> > > Valentin, do you happen to know?
> >
> > So from my experimentation (hackbench + kernel compilation on housekeeping
> > CPUs, dummy while(1) userspace loop on isolated CPUs), the TLB flushes only
> > occurred from vunmap() - mainly from all the hackbench threads coming and
> > going.
>
> Right, we have virtually mapped stacks.
Wait... Are you talking about the kernel stac? But that's only 4 pages
(or 8 pages with KASAN), so that should be easily handled with INVLPG.
No CR4 dances are needed for that.
What am I missing?
Petr T