dpdk - 无法通过 sysfs 使用 vfio-pci 创建 VF
问题描述
使用 Ubuntu 20.04.2 LTS 和 DPDK 21.02 并遵循 DPDK 文档,我执行了这些命令
sudo modprobe vfio-pci enable_sriov=1
dpdk-devbind.py --bind=vfio-pci 0000:02:00.0
echo 1 > /sys/bus/pci/devices/0000:02:00.0/sriov_numvfs
但试图创建一个 VF 我有这个错误
alessio@ganimede:~$ sudo su
root@ganimede:/home/alessio# echo 1 > /sys/bus/pci/devices/0000:02:00.0/sriov_numvfs
bash: echo: write error: No such file or directory
即使这样
cd /sys/bus/pci/devices/0000:02:00.0
echo 1 > sriov_numvfs
即使 /sys/bus/pci/devices/0000:02:00.0/sriov_numvfs 存在。注意:使用 dmesg 我看到这个错误
[ 1071.155309] vfio-pci 0000:02:00.0: Driver does not support SRIOV configuration via sysfs
如果我尝试不绑定 vfio-pci 驱动程序而只使用内核一(ixgbe),它可以工作。但是在我的进程上使用这些 VF 作为 DPDK 端口,它不起作用,我必须检查但似乎没有收到更多的数据包。
注意:没有 VF,我的 DPDK 进程使用 vfio-pci 驱动程序工作。
新信息:这样就可以了!有一个错误,MAC 错误,使用 VF 这个错误导致应用程序失败。所以这个问题失去了它的兴趣,以这种方式起作用,只是好奇为什么 DPDK 文档上的建议程序不起作用。
它是一个主机操作系统,网卡信息是:
driver: ixgbe
version: 5.1.0-k
firmware-version: 0x800003e1
猫 /proc/cmdline
BOOT_IMAGE=/vmlinuz-5.4.0-72-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro maybe-ubiquity default_hugepagesz=1G hugepagesz=1G hugepages=8 hugepagesz=2M hugepages=1024 intel_iommu=on iommu=pt isolcpus=2,3,4,5,6,7,8,9
任何想法?谢谢
解决方案
对于 Intel NIC,如 82599、X522 和其他 VF(虚拟功能)端口,当它与igb_uio 等绑定ixgbe
或驱动程序时,可以从 PF(物理功能)端口创建。uio
由于配置管理队列以预留 rx 和 tx 队列并为 VF 端口配置参数需要 PF 驱动程序。
从 ixgbe (kernel) 取消绑定 |igb_uio (dpdk) 失去这样做的能力。一个映射到vfio-pci
基本功能和主机通过。因此第一步dpdk-devbind.py --bind=vfio-pci 0000:02:00.0
,是导致 SRIOV VF 功能松动。
解决方案:请将设备绑定回内核ixgbe并创建VF。VF 可以绑定vfio-pci
用于 PCIe 直通或在用户空间上运行。
推荐阅读
- javascript - 在 Console.log 和 api 响应中获取外键未定义
- c++ - 内存泄漏 Valgrind 不报告,但代码使用了这么多内存
- c++ - 用动态规划找到最长的卡片序列
- r - R:可变长度不同
- c# - 如何在不等待的情况下在后台启动 Redis 连接
- android - Android PaymentsClient.isReadyToPay 中的 Google Pay 返回 false
- javascript - 如何防止在 Windows 10 中更改音量时显示 YouTube 视频名称。[YouTube IFrame Api]
- sql - 索引是否有助于 sql 选择排序性能?
- bash - 从表中提取值小于和大于shell中列的行
- amazon-s3 - 安装 Ambari,无法从 amazon S3 下载 hortonworks HDP