[dpdk-dev] [PATCH v3 0/2] Fix 2 bugs of i40e VF interrupt found in l3fwd-power

Wei Dai wei.dai at intel.com
Fri Nov 3 09:47:28 CET 2017


These 2 bugs can be observed from example/l3fwd-power run with i40e VF
bound to VFIO-PCI. The test steps are as follows:
1. Disable LSC interrupt by clearing port_conf.intr_conf.lsc=0, as i40e
   VF doesn't support LSC interrupt to avoid rte_eth_dev_configure() failure.
2. Create a VF from i40e host PF. Let PF run with kernel driver and bind
   its VF to VFIO-PCI
3. Run l3fwd-power like: l3fwd-power -l 18-19 -- -p 0x1 --config='(0,0,19)'

Then, the following error message appears like:
EAL: Error enabling MSI-X interrupts for fd 18
This error is from rte_intr_enable( )/vfio_enable_msix( ) when enabling
Rx queue interrupt.
Same as the patch 06938770186a ("net/ixgbe: fix VFIO interrupt mapping in VF"),
to change VFIO MSI-X interrupts mapping, previous mapping should be cleared
first to avoid above error.

After fixing above VFIO-PCI MSI-X interrupt mapping. There is still the following
2nd bug: l3fwd-power still can not be waked up by incoming packets.

Same as the patch ca9d6597184b ("net/ixgbe: fix Rx queue interrupt mapping in VF"),
the interrupt vector of Rx queues should be mapped to vector 1 to fix above 2nd bug.

These patches have passed test with l3fwd-power using i40e VF bound to VFIO-PCI.
They also passed the test with testpmd rxonly and txonly mode with igb_uio and VFIO-PCI.

Signed-off-by: Wei Dai <wei.dai at intel.com>
Tested-by: Lei Yao <lei.a.yao at intel.com>

---
v3:
  keep rte_intr_enable( ) for safety and align the style with other PMD.
  remove 2 unsed macros.

v2:
  only remap VFIO interrupt in i40evf_dev_start( )

Wei Dai (2):
  net/i40e: fix VFIO interrupt mapping in VF
  net/i40e: fix Rx queue interrupt mapping in VF

 drivers/net/i40e/i40e_ethdev_vf.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

-- 
2.7.4



More information about the dev mailing list