From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <yuanhan.liu@linux.intel.com>
Received: from mga04.intel.com (mga04.intel.com [192.55.52.120])
 by dpdk.org (Postfix) with ESMTP id CC0705585
 for <dev@dpdk.org>; Thu, 22 Sep 2016 04:36:14 +0200 (CEST)
Received: from fmsmga005.fm.intel.com ([10.253.24.32])
 by fmsmga104.fm.intel.com with ESMTP; 21 Sep 2016 19:36:14 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.30,376,1470726000"; d="scan'208";a="11945704"
Received: from yliu-dev.sh.intel.com (HELO yliu-dev) ([10.239.67.162])
 by fmsmga005.fm.intel.com with ESMTP; 21 Sep 2016 19:36:13 -0700
Date: Thu, 22 Sep 2016 10:36:50 +0800
From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: Ciara Loftus <ciara.loftus@intel.com>, dev@dpdk.org
Message-ID: <20160922023650.GK23158@yliu-dev.sh.intel.com>
References: <1473774463-26966-1-git-send-email-ciara.loftus@intel.com>
 <2149205.E6pxXR7o4C@xps13>
 <20160918082718.GF23158@yliu-dev.sh.intel.com>
 <1673736.mOMazzh4h1@xps13>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1673736.mOMazzh4h1@xps13>
User-Agent: Mutt/1.5.23 (2014-03-12)
Subject: Re: [dpdk-dev] [PATCH] net/vhost: Add function to retreive the
 'vid' for a given port id
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <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, 22 Sep 2016 02:36:15 -0000

On Wed, Sep 21, 2016 at 03:07:51PM +0200, Thomas Monjalon wrote:
> 2016-09-18 16:27, Yuanhan Liu:
> > On Wed, Sep 14, 2016 at 10:35:53AM +0200, Thomas Monjalon wrote:
> > > 2016-09-14 15:21, Yuanhan Liu:
> > > > On Wed, Sep 14, 2016 at 09:10:48AM +0200, Thomas Monjalon wrote:
> > > > > 2016-09-14 12:43, Yuanhan Liu:
> > > > > > On Tue, Sep 13, 2016 at 05:10:09PM +0200, Thomas Monjalon wrote:
> > > > > > > 2016-09-13 14:47, Ciara Loftus:
> > > > > > > > In some cases when using the vHost PMD, certain vHost library functions
> > > > > > > > may still need to be accessed. One such example is the
> > > > > > > > rte_vhost_get_queue_num function which returns the number of virtqueues
> > > > > > > > reported by the guest - information which is not exposed by the PMD.
> > > > > > > > 
> > > > > > > > This commit introduces a new rte_eth_vhost function that returns the
> > > > > > > > 'vid' associated with a given port id. This allows the PMD user to call
> > > > > > > > vHost library functions which require the 'vid' value.
> > > > > > > 
> > > > > > > I think we should not add any API to the PMDs.
> > > > > > 
> > > > > > In general, I agree with you.
> > > > > > 
> > > > > > > Maybe you are looking for a generic API in ethdev.
> > > > > > 
> > > > > > But maybe it's a bit hard to define a "right" generic API here. For this
> > > > > > case, the generic API I can think of could be:
> > > > > > 
> > > > > > - an API to get queue num, like rte_eth_get_queue_enabled_num
> > > > > >   I barely know NIC pmd drivers, but I doubt it's useful/meaningful for them.
> > > > > > 
> > > > > > - an API to get a PMD driver private (or specific) data.
> > > > > >   For vhost-pmd, it's vid. Again, I don't know what it could be for other nic
> > > > > >   drivers.
> > > > > > 
> > > > > >   This one may be a better option here, because it expose a key field to
> > > > > >   the application, vid, with which the application can invoke more vhost
> > > > > >   APIs. And apparently, it's not feasible to try to define a generic API
> > > > > >   for some (if not each) vhost APIs.
> > > > > 
> > > > > There could be a similar need in other PMD.
> > > > > If we can get an opaque identifier of the device which is not the port id,
> > > > > we could call some specific functions of the driver not implemented in
> > > > > the generic ethdev API.
> > > > 
> > > > That means you have to add/export the PMD API first. Isn't it against what
> > > > you are proposing -- "I think we should not add any API to the PMDs" ;)
> > > 
> > > Yes you are totally right :)
> > > Except that in vhost case, we would not have any API in the PMD.
> > > But it would allow to have some specific API in other PMDs for the features
> > > which do not fit in a generic API.
> > 
> > So, does that mean you are okay with this patch now? I mean, okay to introduce
> > a vhost PMD API?
> 
> It means I would be in favor of introducing API in drivers for very specific
> features.
> In this case, I am not sure that retrieving an internal id is very specific.

It's not, instead, it's very generic. The "internal id" is actually the
public interface to vhost-user application, like "fd" to file APIs.

Instead of introducing a few specific wrappers/APIs, I'd prefer to
introduce a generic one to get the handle, and let the application to
call other vhost APIs.

	--yliu