From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qa0-f53.google.com (mail-qa0-f53.google.com [209.85.216.53]) by dpdk.org (Postfix) with ESMTP id 994A67E1F for ; Fri, 5 Dec 2014 20:00:09 +0100 (CET) Received: by mail-qa0-f53.google.com with SMTP id bm13so843584qab.26 for ; Fri, 05 Dec 2014 11:00:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=v+EFEM+APEo/Ep2GalXhgg4fLfk0QIio9oBPYCewmVk=; b=LZ+x/1FYFldEz20B+ietXf2+6SsCen1lq4SsWjWddHHUMgrv3RdD+wkfSySca4PTqB igU0DtVSq1UIXhzHOa7QHvclZPZGVnc4YFZCd/h6dE/pw++aEnMClAuTsekDJ8kbnavz 8DqjIDYnBZ7bwDu6q0UcGCSWoJIDRIn/9Vyys2aetuuy2mVDXsik1dDFt1lCjizihe1s Bje4zbJ2wMvI4tUQGHjidTI6JfF8b5RWWii+yUUoK9MMBRCzue4Hq7gFn9yJQxZ1kElV UEbuR0YCTeZHIrru8bJ7dO5ppwCBV1fp0TtI2lzvyQIMbT1WlFIVqbjcUgkAsinUCn58 6WWA== MIME-Version: 1.0 X-Received: by 10.224.127.74 with SMTP id f10mr28095040qas.16.1417806009067; Fri, 05 Dec 2014 11:00:09 -0800 (PST) Received: by 10.229.170.14 with HTTP; Fri, 5 Dec 2014 11:00:09 -0800 (PST) Date: Sat, 6 Dec 2014 00:30:09 +0530 Message-ID: From: Aashima Arora To: dev@dpdk.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] Accessing a Virtual Function Driver in Guest Machine via VFIO X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Dec 2014 19:00:10 -0000 Hi, I was trying to access the pci config space(BAR) of the virtual function device visible in the virtual machine, similar to what DPDK does on host via both UIO and VFIO. Did the following steps. 1. Bound PF Drivers to ixgbe and spawned virtual function drivers , bound them to vfio-pci and set their mac addresses via ip link. Ran Qemu and assigned the VF Device using vfio-pci device assignment and initialized the virtual machine. insmod igb max_vfs=2 ./x86_64-softmmu/qemu-system-x86_64 -cpu host -boot c -hda /home/vm-images/vm2.imgsnapshot -m 2048M -smp 2 --enable-kvm -name 'vm2' -vnc :2 -pidfile /tmp/vm2.pid -driile=fat:rw:/tmp/share,snapshot=off -device vfio-pci,host=01:10.1,id=net1 2. The VF Device was visible with another pci address. 00:04.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) Further ran DPDK testpmd on top of VM but bound the virtual function driver to igb_uio instead of vfio-pci. It ran successfully. The ixgbevf pmd driver is able to access the BAR registers in pci_uio_map_resource via mmaping somewhere close to hugepages. I was not able to bind the virtual function driver in VM to vfio-pci and hence DPDK would not be able to run with VFIO enabled as it complains of no IOMMU support. I also believe that there is little logic in binding the vf device to vfio-pci again since qemu has already taken care of it and hardware support is involved. So my questions are a. vfio is meant to be a replacement for both uio and device assignment for qemu. This doesnt seem simultaneous. Comment? b. Is there any way to access VF device using VFIO in guest userspace? Have you run DPDK in guest machine with VFIO support enabled and all dependent modules inserted and did it work? c. Is igb_uio or uio_pci_generic in future the only way to access the device in guest userspace? *Regards*