On Mon, Jan 19, 2026 at 05:55:08PM -0800, Stephen Hemminger wrote:
> 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]>
> Acked-by: Marat Khalili <[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..4c815ea097 100644
> --- a/app/test/suites/meson.build
> +++ b/app/test/suites/meson.build
> @@ -85,11 +85,15 @@ foreach suite:test_suites
> if nohuge
> test_args += test_no_huge_args
> elif not has_hugepage
> - continue #skip this tests
> + continue # skip this test
> endif
> if not asan and get_option('b_sanitize').contains('address')
> continue # skip this test
> endif
> + if is_linux
> + # use unique file-prefix to allow parallel runs
> + test_args += ['--file-prefix=' + test_name.underscorify()]
> + endif
>
No harm in this, even though I suspect parallel runs may hit other issues.
Acked-by: Bruce Richardson <[email protected]>