[dpdk-dev] Accessing a Virtual Function Driver in Guest Machine via VFIO

Qiu, Michael michael.qiu at intel.com
Wed Dec 10 08:12:27 CET 2014


On 12/6/2014 3:01 AM, Aashima Arora wrote:
> 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?

What do you mean "device assignment" ? You mean pass-through? 
> 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?

As I knows, the answer is *NO*,  because the iommu is not support in guest.
> c. Is igb_uio or uio_pci_generic in future the only way  to access the
> device in guest userspace?

It depends, who knows what will happen in future :)

Thanks,
Michael
> *Regards*
>



More information about the dev mailing list