[PATCH] x86: Increase allowable TSX abort rate to 6%.

Carlos O'Donell carlos@redhat.com
Thu Nov 13 14:59:58 GMT 2025


In pre-commit CI on an E5-2698 v4 we sometimes see ~5% aborts.

Set the trip point to 6%.
---
 sysdeps/x86/tst-string-rtm.h | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/sysdeps/x86/tst-string-rtm.h b/sysdeps/x86/tst-string-rtm.h
index 1bf863063f..699c52227b 100644
--- a/sysdeps/x86/tst-string-rtm.h
+++ b/sysdeps/x86/tst-string-rtm.h
@@ -36,6 +36,18 @@ do_test_1 (const char *name, unsigned int loop, int (*prepare) (void),
   unsigned int i;
   unsigned int naborts = 0;
   unsigned int failed = 0;
+
+  /* Iterate LOOP number of times, calling the same function over
+     and over again in an attempt to detect the following failure
+     modes:
+
+     1. Aborting instruction on the hot path.
+     2. Number of instructions executed exceeds maximum.
+     3. Memory reads or writes exceed maximum.
+
+     The function getting bigger may increase the abort rate due
+     to external events, despite not triggering #2 above, and may
+     need adjusting the abort rate failure test below.  */
   for (i = 0; i < loop; i++)
     {
       failed |= function ();
@@ -56,10 +68,12 @@ do_test_1 (const char *name, unsigned int loop, int (*prepare) (void),
 
   if (naborts)
     {
-      /* NB: Low single digit (<= 5%) noise-level aborts are normal for
-	 TSX.  */
+      /* Low single digit (<= 5%) noise-level aborts are normal for TSX
+	 for reasons that are outside of the library's control.
+	 In pre-commit CI on an E5-2698 v4 we sometimes see ~5% aborts.
+	 Set the trip point to 6%.  */
       double rate = 100 * ((double) naborts) / ((double) loop);
-      if (rate > 5)
+      if (rate > 6)
 	FAIL_EXIT1 ("TSX abort rate: %.2f%% (%d out of %d)",
 		    rate, naborts, loop);
     }
-- 
2.51.1



More information about the Libc-alpha mailing list