On Tue, Dec 06, 2016 at 05:17:12PM +0000, Bruce Richardson wrote: > On Tue, Dec 06, 2016 at 09:22:17AM +0530, Jerin Jacob wrote: > > This patch implements northbound eventdev API interface using > > southbond driver interface > > > > Signed-off-by: Jerin Jacob <jerin.ja...@caviumnetworks.com> > > --- > > + /* Re allocate memory to store queue priority */ > > + queues_prio = dev->data->queues_prio; > > + queues_prio = rte_realloc(queues_prio, > > + sizeof(queues_prio[0]) * nb_queues, > > + RTE_CACHE_LINE_SIZE); > > + if (queues_prio == NULL) { > > + RTE_EDEV_LOG_ERR("failed to realloc queue priority," > > + " nb_queues %u", nb_queues); > > + return -(ENOMEM); > > + } > > + dev->data->queues_prio = queues_prio; > > + > > + if (nb_queues > old_nb_queues) { > > + uint8_t new_qs = nb_queues - old_nb_queues; > > + > > + memset(queues + old_nb_queues, 0, > > + sizeof(queues[0]) * new_qs); > > + memset(queues_prio + old_nb_queues, 0, > > + sizeof(queues_prio[0]) * new_qs); > > + } > > + } else if (dev->data->queues != NULL && nb_queues == 0) { > > + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->queue_release, -ENOTSUP); > > + > > + queues = dev->data->queues; > > + for (i = nb_queues; i < old_nb_queues; i++) > > + (*dev->dev_ops->queue_release)(queues[i]); > > + } > > + > > + dev->data->nb_queues = nb_queues; > > + return 0; > > +} > > + > While the ports array makes sense to have available at the top level of > the API and allocated from rte_eventdev.c, I'm not seeing what the value > of having the queues allocated at that level is. The only time the queue > array is indexed by eventdev layer is when releasing a queue. Therefore, > I suggest just saving the number of queues for sanity checking and let > the queue array allocation and freeing be handled entirely in the > drivers themselves.
I thought it would be useful for other drivers. I agree, If something is not common across all the driver lets remove it from common code. I will remove it in v3 > > /Bruce