在 2020/10/18 17:25, David Marchand 写道:
On Thu, Oct 8, 2020 at 5:31 PM <rohit....@nxp.com> wrote:
From: Rohit Raj <rohit....@nxp.com>
Certain bus objects may need to be closed and re-acquired
while terminating and rerunning the client application.
Hence a signal handler is required to catch the termination
of the App and hence closing the bus objects.
This patch adds the missing signal handler in the client
app and closes the Bus objects in both client and server
applications when the signal Handler is called.
Signed-off-by: Rohit Raj <rohit....@nxp.com>
---
.../multi_process/client_server_mp/mp_client/client.c | 11 +++++++++++
.../multi_process/client_server_mp/mp_server/main.c | 4 +++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/examples/multi_process/client_server_mp/mp_client/client.c
b/examples/multi_process/client_server_mp/mp_client/client.c
index 361d90b54..c37516b4c 100644
--- a/examples/multi_process/client_server_mp/mp_client/client.c
+++ b/examples/multi_process/client_server_mp/mp_client/client.c
@@ -11,6 +11,7 @@
#include <stdlib.h>
#include <getopt.h>
#include <string.h>
+#include <signal.h>
#include <rte_common.h>
#include <rte_malloc.h>
@@ -196,6 +197,14 @@ handle_packet(struct rte_mbuf *buf)
}
+static void
+signal_handler(int signal)
+{
+ if (signal == SIGINT)
+ rte_eal_cleanup();
+ exit(0);
+}
Calling rte_eal_cleanup from a signal handler is a bad idea.
In most cases, you are racing with other threads still using DPDK resources.
https://git.dpdk.org/dpdk/commit?id=2c434431f4
https://git.dpdk.org/dpdk/commit?id=613ce6691c
This might not be a problem in this multi_process example, but let's
keep a consistent way across all examples.
Thanks.
Hi,
I want to know why you don't think he's a problem. recently, we use
the patch
https://patchwork.dpdk.org/patch/86988/
startup with multiprocess. Use the tester to send traffic and kill the
slave process repeatedly.
The coredump exception occurs. According to my analysis, the cause is
that resources are not released after the slave process is killed.
Thanks
Lijun Ou