日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用VFIO驅動替代UIO驅動

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

本文介紹如何在普通云服務器和彈性裸金屬服務器中使用VFIO驅動替代UIO驅動,解決DPDK應用運行異常的問題。

前提條件

背景信息

如果您在六代(g6、c6、r6等)及以后的實例規格(包含通用算力型實例)上部署DPDK應用,運行DPDK應用時可能發生異常。例如,使用pktgen-dpdk工具進行網絡發包測試時可能檢測不到網卡綁定的igb_uio端口,出現以下報錯時,您可以使用VFIO驅動替代UIO驅動解決此類問題。

EAL: eal_parse_sysfs_value(): cannot open sysfs value /sys/bus/pci/devices/0000:00:06.0/uio/uio0/portio/port0/start

操作步驟

  1. 遠程連接普通云服務器和彈性裸金屬服務器。

    具體操作,請參見通過密碼或密鑰認證登錄Linux實例

  2. 檢查GRUB配置。

    cat /proc/cmdline
    • 如果GRUB配置中包括intel_iommu=on,且沒有iommu=pt,請執行步驟4。

    • 如果是其他情況,需要添加intel_iommu=on并刪除iommu=pt,請執行步驟3

      如下圖所示,GRUB配置中沒有intel_iommu=on,也沒有iommu=pt,需要添加intel_iommu=on。

      image.png

  3. /etc/default/grub配置文件中添加intel_iommu=on

    1. 打開配置文件。

      sudo vim /etc/default/grub
    2. i切換到編輯模式,在GRUB_CMDLINE_LINUX中添加intel_iommu=on,然后保存配置文件。

      修改完成后的示例如下圖所示。grub-config

    3. 應用修改后的配置。

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

      image.png

    4. 執行以下命令,重啟實例并再次遠程連接實例。

      reboot
      警告

      重啟實例會造成您的實例停止工作,可能導致業務中斷,建議您在非業務高峰期時執行該操作。

  4. 安裝VFIO和VFIO-PCI驅動。

    sudo modprobe vfio && \
    sudo modprobe vfio-pci
  5. 配置noiommu_mode。

    sudo bash -c 'echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode'
  6. 查看并記錄網卡設備的bus-info值。

    ethtool -i ethX

    請將ethX替換為對應網卡的編號,查看eth1網卡的示例如下圖所示。bus-info

  7. 切換到DPDK安裝目錄的usertools目錄下,然后執行以下命令綁定網卡到vfio-pci驅動。

    sudo ./dpdk-devbind.py -b vfio-pci 0000:00:06.0
    說明

    0000:00:06.0為網卡的bus-info值,用于指定對應的網卡,請按實際情況替換。

    綁定后可以運行./dpdk-devbind.py --status查看綁定狀態,下方示例表示0000:00:06.0對應的網卡已綁定到vfio-pci驅動。bound-status

  8. 切換到DPDK安裝目錄的build/app目錄下,然后根據DPDK版本執行命令運行DPDK應用程序。

    • DPDK 18.02及更高版本

      sudo ./testpmd -w 0000:00:06.0 -c 0x3 -- --total-num-mbufs=2048 -ai
    • 低于DPDK 18.02的版本

      sudo ./testpmd -w 0000:00:06.0 -c 0x3 -- --total-num-mbufs=2048 --disable-hw-vlan -ai
    說明

    -w 0000:00:06.0用于指定網卡,total-num-mbufs=2048對應設置的HugePages大小,請按實際情況替換。

    運行DPDK應用程序的示例如下圖所示。run-dpdk