patches for DPDK stable branches
 help / color / Atom feed
* [dpdk-stable] [dpdk-dev] [PATCH] examples/l2fwd-event: fix event device config
@ 2019-12-20 14:27 pbhagavatula
  2020-01-14 19:20 ` Jerin Jacob
  0 siblings, 1 reply; 2+ messages in thread
From: pbhagavatula @ 2019-12-20 14:27 UTC (permalink / raw)
  To: jerinj, Marko Kovacevic, Ori Kam, Bruce Richardson, Radu Nicolau,
	Akhil Goyal, Tomasz Kantecki, Sunil Kumar Kori, Pavan Nikhilesh
  Cc: dev, stable

From: Pavan Nikhilesh <pbhagavatula@marvell.com>

Always enable implicit release since we don't support explicit release
in datapath.
Master lcore is used only for printing stats so don't allocate event
port for it.
Fix service launch for event device without distributed scheduling.

Fixes: bcb6f841d42a ("examples/l2fwd-event: setup service core")
Cc: stable@dpdk.org

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 examples/l2fwd-event/l2fwd_event.c               |  2 +-
 examples/l2fwd-event/l2fwd_event_generic.c       |  9 ++++++---
 examples/l2fwd-event/l2fwd_event_internal_port.c | 11 +++++------
 3 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/examples/l2fwd-event/l2fwd_event.c b/examples/l2fwd-event/l2fwd_event.c
index 0379c580d..38d590c14 100644
--- a/examples/l2fwd-event/l2fwd_event.c
+++ b/examples/l2fwd-event/l2fwd_event.c
@@ -67,7 +67,7 @@ l2fwd_event_service_setup(struct l2fwd_resources *rsrc)
 	int ret, i;
 
 	rte_event_dev_info_get(evt_rsrc->event_d_id, &evdev_info);
-	if (evdev_info.event_dev_cap  & RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED) {
+	if (!(evdev_info.event_dev_cap & RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED)) {
 		ret = rte_event_dev_service_id_get(evt_rsrc->event_d_id,
 				&service_id);
 		if (ret != -ESRCH && ret != 0)
diff --git a/examples/l2fwd-event/l2fwd_event_generic.c b/examples/l2fwd-event/l2fwd_event_generic.c
index b7e467c1e..b07306a17 100644
--- a/examples/l2fwd-event/l2fwd_event_generic.c
+++ b/examples/l2fwd-event/l2fwd_event_generic.c
@@ -42,8 +42,10 @@ l2fwd_event_device_setup_generic(struct l2fwd_resources *rsrc)
 
 	/* Event device configurtion */
 	rte_event_dev_info_get(event_d_id, &dev_info);
-	evt_rsrc->disable_implicit_release = !!(dev_info.event_dev_cap &
-				    RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE);
+
+	/* Enable implicit release */
+	if (dev_info.event_dev_cap & RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE)
+		evt_rsrc->disable_implicit_release = 0;
 
 	if (dev_info.event_dev_cap & RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES)
 		event_queue_cfg |= RTE_EVENT_QUEUE_CFG_ALL_TYPES;
@@ -70,7 +72,8 @@ l2fwd_event_device_setup_generic(struct l2fwd_resources *rsrc)
 		event_d_conf.nb_event_port_enqueue_depth =
 				dev_info.max_event_port_enqueue_depth;
 
-	num_workers = rte_lcore_count() - rte_service_lcore_count();
+	/* Ignore Master core and service cores. */
+	num_workers = rte_lcore_count() - 1 - rte_service_lcore_count();
 	if (dev_info.max_event_ports < num_workers)
 		num_workers = dev_info.max_event_ports;
 
diff --git a/examples/l2fwd-event/l2fwd_event_internal_port.c b/examples/l2fwd-event/l2fwd_event_internal_port.c
index b382763dd..5e6e8598a 100644
--- a/examples/l2fwd-event/l2fwd_event_internal_port.c
+++ b/examples/l2fwd-event/l2fwd_event_internal_port.c
@@ -27,7 +27,6 @@ l2fwd_event_device_setup_internal_port(struct l2fwd_resources *rsrc)
 		.nb_event_port_enqueue_depth = 128
 	};
 	struct rte_event_dev_info dev_info;
-	uint8_t disable_implicit_release;
 	const uint8_t event_d_id = 0; /* Always use first event device only */
 	uint32_t event_queue_cfg = 0;
 	uint16_t ethdev_count = 0;
@@ -44,10 +43,9 @@ l2fwd_event_device_setup_internal_port(struct l2fwd_resources *rsrc)
 	/* Event device configurtion */
 	rte_event_dev_info_get(event_d_id, &dev_info);
 
-	disable_implicit_release = !!(dev_info.event_dev_cap &
-				    RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE);
-	evt_rsrc->disable_implicit_release =
-						disable_implicit_release;
+	/* Enable implicit release */
+	if (dev_info.event_dev_cap & RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE)
+		evt_rsrc->disable_implicit_release = 0;
 
 	if (dev_info.event_dev_cap & RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES)
 		event_queue_cfg |= RTE_EVENT_QUEUE_CFG_ALL_TYPES;
@@ -73,7 +71,8 @@ l2fwd_event_device_setup_internal_port(struct l2fwd_resources *rsrc)
 		event_d_conf.nb_event_port_enqueue_depth =
 				dev_info.max_event_port_enqueue_depth;
 
-	num_workers = rte_lcore_count();
+	/* Ignore Master core. */
+	num_workers = rte_lcore_count() - 1;
 	if (dev_info.max_event_ports < num_workers)
 		num_workers = dev_info.max_event_ports;
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dpdk-stable] [dpdk-dev] [PATCH] examples/l2fwd-event: fix event device config
  2019-12-20 14:27 [dpdk-stable] [dpdk-dev] [PATCH] examples/l2fwd-event: fix event device config pbhagavatula
@ 2020-01-14 19:20 ` Jerin Jacob
  0 siblings, 0 replies; 2+ messages in thread
