[RFC PATCH v7 30/31] x86/mm, mm/vmalloc: Defer kernel TLB flush IPIs under CONFIG_COALESCE_TLBI=y
Dave Hansen
dave.hansen at intel.com
Wed Nov 19 10:31:21 PST 2025
On 11/14/25 07:14, Valentin Schneider wrote:
> +static bool flush_tlb_kernel_cond(int cpu, void *info)
> +{
> + return housekeeping_cpu(cpu, HK_TYPE_KERNEL_NOISE) ||
> + per_cpu(kernel_cr3_loaded, cpu);
> +}
Is it OK that 'kernel_cr3_loaded' can be be stale? Since it's not part
of the instruction that actually sets CR3, there's a window between when
'kernel_cr3_loaded' is set (or cleared) and CR3 is actually written.
Is that OK?
It seems like it could lead to both unnecessary IPIs being sent and for
IPIs to be missed.
I still _really_ wish folks would be willing to get newer CPUs to get
this behavior rather than going through all this complexity. RAR in
particular was *specifically* designed to keep TLB flushing IPIs from
blipping userspace for too long.
More information about the linux-riscv
mailing list