From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [PATCH v3] eventdev: fix links map initialization for SW PMD Date: Mon, 13 Mar 2017 14:22:30 +0530 Message-ID: <20170313085229.lp7kvwfwpqjwfz5e@localhost.localdomain> References: <1488430056-32055-1-git-send-email-gage.eads@intel.com> <1488903900-27056-1-git-send-email-gage.eads@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org, bruce.richardson@intel.com, hemant.agrawal@nxp.com, harry.van.haaren@intel.com, nipun.gupta@nxp.com To: Gage Eads Return-path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0077.outbound.protection.outlook.com [104.47.37.77]) by dpdk.org (Postfix) with ESMTP id 5C098A10 for ; Mon, 13 Mar 2017 09:52:53 +0100 (CET) Content-Disposition: inline In-Reply-To: <1488903900-27056-1-git-send-email-gage.eads@intel.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" On Tue, Mar 07, 2017 at 10:25:00AM -0600, Gage Eads wrote: > This patch initializes the links_map array entries to > EVENT_QUEUE_SERVICE_PRIORITY_INVALID, as expected by > rte_event_port_links_get(). This is necessary for the sw eventdev PMD, > which does not initialize links_map when rte_event_port_setup() calls > rte_event_port_unlink(). > > Fixes: e36bf651b3ca2 ("eventdev: implement the northbound APIs") > > Signed-off-by: Gage Eads > Acked-by: Jerin Jacob Applied to dpdk-next-eventdev/master after fixing check-git-log.sh warning http://dpdk.org/ml/archives/test-report/2017-March/013029.html Thanks. > --- > v2: Refined commit message's description of patch > v3: Fixed check-git-log.sh errors, added Jerin's Acked-by > > lib/librte_eventdev/rte_eventdev.c | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c > index 68bfc3b..b8cd92b 100644 > --- a/lib/librte_eventdev/rte_eventdev.c > +++ b/lib/librte_eventdev/rte_eventdev.c > @@ -190,6 +190,8 @@ rte_event_dev_queue_config(struct rte_eventdev *dev, uint8_t nb_queues) > return 0; > } > > +#define EVENT_QUEUE_SERVICE_PRIORITY_INVALID (0xdead) > + > static inline int > rte_event_dev_port_config(struct rte_eventdev *dev, uint8_t nb_ports) > { > @@ -251,6 +253,9 @@ rte_event_dev_port_config(struct rte_eventdev *dev, uint8_t nb_ports) > "nb_ports %u", nb_ports); > return -(ENOMEM); > } > + for (i = 0; i < nb_ports * RTE_EVENT_MAX_QUEUES_PER_DEV; i++) > + dev->data->links_map[i] = > + EVENT_QUEUE_SERVICE_PRIORITY_INVALID; > } else if (dev->data->ports != NULL && nb_ports != 0) {/* re-config */ > RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->port_release, -ENOTSUP); > > @@ -305,6 +310,10 @@ rte_event_dev_port_config(struct rte_eventdev *dev, uint8_t nb_ports) > > if (nb_ports > old_nb_ports) { > uint8_t new_ps = nb_ports - old_nb_ports; > + unsigned int old_links_map_end = > + old_nb_ports * RTE_EVENT_MAX_QUEUES_PER_DEV; > + unsigned int links_map_end = > + nb_ports * RTE_EVENT_MAX_QUEUES_PER_DEV; > > memset(ports + old_nb_ports, 0, > sizeof(ports[0]) * new_ps); > @@ -312,9 +321,9 @@ rte_event_dev_port_config(struct rte_eventdev *dev, uint8_t nb_ports) > sizeof(ports_dequeue_depth[0]) * new_ps); > memset(ports_enqueue_depth + old_nb_ports, 0, > sizeof(ports_enqueue_depth[0]) * new_ps); > - memset(links_map + > - (old_nb_ports * RTE_EVENT_MAX_QUEUES_PER_DEV), > - 0, sizeof(ports_enqueue_depth[0]) * new_ps); > + for (i = old_links_map_end; i < links_map_end; i++) > + links_map[i] = > + EVENT_QUEUE_SERVICE_PRIORITY_INVALID; > } > > dev->data->ports = ports; > @@ -815,8 +824,6 @@ rte_event_port_link(uint8_t dev_id, uint8_t port_id, > return diag; > } > > -#define EVENT_QUEUE_SERVICE_PRIORITY_INVALID (0xdead) > - > int > rte_event_port_unlink(uint8_t dev_id, uint8_t port_id, > uint8_t queues[], uint16_t nb_unlinks) > -- > 2.7.4 >