From: Jerin Jacob <jerinjacobk@gmail.com>
To: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
Cc: Feifei Wang <feifei.wang2@arm.com>,
Harry van Haaren <harry.van.haaren@intel.com>,
Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>,
Nikhil Rao <nikhil.rao@intel.com>, "dev@dpdk.org" <dev@dpdk.org>,
"nd@arm.com" <nd@arm.com>, "stable@dpdk.org" <stable@dpdk.org>,
Ruifeng Wang <ruifeng.wang@arm.com>,
Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Subject: Re: [dpdk-stable] [dpdk-dev] [EXT] [PATCH v4 3/3] examples/eventdev: move eth stop to the end
Date: Tue, 26 Jan 2021 19:07:25 +0530 [thread overview]
Message-ID: <CALBAE1PQ_H87MuN61U_CgPwL=4mKSbwH9EB2LgsGszdK4BwjXw@mail.gmail.com> (raw)
In-Reply-To: <CO6PR18MB3828698F74087F744626FCCBDEBD9@CO6PR18MB3828.namprd18.prod.outlook.com>
On Mon, Jan 25, 2021 at 11:22 PM Pavan Nikhilesh Bhagavatula
<pbhagavatula@marvell.com> wrote:
>
> >Move eth stop code from "signal_handler" function to the end of
> >"main"
> >function. There are two reasons for this:
> >
> >First, this improves code maintenance and makes code look simple and
> >clear. Based on this change, after receiving the interrupt signal,
> >"fdata->done" is set as 1. Then the main thread will wait all worker
> >lcores to jump out of the loop. Finally, the main thread will stop and
> >then close eth dev port.
> >
> >Second, for older version, the main thread first stops eth dev port and
> >then waits the end of worker lcore. This may cause errors because it
> >may
> >stop the eth dev port which worker lcores are using. This moving
> >change
> >can fix this by waiting all worker threads to exit and then stop the
> >eth dev port.
> >
> >In the meanwhile, remove wmb in signal_handler.
> >
> >This is because when the main lcore receive the stop signal, it stores 1
> >into fdata->done. And then the worker lcores load "fdata->done" and
> >jump
> >out of the loop to stop running. Nothing should be stored after
> >updating
> >fdata->done, so the wmb is unnecessary.
> >
> >Fixes: 085edac2ca38 ("examples/eventdev_pipeline: support Tx
> >adapter")
> >Cc: pbhagavatula@marvell.com
> >Cc: stable@dpdk.org
> >
> >Suggested-by: Ruifeng Wang <ruifeng.wang@arm.com>
> >Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
> >Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> >Reviewed-by: Honnappa Nagarahalli
> ><honnappa.nagarahalli@arm.com>
> >Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
>
> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Series applied to dpdk-next-eventdev/for-main. Thanks.
>
> >---
> > examples/eventdev_pipeline/main.c | 16 ++++------------
> > 1 file changed, 4 insertions(+), 12 deletions(-)
> >
> >diff --git a/examples/eventdev_pipeline/main.c
> >b/examples/eventdev_pipeline/main.c
> >index 3526d4d3d..4621e8a89 100644
> >--- a/examples/eventdev_pipeline/main.c
> >+++ b/examples/eventdev_pipeline/main.c
> >@@ -311,7 +311,6 @@ static void
> > signal_handler(int signum)
> > {
> > static uint8_t once;
> >- uint16_t portid;
> >
> > if (fdata->done)
> > rte_exit(1, "Exiting on signal %d\n", signum);
> >@@ -322,17 +321,6 @@ signal_handler(int signum)
> > rte_event_dev_dump(0, stdout);
> > once = 1;
> > fdata->done = 1;
> >- rte_smp_wmb();
> >-
> >- RTE_ETH_FOREACH_DEV(portid) {
> >- rte_event_eth_rx_adapter_stop(portid);
> >- rte_event_eth_tx_adapter_stop(portid);
> >- if (rte_eth_dev_stop(portid) < 0)
> >- printf("Failed to stop port %u", portid);
> >- }
> >-
> >- rte_eal_mp_wait_lcore();
> >-
> > }
> > if (signum == SIGTSTP)
> > rte_event_dev_dump(0, stdout);
> >@@ -483,6 +471,10 @@ main(int argc, char **argv)
> > }
> >
> > RTE_ETH_FOREACH_DEV(portid) {
> >+ rte_event_eth_rx_adapter_stop(portid);
> >+ rte_event_eth_tx_adapter_stop(portid);
> >+ if (rte_eth_dev_stop(portid) < 0)
> >+ printf("Failed to stop port %u", portid);
> > rte_eth_dev_close(portid);
> > }
> >
> >--
> >2.25.1
>
prev parent reply other threads:[~2021-01-26 13:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-21 5:34 [dpdk-stable] [PATCH] " Feifei Wang
2020-12-21 9:32 ` [dpdk-stable] [PATCH v2] " Feifei Wang
2020-12-21 9:56 ` [dpdk-stable] [PATCH] " Van Haaren, Harry
2020-12-22 5:31 ` [dpdk-stable] 回复: " Feifei Wang
2021-01-05 5:14 ` [dpdk-stable] [PATCH v3] examples/eventdev: refactor ethdev port stop Feifei Wang
2021-01-05 10:09 ` [dpdk-stable] [EXT] " Pavan Nikhilesh Bhagavatula
2021-01-14 6:24 ` [dpdk-stable] 回复: " Feifei Wang
2021-01-14 8:50 ` Feifei Wang
[not found] ` <20210114103101.738262-1-feifei.wang2@arm.com>
2021-01-14 10:30 ` [dpdk-stable] [PATCH v4 1/3] doc: fix core enabled bug for eventdev pipeline example Feifei Wang
2021-01-14 10:31 ` [dpdk-stable] [PATCH v4 2/3] examples/eventdev: add info output for main core Feifei Wang
2021-01-14 10:31 ` [dpdk-stable] [PATCH v4 3/3] examples/eventdev: move eth stop to the end Feifei Wang
2021-01-25 17:51 ` [dpdk-stable] [EXT] " Pavan Nikhilesh Bhagavatula
2021-01-26 13:37 ` Jerin Jacob [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CALBAE1PQ_H87MuN61U_CgPwL=4mKSbwH9EB2LgsGszdK4BwjXw@mail.gmail.com' \
--to=jerinjacobk@gmail.com \
--cc=dev@dpdk.org \
--cc=feifei.wang2@arm.com \
--cc=harry.van.haaren@intel.com \
--cc=honnappa.nagarahalli@arm.com \
--cc=nd@arm.com \
--cc=nikhil.rao@intel.com \
--cc=pbhagavatula@caviumnetworks.com \
--cc=pbhagavatula@marvell.com \
--cc=ruifeng.wang@arm.com \
--cc=stable@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).