Debug builds traditionally ship with a 10-bit counter for the TLB clock. This forces global TLB shootdowns with high frequency, making debug builds unsuitable for any form of real time testing.
Remove this quirk, unifying release and debug under a wide counter. Signed-off-by: Alejandro Vallejo <[email protected]> --- v1: https://lore.kernel.org/xen-devel/[email protected]/ v2: * Remove WRAP_MASK instead. * Commit message/title rewrites. --- xen/arch/x86/flushtlb.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c index 09e676c151..23721bb52c 100644 --- a/xen/arch/x86/flushtlb.c +++ b/xen/arch/x86/flushtlb.c @@ -19,13 +19,6 @@ #include <asm/pv/domain.h> #include <asm/spec_ctrl.h> -/* Debug builds: Wrap frequently to stress-test the wrap logic. */ -#ifdef NDEBUG -#define WRAP_MASK (0xFFFFFFFFU) -#else -#define WRAP_MASK (0x000003FFU) -#endif - #ifndef CONFIG_PV # undef X86_CR4_PCIDE # define X86_CR4_PCIDE 0 @@ -55,7 +48,7 @@ static u32 pre_flush(void) /* Clock wrapped: someone else is leading a global TLB shootdown. */ if ( unlikely(t1 == 0) ) goto skip_clocktick; - t2 = (t + 1) & WRAP_MASK; + t2 = t + 1; } while ( unlikely((t = cmpxchg(&tlbflush_clock, t1, t2)) != t1) ); base-commit: a2a34d76643e49ccc949296c9a45888034e50b55 -- 2.43.0
