patch 'examples/multi_process: revert ports cleanup on exit' has been queued to stable release 22.11.9

luca.boccassi at gmail.com luca.boccassi at gmail.com
Tue Jul 22 15:35:40 CEST 2025


Hi,

FYI, your patch has been queued to stable release 22.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/24/25. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/fcd0c8dfcace88dd137f2af3ae7649b7cdfff673

Thanks.

Luca Boccassi

---
>From fcd0c8dfcace88dd137f2af3ae7649b7cdfff673 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas at monjalon.net>
Date: Tue, 15 Jul 2025 13:08:15 +0200
Subject: [PATCH] examples/multi_process: revert ports cleanup on exit

[ upstream commit dc88beed495c04b745d17bc8c1718fa76b914593 ]

When closing the primary process, an error occurs when closing ports:

Error closing ports
EAL: failed to send to (/var/run/dpdk/dpdk_X/mp_socket_Y) due to Bad file descriptor
EAL: Fail to send request /var/run/dpdk/dpdk_X/mp_socket_Y:mp_malloc_sync
EAL: Could not send sync request to secondary process

And the secondary process crashes.

It may show several problems to fix in the next release.
Revert the fix causing these issues for 25.07 release.

Bugzilla ID: 1751
Fixes: 4382d58097b4 ("examples/multi_process: fix ports cleanup on exit")

Reported-by: Song Jiale <songx.jiale at intel.com>
Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
---
 examples/multi_process/symmetric_mp/main.c | 27 ++++------------------
 1 file changed, 5 insertions(+), 22 deletions(-)

diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c
index 2dbbaa06f5..1ff85875df 100644
--- a/examples/multi_process/symmetric_mp/main.c
+++ b/examples/multi_process/symmetric_mp/main.c
@@ -92,25 +92,6 @@ smp_usage(const char *prgname, const char *errmsg)
 	exit(1);
 }
 
-static void
-exit_cleanup(void)
-{
-	unsigned int i;
-
-	RTE_LOG(INFO, APP, "Close ports.\n");
-	for (i = 0; i < num_ports; i++) {
-		if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
-			if (rte_eth_dev_stop(ports[i]))
-				rte_exit(EXIT_FAILURE, "Error stopping ports\n");
-			if (rte_eth_dev_close(ports[i]))
-				rte_exit(EXIT_FAILURE, "Error closing ports\n");
-		}
-	}
-
-	/* clean up the EAL */
-	rte_eal_cleanup();
-	exit(0);
-}
 
 /* signal handler configured for SIGTERM and SIGINT to print stats on exit */
 static void
@@ -123,10 +104,9 @@ print_stats(int signum)
 		printf("Port %u: RX - %u, TX - %u, Drop - %u\n", (unsigned)p_num,
 				pstats[p_num].rx, pstats[p_num].tx, pstats[p_num].drop);
 	}
-	exit_cleanup();
+	exit(0);
 }
 
-
 /* Parse the argument given in the command line of the application */
 static int
 smp_parse_args(int argc, char **argv)
@@ -506,5 +486,8 @@ main(int argc, char **argv)
 
 	rte_eal_mp_remote_launch(lcore_main, NULL, CALL_MAIN);
 
-	exit_cleanup();
+	/* clean up the EAL */
+	rte_eal_cleanup();
+
+	return 0;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-07-22 14:35:32.136473293 +0100
+++ 0001-examples-multi_process-revert-ports-cleanup-on-exit.patch	2025-07-22 14:35:32.094012273 +0100
@@ -1 +1 @@
-From dc88beed495c04b745d17bc8c1718fa76b914593 Mon Sep 17 00:00:00 2001
+From fcd0c8dfcace88dd137f2af3ae7649b7cdfff673 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit dc88beed495c04b745d17bc8c1718fa76b914593 ]
+
@@ -20 +21,0 @@
-Cc: stable at dpdk.org
@@ -29 +30 @@
-index de16608a0f..f7d8439cd4 100644
+index 2dbbaa06f5..1ff85875df 100644


More information about the stable mailing list