From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 53475A04AC; Mon, 24 Aug 2020 10:24:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 282FDF90; Mon, 24 Aug 2020 10:24:22 +0200 (CEST) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by dpdk.org (Postfix) with ESMTP id AB49DF72 for ; Mon, 24 Aug 2020 10:24:20 +0200 (CEST) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 6D3651A034C; Mon, 24 Aug 2020 10:24:20 +0200 (CEST) Received: from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com [165.114.16.14]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id C75F71A0331; Mon, 24 Aug 2020 10:24:18 +0200 (CEST) Received: from lsv03196.swis.in-blr01.nxp.com (lsv03196.swis.in-blr01.nxp.com [92.120.146.192]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 86A604031B; Mon, 24 Aug 2020 10:24:16 +0200 (CEST) From: rohit.raj@nxp.com To: Anatoly Burakov Cc: dev@dpdk.org, Rohit Raj Date: Mon, 24 Aug 2020 13:54:13 +0530 Message-Id: <20200824082414.30535-2-rohit.raj@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200824082414.30535-1-rohit.raj@nxp.com> References: <20200824082414.30535-1-rohit.raj@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH v2 2/3] examples/multi_process: cleanup bus objects while terminating app X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Rohit Raj 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 --- .../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 #include #include +#include #include #include @@ -196,6 +197,14 @@ handle_packet(struct rte_mbuf *buf) } +static void +signal_handler(int signal) +{ + if (signal == SIGINT) + rte_eal_cleanup(); + exit(0); +} + /* * Application main function - loops through * receiving and processing packets. Never returns @@ -217,6 +226,8 @@ main(int argc, char *argv[]) argc -= retval; argv += retval; + signal(SIGINT, signal_handler); + if (parse_app_args(argc, argv) < 0) rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n"); diff --git a/examples/multi_process/client_server_mp/mp_server/main.c b/examples/multi_process/client_server_mp/mp_server/main.c index 280dab867..b0241cc20 100644 --- a/examples/multi_process/client_server_mp/mp_server/main.c +++ b/examples/multi_process/client_server_mp/mp_server/main.c @@ -275,11 +275,13 @@ signal_handler(int signal) { uint16_t port_id; - if (signal == SIGINT) + if (signal == SIGINT) { RTE_ETH_FOREACH_DEV(port_id) { rte_eth_dev_stop(port_id); rte_eth_dev_close(port_id); } + rte_eal_cleanup(); + } exit(0); } -- 2.17.1