Tested-by: Zhou, JunX W <junx.w.z...@intel.com>

-----Original Message-----
From: Van Haaren, Harry 
Sent: Tuesday, May 5, 2020 5:39 PM
To: dev@dpdk.org
Cc: Zhou, JunX W <junx.w.z...@intel.com>; Van Haaren, Harry 
<harry.van.haa...@intel.com>; sta...@dpdk.org; pbhagavat...@caviumnetworks.com
Subject: [PATCH] examples/eventdev_pipeline: fix segfault on exit

This commit fixes a segfault on exit by using Ctrl^C if the master lcore was 
also being used as a worker core. The root cause of the issue was that the 
interrupt handler was cleaning up resources such as the ethdev and eventdev 
ports, and once the interrupt handler would return, that thread would continue 
working as an eventdev worker, and dereference the memory which just had free() 
called on it.

Fixed by moving the cleanup code from the interrupt handler to the cleanup 
stage of main(), which the master thread will execute once it has returned from 
its worker() functionality.

Fixes: 085edac2ca38 ("examples/eventdev_pipeline: support Tx adapter")

Signed-off-by: Harry van Haaren <harry.van.haa...@intel.com>

---

Cc: sta...@dpdk.org
Cc: pbhagavat...@caviumnetworks.com
---
 examples/eventdev_pipeline/main.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/examples/eventdev_pipeline/main.c 
b/examples/eventdev_pipeline/main.c
index d0da51b1c..21958269f 100644
--- a/examples/eventdev_pipeline/main.c
+++ b/examples/eventdev_pipeline/main.c
@@ -301,12 +301,6 @@ signal_handler(int signum)
 
                rte_eal_mp_wait_lcore();
 
-               RTE_ETH_FOREACH_DEV(portid) {
-                       rte_eth_dev_close(portid);
-               }
-
-               rte_event_dev_stop(0);
-               rte_event_dev_close(0);
        }
        if (signum == SIGTSTP)
                rte_event_dev_dump(0, stdout);
@@ -469,5 +463,14 @@ main(int argc, char **argv)
 
        }
 
+       RTE_ETH_FOREACH_DEV(portid) {
+               rte_eth_dev_close(portid);
+       }
+
+       rte_event_dev_stop(0);
+       rte_event_dev_close(0);
+
+       rte_eal_cleanup();
+
        return 0;
 }
--
2.17.1

Reply via email to