DPDK 22.11.2 使用建议和注意事项
驱动
建议使用vfio-pci,依赖系统的vfio
igb_uio从DPDK v20.02开始禁止编译。可以通过CONFIG_RTE_EAL_IGB_UIO打开编译。igb_uio计划迁移到其他项目。
uio_pci_generic是linux系统提供的,不支持virtual function (VF)。
如果想支持virtual function (VF),请使用igb_uio,依赖系统的uio。
由于igb_uio不安全,提供了vfio,更安全,功能更多。
如果BIOS开启了UEFI,就无法使用UIO。
vfio需要条件
- Linux kernel大于3.6.0
- BIOS支持IO virtualization(IO虚拟技术),比如
Intel® VT-d
如果使用uio_pci_generic或者igb_uio,需要关闭IOMMU或者设置passthrough。使用vfio-pci需要打开IOMMU。
在grub中配置是否开启iommu
iommu.passthrough=0arm64系统关闭iommuiommu.passthrough=1arm64系统开启iommuintel_iommu=offintel系统关闭iommuamd_iommu=offamd系统关闭iommuintel_iommu=on iommu=ptintel系统开启iommu,使用pt
https://doc.dpdk.org/guides-20.05/linux_gsg/linux_drivers.html
大页内存
建议使用1GB
1GB大页内存不建议动态创建,需要增加到grub开启创建。
grub配置大页内存
编辑/etc/default/grub
在GRUB_CMDLINE_LINUX一行增加default_hugepagesz=1G hugepagesz=1G hugepages=4
更新grub
RHEL系列
grub2-mkconfig -o /boot/grub2/grub.cfg
Debian系列
Update-grub
手动挂载大页内存
mkdir /mnt/huge创建挂载目录
mount -t hugetlbfs nodev /mnt/huge挂载大页内存
自动挂载大页内存
编辑/etc/fstab,增加nodev /mnt/huge hugetlbfs pagesize=1GB 0 0
https://edc.intel.com/content/www/us/en/design/products/ethernet/config-guide-e810-dpdk/hugepages-setup/