From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [PATCH] app/eventdev: use proper teardown sequence Date: Wed, 18 Jul 2018 23:06:15 +0530 Message-ID: <20180718173613.GC29741@jerin> References: <20180717143307.5270-1-pbhagavatula@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: santosh.shukla@caviumnetworks.com, dev@dpdk.org To: Pavan Nikhilesh Return-path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0089.outbound.protection.outlook.com [104.47.41.89]) by dpdk.org (Postfix) with ESMTP id 9C1F723C for ; Wed, 18 Jul 2018 19:36:38 +0200 (CEST) Content-Disposition: inline In-Reply-To: <20180717143307.5270-1-pbhagavatula@caviumnetworks.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" -----Original Message----- > Date: Tue, 17 Jul 2018 20:03:07 +0530 > From: Pavan Nikhilesh > To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com > Cc: dev@dpdk.org, Pavan Nikhilesh > Subject: [dpdk-dev] [PATCH] app/eventdev: use proper teardown sequence > X-Mailer: git-send-email 2.18.0 > > Use proper teardown sequence when SIGINT is caught to prevent > eventdev from going into undefined state. > > Signed-off-by: Pavan Nikhilesh > --- > app/test-eventdev/evt_main.c | 6 +++++- > app/test-eventdev/test_pipeline_common.c | 1 - > 2 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/app/test-eventdev/evt_main.c b/app/test-eventdev/evt_main.c > index 57bb94570..bc25fb386 100644 > --- a/app/test-eventdev/evt_main.c > +++ b/app/test-eventdev/evt_main.c > @@ -25,8 +25,12 @@ signal_handler(int signum) > signum); > /* request all lcores to exit from the main loop */ > *(int *)test->test_priv = true; > - rte_wmb(); > > + if (test->ops.ethdev_destroy) > + test->ops.ethdev_destroy(test, &opt); I think, stopping the producer should be enough to have proper tear down sequence, as, When producer stops, the dequeue eventually will not have the events and it will exit properly. > + > + rte_event_dev_stop(opt.dev_id); > + rte_wmb(); > rte_eal_mp_wait_lcore(); > > if (test->ops.test_result) > diff --git a/app/test-eventdev/test_pipeline_common.c b/app/test-eventdev/test_pipeline_common.c > index 719518ff3..70fd04517 100644 > --- a/app/test-eventdev/test_pipeline_common.c > +++ b/app/test-eventdev/test_pipeline_common.c > @@ -476,7 +476,6 @@ pipeline_eventdev_destroy(struct evt_test *test, struct evt_options *opt) > { > RTE_SET_USED(test); > > - rte_event_dev_stop(opt->dev_id); > rte_event_dev_close(opt->dev_id); > } > > -- > 2.18.0 >