语境
我正在尝试运行数据包生成器 MoonGen,但是,它需要我将 NIC 绑定到 VFIO-PCI 驱动程序。因此,我必须先将 NIC 与其当前驱动程序解除绑定,然后再将其与 VFIO-PCI 驱动程序重新绑定。
解绑
我首先从当前驱动程序 mlx5_core 解除绑定我的 NIC 与 PCI 地址 0000:03:00.1:
$ echo -n "0000:03:00.1" > /sys/bus/pci/drivers/mlx5_core/unbind
dmesg 在另一个窗口中运行,报告:
[Aug30 23:36] mlx5_3:wait_for_async_commands:735:(pid 1605): done with all pending requests
[ +0.048579] (0000:03:00.1): E-Switch: cleanup
这让我相信一切都很顺利,并且使用 DPDK 的 devbind 模块和 ifconfig 提供的工具,我确信我的 NIC 是未绑定的。
捆绑
现在,我尝试通过提示将我的 NIC 与 VFIO-PCI 驱动程序绑定:
$ echo -n "0000:03:00.1" > /sys/bus/pci/drivers/vfio-pci/bind
哪个返回了错误消息:
bash: echo: write error: No such device
查看 dmesg 报告,它指出:
[Aug31 03:37] vfio-pci: probe of 0000:03:00.1 failed with error -22
问题
在研究了一段时间的错误信息之后,我还没有发现它的含义。有谁知道发生了什么?