使用Gazelle接管网口
通过绑定网口到用户态功能,并为用户态网卡驱动提供网卡资源访问接口,从而获取比内核态网口更好的网络性能。

本章节的操作步骤适用于华为海思Hi1822网卡。如果为CX4网卡,执行完1和2后,直接执行修改Gazelle配置文件。
网卡型号可通过lspci |grep -i net命令查询。
- 启用VFIO(Virtual Function I/O)模块的no-IOMMU模式。
1
modprobe vfio enable_unsafe_noiommu_mode=1
- 加载vfio-pci驱动。
1
modprobe vfio-pci
- 查看当前设备的可用网口。
1
ip a
- 可以看到可用网卡为enp125s0f0和enp3s0。
- 查看并记录网卡驱动和对应的pci地址。
1
ethtool -i enp3s0
- 确认业务网口名称,并关闭该业务网口。在本例中业务网口名称为enp3s0。
执行该命令前请先确认并记录该网口的MAC地址。
1
ip link set enp3s0 down
- 将网络接口绑定到vfio-pci驱动程序。
1
dpdk-devbind -b vfio-pci enp3s0
- 绑定网卡后,再次查看当前设备的网卡。
1
ip a
- 可以看到被绑定后的enp3s0已经不在可用网口列表中。
如果需要解绑网卡,复原网卡状态,具体的操作步骤如下:
- 查看网卡状态。如图所示说明pci地址为0000:03:00.0的网卡已被DPDK接管。
1
dpdk-devbind -s
- 将网卡绑定为5中得到的驱动类型。
1
dpdk-devbind -b hinic 0000:03:00.0
- 启用该网卡。
1
ip link set enp3s0 up
- 查看网卡状态。如图所示说明pci地址为0000:03:00.0的网卡已被DPDK接管。
父主题: 手动配置