From: Jerin Jacob @ 2020-01-14 19:20 UTC (permalink / raw)
  To: Pavan Nikhilesh
  Cc: Jerin Jacob, Marko Kovacevic, Ori Kam, Bruce Richardson,
	Radu Nicolau, Akhil Goyal, Tomasz Kantecki, Sunil Kumar Kori,
	dpdk-dev, dpdk stable

On Fri, Dec 20, 2019 at 7:57 PM <pbhagavatula@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Always enable implicit release since we don't support explicit release
> in datapath.
> Master lcore is used only for printing stats so don't allocate event
> port for it.
> Fix service launch for event device without distributed scheduling.
>
> Fixes: bcb6f841d42a ("examples/l2fwd-event: setup service core")
> Cc: stable@dpdk.org
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>

Applied to dpdk-next-eventdev/master. Thanks.


> ---
>  examples/l2fwd-event/l2fwd_event.c               |  2 +-
>  examples/l2fwd-event/l2fwd_event_generic.c       |  9 ++++++---
>  examples/l2fwd-event/l2fwd_event_internal_port.c | 11 +++++------
>  3 files changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/examples/l2fwd-event/l2fwd_event.c b/examples/l2fwd-event/l2fwd_event.c
> index 0379c580d..38d590c14 100644
> --- a/examples/l2fwd-event/l2fwd_event.c
> +++ b/examples/l2fwd-event/l2fwd_event.c
> @@ -67,7 +67,7 @@ l2fwd_event_service_setup(struct l2fwd_resources *rsrc)
>         int ret, i;
>
>         rte_event_dev_info_get(evt_rsrc->event_d_id, &evdev_info);
> -       if (evdev_info.event_dev_cap  & RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED) {
> +       if (!(evdev_info.event_dev_cap & RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED)) {
>                 ret = rte_event_dev_service_id_get(evt_rsrc->event_d_id,
>                                 &service_id);
>                 if (ret != -ESRCH && ret != 0)
> diff --git a/examples/l2fwd-event/l2fwd_event_generic.c b/examples/l2fwd-event/l2fwd_event_generic.c
> index b7e467c1e..b07306a17 100644
> --- a/examples/l2fwd-event/l2fwd_event_generic.c
> +++ b/examples/l2fwd-event/l2fwd_event_generic.c
> @@ -42,8 +42,10 @@ l2fwd_event_device_setup_generic(struct l2fwd_resources *rsrc)
>
>         /* Event device configurtion */
>         rte_event_dev_info_get(event_d_id, &dev_info);
> -       evt_rsrc->disable_implicit_release = !!(dev_info.event_dev_cap &
> -                                   RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE);
> +
> +       /* Enable implicit release */
> +       if (dev_info.event_dev_cap & RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE)
> +               evt_rsrc->disable_implicit_release = 0;
>
>         if (dev_info.event_dev_cap & RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES)
>                 event_queue_cfg |= RTE_EVENT_QUEUE_CFG_ALL_TYPES;
> @@ -70,7 +72,8 @@ l2fwd_event_device_setup_generic(struct l2fwd_resources *rsrc)
>                 event_d_conf.nb_event_port_enqueue_depth =
>                                 dev_info.max_event_port_enqueue_depth;
>
> -       num_workers = rte_lcore_count() - rte_service_lcore_count();
> +       /* Ignore Master core and service cores. */
> +       num_workers = rte_lcore_count() - 1 - rte_service_lcore_count();
>         if (dev_info.max_event_ports < num_workers)
>                 num_workers = dev_info.max_event_ports;
>
> diff --git a/examples/l2fwd-event/l2fwd_event_internal_port.c b/examples/l2fwd-event/l2fwd_event_internal_port.c
> index b382763dd..5e6e8598a 100644
> --- a/examples/l2fwd-event/l2fwd_event_internal_port.c
> +++ b/examples/l2fwd-event/l2fwd_event_internal_port.c
> @@ -27,7 +27,6 @@ l2fwd_event_device_setup_internal_port(struct l2fwd_resources *rsrc)
>                 .nb_event_port_enqueue_depth = 128
>         };
>         struct rte_event_dev_info dev_info;
> -       uint8_t disable_implicit_release;
>         const uint8_t event_d_id = 0; /* Always use first event device only */
>         uint32_t event_queue_cfg = 0;
>         uint16_t ethdev_count = 0;
> @@ -44,10 +43,9 @@ l2fwd_event_device_setup_internal_port(struct l2fwd_resources *rsrc)
>         /* Event device configurtion */
>         rte_event_dev_info_get(event_d_id, &dev_info);
>
> -       disable_implicit_release = !!(dev_info.event_dev_cap &
> -                                   RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE);
> -       evt_rsrc->disable_implicit_release =
> -                                               disable_implicit_release;
> +       /* Enable implicit release */
> +       if (dev_info.event_dev_cap & RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE)
> +               evt_rsrc->disable_implicit_release = 0;
>
>         if (dev_info.event_dev_cap & RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES)
>                 event_queue_cfg |= RTE_EVENT_QUEUE_CFG_ALL_TYPES;
> @@ -73,7 +71,8 @@ l2fwd_event_device_setup_internal_port(struct l2fwd_resources *rsrc)
>                 event_d_conf.nb_event_port_enqueue_depth =
>                                 dev_info.max_event_port_enqueue_depth;
>
> -       num_workers = rte_lcore_count();
> +       /* Ignore Master core. */
> +       num_workers = rte_lcore_count() - 1;
>         if (dev_info.max_event_ports < num_workers)
>                 num_workers = dev_info.max_event_ports;
>
> --
> 2.17.1
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, back to index

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-20 14:27 [dpdk-stable] [dpdk-dev] [PATCH] examples/l2fwd-event: fix event device config pbhagavatula
2020-01-14 19:20 ` Jerin Jacob

patches for DPDK stable branches

Archives are clonable:
	git clone --mirror http://inbox.dpdk.org/stable/0 stable/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 stable stable/ http://inbox.dpdk.org/stable \
		stable@dpdk.org
	public-inbox-index stable


Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.stable


AGPL code for this site: git clone https://public-inbox.org/ public-inbox