DPDK 22.11.2 使用建议和注意事项

天道酬勤 / 2023-08-16 / 原文

驱动

建议使用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=0 arm64系统关闭iommu
  • iommu.passthrough=1 arm64系统开启iommu
  • intel_iommu=off intel系统关闭iommu
  • amd_iommu=off amd系统关闭iommu
  • intel_iommu=on iommu=pt intel系统开启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/