> -----Original Message----- > From: Stephen Hemminger <[email protected]> > Sent: Sunday 18 January 2026 20:09 > To: [email protected] > Cc: Stephen Hemminger <[email protected]>; [email protected]; Bruce > Richardson > <[email protected]>; Morten Brørup <[email protected]> > Subject: [PATCH 5/6] test: add file-prefix for all fast-tests on Linux > > When running tests in parallel on systems with many cores, multiple test > processes collide on the default "rte" file-prefix, causing EAL > initialization failures: > > EAL: Cannot allocate memzone list: Device or resource busy > EAL: Cannot init memzone > > This occurs because all DPDK tests (including --no-huge tests) use > file-backed arrays for memzone tracking. These files are created at > /var/run/dpdk/<prefix>/fbarray_memzone and require exclusive locking > during initialization. When multiple tests run in parallel with the > same file-prefix, they compete for this lock. > > The original implementation included --file-prefix for Linux to > prevent this collision. This was later removed during test > infrastructure refactoring. > > Restore the --file-prefix argument for all fast-tests on Linux, > regardless of whether they use hugepages. Tests that exercise > file-prefix functionality (like eal_flags_file_prefix_autotest) > spawn child processes with their own hardcoded prefixes and use > get_current_prefix() to verify the parent's resources, so they work > correctly regardless of what prefix the parent process uses. > > Fixes: 50823f30f0c8 ("test: build using per-file dependencies") > Cc: [email protected] > > Signed-off-by: Stephen Hemminger <[email protected]> > --- > app/test/suites/meson.build | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/app/test/suites/meson.build b/app/test/suites/meson.build > index 1010150eee..38df1cfec2 100644 > --- a/app/test/suites/meson.build > +++ b/app/test/suites/meson.build > @@ -85,7 +85,11 @@ foreach suite:test_suites > if nohuge > test_args += test_no_huge_args > elif not has_hugepage > - continue #skip this tests > + continue # skip this tests > + endif > + if is_linux > + # use unique file-prefix to allow parallel runs > + test_args += ['--file-prefix=' + test_name.underscorify()] > endif > if not asan and get_option('b_sanitize').contains('address') > continue # skip this test > -- > 2.51.0 >
Note that in CI systems running multiple builds for different targets or branches there will still be problems. Also, if you have to resubmit, can you move new lines below handling of nohuge and asan. With or without points above addressed, Acked-by: Marat Khalili <[email protected]>

