x86/mm/tlb: Put cpumask_test_cpu() check in switch_mm_irqs_off() under CONFIG_DEBUG_VM
authorRik van Riel <riel@surriel.com>
Sat, 9 Nov 2024 00:27:50 +0000 (19:27 -0500)
committerIngo Molnar <mingo@kernel.org>
Wed, 13 Nov 2024 02:42:41 +0000 (03:42 +0100)
commit7e33001b8b9a78062679e0fdf5b0842a49063135
treea4d43a057f795ab7c76358c7a80ff5a57b1526c2
parentabe949ce0f9be943d8762f91e04b8588255f2f70
x86/mm/tlb: Put cpumask_test_cpu() check in switch_mm_irqs_off() under CONFIG_DEBUG_VM

On a web server workload, the cpumask_test_cpu() inside the
WARN_ON_ONCE() in the 'prev == next branch' takes about 17% of
all the CPU time of switch_mm_irqs_off().

On a large fleet, this WARN_ON_ONCE() has not fired in at least
a month, possibly never.

Move this test under CONFIG_DEBUG_VM so it does not get compiled
in production kernels.

Signed-off-by: Rik van Riel <riel@surriel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20241109003727.3958374-4-riel@surriel.com
arch/x86/mm/tlb.c