[PATCH v1 2/2] dts: avoid dpdk resources conflict
Patrick Robb
probb at iol.unh.edu
Mon Mar 23 19:08:18 CET 2026
When starting and stopping DPDK applications in rapid succession,
there may be a resource conflicts on ports, memory, VFIO, etc.
Even after we send "quit" to the testpmd CLI, some resource
cleanup will happen asynchronously in the background. To avoid a
resource conflict upon starting a subsequent DPDK application,
add a very brief sleep after quitting DPDK applications.
Fixes: bfad0948df75 ("dts: rework interactive shells")
Signed-off-by: Patrick Robb <probb at iol.unh.edu>
Tested-by: Patrick Robb <probb at iol.unh.edu>
---
dts/framework/remote_session/dpdk_shell.py | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/dts/framework/remote_session/dpdk_shell.py b/dts/framework/remote_session/dpdk_shell.py
index 51b97d4ff6..7c79f33908 100644
--- a/dts/framework/remote_session/dpdk_shell.py
+++ b/dts/framework/remote_session/dpdk_shell.py
@@ -6,6 +6,7 @@
Provides a base class to create interactive shells based on DPDK.
"""
+import time
from abc import ABC, abstractmethod
from pathlib import PurePath
@@ -84,3 +85,11 @@ def _make_real_path(self) -> PurePath:
Adds the remote DPDK build directory to the path.
"""
return get_ctx().dpdk_build.remote_dpdk_build_dir.joinpath(self.path)
+
+ def close(self) -> None:
+ """Overrides :meth:`~.interactive_shell.close`."""
+ # Allow time for VFIO and hardware resources to be released by the kernel after the
+ # DPDK process exits. Without this delay, sequential testpmd instances may have EAL
+ # errors when trying to acquire the same devices.
+ time.sleep(1)
+ return super().close()
--
2.49.0
More information about the dev
mailing list