Re: [RFC PATCH v3 13/15] context_tracking,x86: Add infrastructure to defer kernel TLBI
From: Peter Zijlstra
Date: Thu Nov 21 2024 - 06:12:45 EST
On Wed, Nov 20, 2024 at 06:24:56PM +0100, Valentin Schneider wrote:
> > Oh gawd, just having looked at xen_write_cr3() this might not be
> > entirely trivial to mark noinstr :/
>
> ... I hadn't even seen that.
>
> AIUI the CR3 RMW is not "enough" if we have PGE enabled, because then
> global pages aren't flushed.
>
> The question becomes: what is held in global pages and do we care about
> that when it comes to vmalloc()? I'm starting to think no, but this is x86,
> I don't know what surprises are waiting for me.
>
> I see e.g. ds_clear_cea() clears PTEs that can have the _PAGE_GLOBAL flag,
> and it correctly uses the non-deferrable flush_tlb_kernel_range().
I always forget what we use global pages for, dhansen might know, but
let me try and have a look.
I *think* we only have GLOBAL on kernel text, and that only sometimes.