Steps to reproduce. You need a NIC device capable of creating VFs in
order to reproduce this. I've reproduced with Intel E810, and XL710
NICs, but I think any NIC that creates VFs that DPDK can use should
work.

1. Download and build DPDK [https://github.com/DPDK/dpdk]
2. Create a virtual function on a NIC device by writing to sriov_numvfs in sysfs
3. Bind that VF device to vfio-pci rather than kernel driver. The 
"usertools/dpdk-devbind.py" script included with DPDK provides an easy way to 
do this. "dpdk-devbind.py -b vfio-pci <device>"
4. Run a DPDK application such as DPDK testpmd: ./build/app/dpdk-testpmd -l 1,2
5. Look for device probing information, as each device is checked. When the 
error occurs you get "Getting a vfio_dev_fd for <device> failed"

If you need more information about what DPDK is doing, you can enable
debug-level logging, which should show you the device probing as it
happens. Add "--log-level=*:debug" to the testpmd command-line, to
enable full logging. You can also replace "*" with specific components
to limit the debug output, e.g. "log-level=bus.pci:debug" to just see
extra device probing info.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2118903

Title:
  Cannot use VFs with DPDK on Ubuntu kernels

Status in linux package in Ubuntu:
  Fix Released

Bug description:
  When running DPDK on Ubuntu, we can no longer use virtual function
  (VF) devices. VFIO framework is giving errors. Tested with Intel E810
  and XL710 NICs.

  After creating a VF on each NIC, and then binding those NICs to vfio-
  pci for DPDK use as normal, when we actually try running DPDK to use
  those NICs, we get the error e.g "Getting a vfio_dev_fd for
  0000:41:01.0 failed". This error is due to a failure of ioctl() call
  "VFIO_GROUP_GET_DEVICE_FD" on the vfio group for the VF device.

  Thus far, we have only been able to reproduce this issue with Ubuntu
  kernels. While far from a kernel expert, and so may have missed some
  settings, the follow are what has been tested:

  * Ubuntu kernels shipped with Ubuntu 25.04 - FAIL
  * Using a kernel built from latest kernel.org source - WORKS ok
  * Using a 6.14 stock kernel build from kernel.org sources - WORKS ok
  * Using a stock kernel built using the config copied from the 6.14 Ubuntu 
source package - WORKS ok
  * Manually built kernel using the 6.14 Ubuntu sources [tested with the 
VFIO_DEVICE_CDEV on and off] - FAIL
  * Using an Ubuntu-mainline-kernel package 6.15.8-061508-generic - WORKS ok

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2118903/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to