summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorCarlos O'Donell <carlos@redhat.com>2025-11-10 15:17:45 -0500
committerCarlos O'Donell <carlos@redhat.com>2025-11-14 08:18:36 -0500
commit5bdf3c909274a4796b848d7595a025dca1951570 (patch)
tree025e5319bebf7dc1b6bc87d7092ae0aa4ed3fca7 /sysdeps
parent91fb9914d867320d65a2abe284fb623d91ae5efb (diff)
x86: Increase allowable TSX abort rate to 6%.
In pre-commit CI on an E5-2698 v4 we sometimes see ~5% aborts. Set the trip point to 6%. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/x86/tst-string-rtm.h20
1 files 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);
}