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....@intel.com> Tested-by: Lei Yao <lei.a....@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