From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tetsuya Mukawa Subject: Re: [PATCH] BugFix: VFIO never works Date: Sat, 11 Jul 2015 15:32:02 +0900 Message-ID: <55A0B862.5070905@igel.co.jp> References: <1436514439-4893-1-git-send-email-michael.qiu@intel.com> <20150710113826.GA10608@bricha3-MOBL3> <26119720.PorKJiMAo6@xps13> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org To: Thomas Monjalon Return-path: Received: from mail-pd0-f180.google.com (mail-pd0-f180.google.com [209.85.192.180]) by dpdk.org (Postfix) with ESMTP id C50F8374C for ; Sat, 11 Jul 2015 08:32:06 +0200 (CEST) Received: by pdbep18 with SMTP id ep18so195684311pdb.1 for ; Fri, 10 Jul 2015 23:32:06 -0700 (PDT) In-Reply-To: <26119720.PorKJiMAo6@xps13> 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" On 2015/07/10 21:16, Thomas Monjalon wrote: > 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. Thanks for comment. Right, it should be. I fixed like above. Tetsuya