aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRik van Riel <riel@surriel.com>2024-11-14 10:26:17 -0500
committerIngo Molnar <mingo@kernel.org>2024-11-19 12:02:46 +0100
commit2815a56e4b7252a836969f5674ee356ea1ce482c (patch)
tree9bd31904dce6af7473f220d5183aae7209051419
parentx86/mm/tlb: Update mm_cpumask lazily (diff)
downloadwireguard-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.c1
-rw-r--r--include/linux/mm_types.h1
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,
};