All of lore.kernel.org
 help / color / mirror / Atom feed
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-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
>

      reply	other threads:[~2021-01-26 13:37 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-21  5:34 [dpdk-dev] [PATCH] examples/eventdev: move eth stop to the end Feifei Wang
2020-12-21  9:32 ` [dpdk-dev] [PATCH v2] " Feifei Wang
2020-12-21  9:56 ` [dpdk-dev] [PATCH] " Van Haaren, Harry
2020-12-22  5:31   ` [dpdk-dev] 回复: " Feifei Wang
2021-01-05  5:14 ` [dpdk-dev] [PATCH v3] examples/eventdev: refactor ethdev port stop Feifei Wang
2021-01-05 10:09   ` [dpdk-dev] [EXT] " Pavan Nikhilesh Bhagavatula
2021-01-14  6:24     ` [dpdk-dev] 回复: " Feifei Wang
2021-01-14  8:50       ` Feifei Wang
2021-01-14 10:30 ` [dpdk-dev] [PATCH v4 0/3] fix bugs for examples/evnentdev Feifei Wang
2021-01-14 10:30   ` [dpdk-dev] [PATCH v4 1/3] doc: fix core enabled bug for eventdev pipeline example Feifei Wang
2021-01-14 10:31   ` [dpdk-dev] [PATCH v4 2/3] examples/eventdev: add info output for main core Feifei Wang
2021-01-14 10:31   ` [dpdk-dev] [PATCH v4 3/3] examples/eventdev: move eth stop to the end Feifei Wang
2021-01-25 17:51     ` [dpdk-dev] [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.