RE: [PATCH 5/6] test: add file-prefix for all fast-tests on Linux

Marat Khalili
2026-01-19T13:06:47Z

> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Sunday 18 January 2026 20:09
> To: dev@dpdk.org
> Cc: Stephen Hemminger <stephen@networkplumber.org>; stable@dpdk.org; Bruce Richardson
> <bruce.richardson@intel.com>; Morten Brørup <mb@smartsharesystems.com>
> 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: stable@dpdk.org
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> 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 <marat.khalili@huawei.com>