From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] BugFix: VFIO never works Date: Fri, 10 Jul 2015 14:16:03 +0200 Message-ID: <26119720.PorKJiMAo6@xps13> References: <1436514439-4893-1-git-send-email-michael.qiu@intel.com> <20150710113826.GA10608@bricha3-MOBL3> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org To: Bruce Richardson , David Marchand , michael.qiu@intel.com, Tetsuya Mukawa Return-path: Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com [209.85.212.174]) by dpdk.org (Postfix) with ESMTP id 5E0A7E72 for ; Fri, 10 Jul 2015 14:17:12 +0200 (CEST) Received: by wifm2 with SMTP id m2so44821302wif.1 for ; Fri, 10 Jul 2015 05:17:12 -0700 (PDT) In-Reply-To: <20150710113826.GA10608@bricha3-MOBL3> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 2015-07-10 12:38, Bruce Richardson: > On Fri, Jul 10, 2015 at 01:25:49PM +0200, David Marchand wrote: > > On Fri, Jul 10, 2015 at 10:34 AM, Tetsuya Mukawa wrote: > > > On 2015/07/10 16:47, Michael Qiu wrote: > > > > Commit 35b3313e322b ("pci: merge mapping functions for linux and bsd") > > > > > > > > introduced a bug that all vfio will be > > > > blocked. > > > > > > > > Root cause is that VFIO_PRESENT is unaccessable in eal > > > > common level. > > > > > > > > This patch is to fix this. > > > > > > > > Signed-off-by: Michael Qiu [...] > > > > --- a/lib/librte_eal/common/eal_common_pci.c > > > > +++ b/lib/librte_eal/common/eal_common_pci.c > > > > @@ -146,10 +146,8 @@ pci_map_device(struct rte_pci_device *dev) > > > > /* try mapping the NIC resources using VFIO if it exists */ > > > > switch (dev->kdrv) { > > > > case RTE_KDRV_VFIO: > > > > -#ifdef VFIO_PRESENT > > > > if (pci_vfio_is_enabled()) > > > > ret = pci_vfio_map_resource(dev); > > > > -#endif > > > > > > > This is a common file, vfio is not available on BSD. > > I missed that during review. > > > > Did you test build on BSD ? > > > Just tried it. BSD build fails with this patch applied. > > Rather than using ifdefs, we could also look at providing dummy functions for > vfio in BSD. They would never be called by this code as drivers in BSD should > never have dev->kdrv == RTE_KDRV_VFIO. Why not implementing different versions of pci_map_device() and pci_unmap_device() in linuxapp and bsdapp EAL? They are only wrappers so no code would be duplicated.