Troubleshooting Tips

Virtual Functions (VFs) Not Visible

If no VFs appear in the /dev/vfio/ directory, enable them using this command:

for i in `(lspci -D -d :4940 || lspci -D -d :4942 || lspci -D -d :4944 || lspci -D -d :4946)| awk '{print $1}'`; do echo 16|sudo tee /sys/bus/pci/devices/$i/sriov_numvfs; done

If VFs remain unavailable after following the setup instructions in Setting Up Host Platform, you may have the Intel® QAT Out-of-Tree driver installed. This driver conflicts with VF enablement and must be removed first. See Uninstall Acceleration Software for removal instructions.

Docker Error: ‘is not an absolute path’

This error occurs when VF devices are passed incorrectly to the container.

The standard script for passing VF devices:

$(for i in `ls /dev/vfio/*`; do echo --device $i; done)

This script lists all content in /dev/vfio/, including subdirectories, which can result in non-absolute paths.

To verify the script output:

echo $(for i in `ls /dev/vfio/*`; do echo --device $i; done)

Example problematic output:

$ echo $(for i in `ls /dev/vfio/*`; do echo --device $i; done)
--device /dev/vfio/270 --device /dev/vfio/271 --device /dev/vfio/272 --device /dev/vfio/273
[... additional numbered devices ...]
--device /dev/vfio/vfio --device /dev/vfio/devices: --device vfio0 --device vfio1       # <--- Non-absolute paths!
--device vfio10 --device vfio11 --device vfio12 --device vfio13 --device vfio14         #
[... additional non-absolute paths ...]

Solution: Use this improved script instead:

$(find /dev/vfio -type c | sed 's/^/--device /')

This script ensures all devices use absolute paths:

$ echo $(find /dev/vfio -type c | sed 's/^/--device /')
--device /dev/vfio/333 --device /dev/vfio/332 --device /dev/vfio/331 --device /dev/vfio/330
[... all devices with absolute paths ...]
--device /dev/vfio/devices/vfio0 --device /dev/vfio/270 --device /dev/vfio/vfio

Docker Error: ‘No such file or directory’

If the Docker image runs but displays “file or directory not found” messages, check directory permissions on the host system.

Ensure all volumes passed to the container have full access permissions: drwxrwxrwx.