]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/mm/tlb: Add tracepoint for TLB flush IPI to stale CPU
authorRik van Riel <riel@surriel.com>
Thu, 14 Nov 2024 15:26:17 +0000 (10:26 -0500)
committerIngo Molnar <mingo@kernel.org>
Tue, 19 Nov 2024 11:02:46 +0000 (12:02 +0100)
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
arch/x86/mm/tlb.c
include/linux/mm_types.h

index cc4e57ae690f5cff6536a9e31cddf60ff646f120..1aac4fa90d3d865f6c232e0df64e00cfb6e7f003 100644 (file)
@@ -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;
                }
        }
index 6e3bdf8e38bcaee66a71f5566ac7debb94c0ee78..6b6f05404304c11edc9589f4eb4973c654004383 100644 (file)
@@ -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,
 };