From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <bruce.richardson@intel.com>
Received: from mga09.intel.com (mga09.intel.com [134.134.136.24])
 by dpdk.org (Postfix) with ESMTP id 787B7106A
 for <dev@dpdk.org>; Thu,  8 Dec 2016 10:59:44 +0100 (CET)
Received: from orsmga004.jf.intel.com ([10.7.209.38])
 by orsmga102.jf.intel.com with ESMTP; 08 Dec 2016 01:59:40 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.33,318,1477983600"; d="scan'208";a="38187923"
Received: from bricha3-mobl3.ger.corp.intel.com ([10.237.221.64])
 by orsmga004.jf.intel.com with SMTP; 08 Dec 2016 01:59:38 -0800
Received: by  (sSMTP sendmail emulation); Thu, 08 Dec 2016 09:59:37 +0000
Date: Thu, 8 Dec 2016 09:59:37 +0000
From: Bruce Richardson <bruce.richardson@intel.com>
To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Cc: dev@dpdk.org, thomas.monjalon@6wind.com, hemant.agrawal@nxp.com,
 gage.eads@intel.com, harry.van.haaren@intel.com
Message-ID: <20161208095937.GC55440@bricha3-MOBL3.ger.corp.intel.com>
References: <1479447902-3700-2-git-send-email-jerin.jacob@caviumnetworks.com>
 <1480996340-29871-1-git-send-email-jerin.jacob@caviumnetworks.com>
 <1480996340-29871-4-git-send-email-jerin.jacob@caviumnetworks.com>
 <20161206171712.GC22224@bricha3-MOBL3.ger.corp.intel.com>
 <20161207170256.GA4930@svelivela-lt.caveonetworks.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20161207170256.GA4930@svelivela-lt.caveonetworks.com>
Organization: Intel Research and =?iso-8859-1?Q?De=ACvel?=
 =?iso-8859-1?Q?opment?= Ireland Ltd.
User-Agent: Mutt/1.7.1 (2016-10-04)
Subject: Re: [dpdk-dev] [PATCH v2 3/6] eventdev: implement the northbound
	APIs
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 08 Dec 2016 09:59:44 -0000

On Wed, Dec 07, 2016 at 10:32:56PM +0530, Jerin Jacob wrote:
> 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.jacob@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
> 
It's not a big deal for us - just an extra assignment we need to do in
our code path, so if it provides benefit for your driver, leave it in. I
just found it strange that that array was never really used by the
eventdev APIs, which is why I thought it might be better as internal
only.

/Bruce