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

Aashima Arora arora.aa91 at gmail.com
Wed Dec 10 07:47:23 CET 2014


Thanks for your reply. Sorry, that was a typo, It was meant to be this
only.
00:04.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller
Virtual Function (rev 01)


On Wed, Dec 10, 2014 at 7:45 AM, Kiran KN <kirankn at juniper.net> wrote:

> Looks like virtual functions are not created.
> For 82599, use ixgbe driver as modprobe ixgbe max_vfs=1,1
>
> Lspci should say "virtual". Something like this -
> 03:10.1 Ethernet controller: Intel Corporation 82599 Ethernet Controller
> Virtual Function (rev 01)
>
> Thanks,
>  Kiran
>
> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Aashima Arora
> Sent: Friday, December 05, 2014 11:00 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] Accessing a Virtual Function Driver in Guest Machine
> via VFIO
>
> 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*
>



-- 
*Regards,*

*Aashima Arora*
*+91 9899019317*

*arora.aa91 at gmail.com <arora.aa91 at gmail.com>*


More information about the dev mailing list