From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C4E8CA00BE; Fri, 12 Jun 2020 11:38:38 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 104582A62; Fri, 12 Jun 2020 11:38:38 +0200 (CEST) Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) by dpdk.org (Postfix) with ESMTP id 51E941B19 for ; Fri, 12 Jun 2020 11:38:37 +0200 (CEST) X-Originating-IP: 86.246.31.132 Received: from u256.net (lfbn-idf2-1-566-132.w86-246.abo.wanadoo.fr [86.246.31.132]) (Authenticated sender: grive@u256.net) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 02E1660012; Fri, 12 Jun 2020 09:38:34 +0000 (UTC) Date: Fri, 12 Jun 2020 11:38:29 +0200 From: =?utf-8?Q?Ga=C3=ABtan?= Rivet To: Maxime Coquelin Cc: dev@dpdk.org, matan@mellanox.com, xiao.w.wang@intel.com, zhihong.wang@intel.com, xiaolong.ye@intel.com, chenbo.xia@intel.com, david.marchand@redhat.com, amorenoz@redhat.com, shreyansh.jain@nxp.com, viacheslavo@mellanox.com, hemant.agrawal@nxp.com, sachin.saxena@nxp.com Message-ID: <20200612093829.6l43srtrbi7sdbfe@u256.net> References: <20200611213748.1967029-1-maxime.coquelin@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200611213748.1967029-1-maxime.coquelin@redhat.com> Subject: Re: [dpdk-dev] [PATCH 00/14] vDPA API and framework rework X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hello Maxime, On 11/06/20 23:37 +0200, Maxime Coquelin wrote: > This series aims to rework the vDPA framework and > its API to better fit into the DPDK device model > and also be more easily consumable by applications. > > Main changes are creating a device class for vDPA, > which enables applications to iterate vDPA devices > in a generic way: > > RTE_DEV_FOREACH(dev, "class=vdpa", it) {...} > That's neat, I was wondering if the class layer would become useful someday. > Also the notion of vDPA device ID is replaced > with both application & drivers using the > rte_vdpa_device as reference. Doing that also > made possible to store devices references into > a linked list instead of a static array. Last > patch makes the rte_vdpa_device structure > content opaque to the applications, creating > a clear barrier between application visible > API and drivers visble ones. > > The first two patches fixes issues in some > busses iterators, causing segmentation faults > when iterating only on a device class. > > While reviewing, if you notice further possible > improvements, please let me know. Target is to > remove the experimental tag from vDPA APIs in > next LTS release. > > Thanks to David for giving me some ideas of > improvements! > I can't really comment on vhost parts and vdpa implems, but overall this seems a good idea to me. > Maxime Coquelin (14): > bus/dpaa: fix null pointer dereference > bus/fslmc: fix null pointer dereference > vhost: introduce vDPA devices class > vhost: make vDPA framework bus agnostic > vhost: replace device ID in vDPA ops > vhost: replace vDPA device ID in Vhost > vhost: replace device ID in applications > vhost: remove useless vDPA API > vhost: use linked-list for vDPA devices > vhost: introduce wrappers for some vDPA ops > examples/vdpa: use new wrappers instead of ops > examples/vdpa: remove useless device count > vhost: remove vDPA device count API > vhost: split vDPA header file > > drivers/bus/dpaa/dpaa_bus.c | 5 + > drivers/bus/fslmc/fslmc_bus.c | 5 + > drivers/vdpa/ifc/ifcvf_vdpa.c | 84 ++++----- > drivers/vdpa/mlx5/mlx5_vdpa.c | 85 +++++---- > drivers/vdpa/mlx5/mlx5_vdpa.h | 5 +- > examples/vdpa/main.c | 108 +++++------ > lib/librte_vhost/Makefile | 3 +- > lib/librte_vhost/meson.build | 3 +- > lib/librte_vhost/rte_vdpa.h | 172 ++++-------------- > lib/librte_vhost/rte_vdpa_dev.h | 135 ++++++++++++++ > lib/librte_vhost/rte_vhost.h | 20 ++- > lib/librte_vhost/rte_vhost_version.map | 11 +- > lib/librte_vhost/socket.c | 48 ++--- > lib/librte_vhost/vdpa.c | 238 ++++++++++++++++--------- > lib/librte_vhost/vhost.c | 19 +- > lib/librte_vhost/vhost.h | 9 +- > lib/librte_vhost/vhost_user.c | 28 +-- > 17 files changed, 545 insertions(+), 433 deletions(-) > create mode 100644 lib/librte_vhost/rte_vdpa_dev.h > > -- > 2.26.2 > -- Gaëtan