[dpdk-dev] 82599 SR-IOV with passthrough

Prashant Upadhyaya prashant.upadhyaya at aricent.com
Thu Oct 17 13:52:17 CEST 2013


Hi Qinglai,

Even with 1 queue, were you able to run the DPDK app in the guest OS ?
If you were able to, which version of DPDK did you use, please let me know.

I am trying to run the DPDK app in guest OS using QEMU/KVM with an SRIOV virtual function of an 82599 NIC.
I can see the vf pci address in the lspci output on the guest OS, but when I try to run the DPDK app in the guest OS, the EAL complains with the following --

EAL: pci_uio_map_resource(): cannot store uio mmap details

I am using DPDK1.4.

Regards
-Prashant


-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of jigsaw
Sent: Wednesday, October 16, 2013 5:49 PM
To: dev at dpdk.org
Subject: [dpdk-dev] 82599 SR-IOV with passthrough

Hi,

I am doing experiments with SR-IOV + passthrough on 82599.
My expectation is to have VT on and DCB off, under which configuration, the total 128 TX queues will be split into 32 pools, each has 4 queues.

With latest driver ixgbe-3.18.7, PF can be set with 16 pools, each has
4 queues with these params:

insmod ./ixgbe.ko MQ=1 max_vfs=8 RSS=8 VMDQ=16

I tried with VMDQ=32 with a panic. Also, it seems that if RSS is set to 4, the PF driver will set RSS to 2 somehow.
Since I'm fine with 16 pools + 4 queues,  I'm not going to investigate (at this moment) why PF doesn't work as expected.
Next step is then to try DPDK in guest OS, which get one VF by passthrough.

Not surprisingly, DPDK says that number of TX queue is 1. This is because the value is set arbitrarily in ixgbe_init_ops_vf of ixgbe_vf.c, and it never gets updated.

Actually the mbox API has support for requesting Tx/Rx queue numbers from VF. See implementation of routine ixgbevf_get_queues and ixgbevf_negotiate_api_version.
However, it is not straightforward to use these 2 routines to fetch Tx/Rx queue number, coz the PF driver is not ready to be used without modification.
See ixgbe_get_vf_queues of ixgbe_sriov.c in ixgbe-3.18.7.  The PF will always answer with 1 for Tx/Rx queue number requests, regardless of current config.

Therefore, to add support for multiple queues per VF, we have to at least fix the PF driver, then add support in DPDK's VF driver.

But the question is, is this enough? Before doing any experiments I wonder whether anybody has come across same problem as I do, and if there's any implementation ongoing.

thx &
rgds,
-Qinglai




===============================================================================
Please refer to http://www.aricent.com/legal/email_disclaimer.html
for important disclosures regarding this electronic communication.
===============================================================================


More information about the dev mailing list