DPDK中使用VFIO的配置


VFIO

  • VFIO是一個可以安全地把設備I/O、中斷、DMA等暴露到用戶空間(userspace),從而可以在用戶空間完成設備驅動的框架。用戶空間直接設備訪問,虛擬機設備分配可以獲得更高的IO性能。
  • 依賴於IOMMU. vfio-pci.
  • 相比於UIO,VFIO更為強健和安全

要求

  • 本機使用版本為ubuntu18.04

內核版本

  • Linix kernel version>=3.6.0
$ uname -r

支持VT-x、VT-d

  • 需要主板、內核、BIOS支持VT-x、VT-d。

主板支持Intel® VT-x、VT-d。

  • 顯示是否支持VT-d或VT-d是否成功打開
$ dmesg | grep -e DMAR -e IOMMU

內核支持Intel® VT-x、VT-d。

  • 檢查 VT-d 在kernel中是否enabled, 運行:
$ cat /proc/cmdline | grep iommu=pt
$ cat /proc/cmdline | grep intel_iommu=on

如果沒有顯示,需要進行如下配置:

  • 此步修改系統文件,容易誤操作導致系統錯誤,修改前注意備份!
  • 進入配置文件:
nano /etc/default/grub
  • 添加配置信息:添加iommu=pt intel_iommu=on到文件中的GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"行
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"//原文件的配置信息
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=pt intel_iommu=on"//添加配置信息
  • 更新配置信息並重啟

sudo grub-mkconfig -o /boot/grub/grub.cfg 
sudo reboot 

加載模塊以及綁定網卡

腳本配置

  • 使用dpdk/usertools/dpdk-setup.sh配置
  • Insert VFIO module
  • 配置hugepages
  • Bind NIC to VFIO

命令配置

  • 配置大頁
  • 插入模塊以及綁定NIC
$ modprobe vfio-pci
$ /usr/bin/chmod a+x /dev/vfio
$ /usr/bin/chmod 0666 /dev/vfio/*
$ $DPDK_DIR/usertools/dpdk-devbind.py --bind=vfio-pci eth1
$ $DPDK_DIR/usertools/dpdk-devbind.py --status


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM