On Fri, Dec 20, 2019 at 7:57 PM <pbhagavat...@marvell.com> wrote: > > From: Pavan Nikhilesh <pbhagavat...@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: sta...@dpdk.org > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@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 >