Re: [PATCH v3 00/14] test: fix test failures on high cores

David Marchand
2026-03-05T16:40:02Z

On Thu, 22 Jan 2026 at 01:54, Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> This series addresses several categories of test infrastructure issues:
>
> 1. Spinloop synchronization fixes (patch 1)
>
> Tests using tight spinloops for thread synchronization cause sporadic
> failures on high core count AMD Zen systems. The loops starve SMT
> sibling threads and create race conditions. Adding rte_pause() to
> all synchronization spinloops fixes these issues.
>
> 2. Test scaling for high core count systems (patches 2-5)
>
> Several tests use fixed iteration counts that cause timeouts on
> systems with many cores due to increased lock contention. A new
> helper function test_scale_iterations() scales iterations inversely
> with core count to maintain roughly constant test duration.
>
> Affected tests:
> - atomic_autotest (Bugzilla #952)
> - mcslock_autotest
> - stack_autotest
> - timer_secondary_autotest
>
> 3. BPF test fixes (patches 6-8, 14)
>
> - Fix missing error handling in ELF load tests
> - Fix clang 20+ compatibility by restricting to BPF v2 instruction
> set (Bugzilla #1844)
> - Skip ELF test gracefully if null PMD is disabled
> - Fix incorrect size parameter in Rx/Tx load tests
>
> 4. Parallel test execution fixes (patches 9-10)
>
> Multiple tests colliding on the default "rte" file-prefix causes EAL
> initialization failures when running tests in parallel. Restore unique
> file-prefix for all fast-tests on Linux, including a separate prefix
> for trace_autotest_with_traces.
>
> 5. Test skip conditions (patches 11-13)
>
> Tests that depend on optional drivers (null PMD, eventdev) should skip
> gracefully when those drivers are disabled via -Ddisable_drivers=
> rather than failing.
>
> v4 - add additional scaling for failures reported on 96 core system
> - gracefully handle case where null PMD disabled in build
>
> Stephen Hemminger (14):
> test: add pause to synchronization spinloops
> test: scale atomic test based on core count
> test/mcslock: scale test based on number of cores
> test/stack: scale test based on number of cores
> test/timer: scale test based on number of cores
> test/bpf: fix error handling in ELF load tests
> test/bpf: fix unsupported BPF instructions in ELF load test
> test/bpf: skip ELF test if null PMD disabled
> test: add file-prefix for all fast-tests on Linux
> test: fix trace_autotest_with_traces parallel execution
> test/eventdev: skip test if eventdev driver disabled
> test/pcapng: skip test if null driver missing
> test/vdev: skip test if no null PMD
> test/bpf: pass correct size for Rx/Tx load tests
>
> app/test/bpf/meson.build | 3 +-
> app/test/meson.build | 4 +-
> app/test/suites/meson.build | 19 +++++---
> app/test/test.h | 19 ++++++++
> app/test/test_atomic.c | 66 ++++++++++++++++------------
> app/test/test_bpf.c | 13 ++++--
> app/test/test_event_eth_tx_adapter.c | 11 +++--
> app/test/test_mcslock.c | 10 +++--
> app/test/test_stack.c | 8 ++--
> app/test/test_threads.c | 17 +++----
> app/test/test_timer_secondary.c | 14 +++---
> 11 files changed, 121 insertions(+), 63 deletions(-)

I think there is some overlap with some other merged patches (like a
conflict on the meson side).
Please check and rebase this series.

Thanks.

--
David Marchand