diff options
author | 2024-11-14 10:26:17 -0500 | |
---|---|---|
committer | 2024-11-19 12:02:46 +0100 | |
commit | 2815a56e4b7252a836969f5674ee356ea1ce482c (patch) | |
tree | 9bd31904dce6af7473f220d5183aae7209051419 | |
parent | x86/mm/tlb: Update mm_cpumask lazily (diff) | |
download | wireguard-linux-2815a56e4b7252a836969f5674ee356ea1ce482c.tar.xz wireguard-linux-2815a56e4b7252a836969f5674ee356ea1ce482c.zip |
x86/mm/tlb: Add tracepoint for TLB flush IPI to stale CPU
Add a tracepoint when we send a TLB flush IPI to a CPU that used
to be in the mm_cpumask, but isn't any more.
Suggested-by: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: Rik van Riel <riel@surriel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20241114152723.1294686-3-riel@surriel.com
Diffstat (limited to '')
-rw-r--r-- | arch/x86/mm/tlb.c | 1 | ||||
-rw-r--r-- | include/linux/mm_types.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c index cc4e57ae690f..1aac4fa90d3d 100644 --- a/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c @@ -760,6 +760,7 @@ static void flush_tlb_func(void *info) /* Can only happen on remote CPUs */ if (f->mm && f->mm != loaded_mm) { cpumask_clear_cpu(raw_smp_processor_id(), mm_cpumask(f->mm)); + trace_tlb_flush(TLB_REMOTE_WRONG_CPU, 0); return; } } diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 6e3bdf8e38bc..6b6f05404304 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -1335,6 +1335,7 @@ enum tlb_flush_reason { TLB_LOCAL_SHOOTDOWN, TLB_LOCAL_MM_SHOOTDOWN, TLB_REMOTE_SEND_IPI, + TLB_REMOTE_WRONG_CPU, NR_TLB_FLUSH_REASONS, }; |