驅動
建議使用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系統關閉iommuiommu.passthrough=1
arm64系統開啓iommuintel_iommu=off
intel系統關閉iommuamd_iommu=off
amd系統關閉iommuintel_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