すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:UIO ドライバーの代わりに VFIO ドライバーを使用する

最終更新日:Apr 28, 2026

Elastic Compute Service (ECS) および ECS Bare Metal Instance (EBM) で UIO ドライバーを VFIO ドライバーに置き換え、DPDK のランタイムエラーを解消します。

前提条件

  • ヒュージページがインスタンスに設定されていること。

  • DPDK がインスタンスにインストールされていること。

背景情報

第6世代のインスタンスタイプ (g6、c6、r6など) 以降では、DPDK アプリケーションでランタイムエラーが発生する場合があります。たとえば、pktgen-dpdkigb_uio ドライバーにバインドされた NIC を検出できないことがあります。次のエラーが表示される場合は、UIO ドライバーを VFIO ドライバーに置き換えてください。

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

操作手順

  1. ECS または EBM インスタンスに接続します。詳細については、「Log on to a Linux instance using Workbench」をご参照ください。

  2. GRUB 設定を確認します。

    cat /proc/cmdline
    • 出力に intel_iommu=on があり、iommu=pt がない場合は、手順 4 に進みます。

    • それ以外の場合は、手順 3 に進み、パラメーターを追加します。

      次の例では、出力に intel_iommu=oniommu=pt のいずれも含まれていないため、intel_iommu=on を追加する必要があります。

      image.png

  3. intel_iommu=on/etc/default/grub に追加します。

    1. ファイルを開きます。

      sudo vim /etc/default/grub
    2. i を押して挿入モードに入ります。intel_iommu=onGRUB_CMDLINE_LINUX パラメーターに追加します。ファイルを保存して閉じます。

      変更後の設定例: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. NIC の bus-info 値を取得します。

    ethtool -i ethX

    ethX を対象の NIC ID に置き換えます。eth1 の例:bus-info

  7. NIC を vfio-pci ドライバーにバインドします。 DPDK インストールディレクトリの usertools ディレクトリに移動して、以下を実行します。

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

    0000:00:06.0 を、お使いの NIC の実際の bus-info 値に置き換えます。

    ./dpdk-devbind.py --status を実行して確認します。 次の出力は、0000:00:06.0vfio-pci にバインドされていることを示しています:bound-status

  8. DPDK アプリケーションを起動します。DPDK インストールディレクトリ内の build/app ディレクトリに移動し、ご使用のバージョンに対応するコマンドを実行します。

    • 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 は NIC を指定します。total-num-mbufs=2048 は、お使いのヒュージページサイズと一致させる必要があります。両方を実際の値に置き換えてください。

    DPDK アプリケーションの実行例:run-dpdk