All Products
Search
Document Center

Elastic Compute Service:Gunakan driver VFIO sebagai pengganti driver UIO

Last Updated:Apr 28, 2026

Ganti driver UIO dengan driver VFIO pada instans ECS dan ECS Bare Metal Instance (EBM) untuk memperbaiki error waktu proses DPDK.

Prasyarat

  • Huge pages telah dikonfigurasi pada instans.

  • DPDK telah diinstal pada instans.

Latar Belakang

Aplikasi DPDK pada tipe instans generasi keenam (seperti g6, c6, dan r6) serta versi yang lebih baru mungkin mengalami error waktu proses. Sebagai contoh, pktgen-dpdk mungkin gagal mendeteksi NIC yang di-bind ke driver igb_uio. Jika Anda menemui error berikut, gantilah driver UIO dengan driver VFIO.

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

Prosedur

  1. Hubungkan ke instans ECS atau EBM Anda. Lihat Log on to a Linux instance using Workbench.

  2. Periksa konfigurasi GRUB.

    cat /proc/cmdline
    • Jika output mencakup intel_iommu=on tetapi tidak mencakup iommu=pt, lewati ke Langkah 4.

    • Jika tidak, lanjutkan ke Langkah 3 untuk menambahkan parameter tersebut.

      Pada contoh berikut, output tidak mencakup intel_iommu=on maupun iommu=pt, sehingga intel_iommu=on harus ditambahkan.

      image.png

  3. Tambahkan intel_iommu=on ke /etc/default/grub.

    1. Buka file tersebut.

      sudo vim /etc/default/grub
    2. Tekan i untuk masuk ke mode insert. Tambahkan intel_iommu=on ke parameter GRUB_CMDLINE_LINUX. Simpan dan tutup file.

      Contoh konfigurasi yang telah dimodifikasi:grub-config

    3. Terapkan konfigurasi tersebut.

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

      image.png

    4. Restart instans dan hubungkan kembali setelah instans menyala.

      reboot
      Peringatan

      Operasi restart akan menghentikan instans selama periode waktu singkat dan dapat mengganggu layanan yang sedang berjalan pada instans tersebut. Kami menyarankan agar Anda melakukan restart instans pada jam sepi.

  4. Muat driver VFIO dan VFIO-PCI.

    sudo modprobe vfio && \
    sudo modprobe vfio-pci
  5. Aktifkan noiommu_mode.

    sudo bash -c 'echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode'
  6. Dapatkan nilai bus-info dari NIC.

    ethtool -i ethX

    Ganti ethX dengan ID NIC target. Contoh untuk eth1:bus-info

  7. Bind NIC ke driver vfio-pci. Buka direktori usertools di direktori instalasi DPDK Anda dan jalankan:

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

    Ganti 0000:00:06.0 dengan nilai bus-info aktual NIC Anda.

    Jalankan ./dpdk-devbind.py --status untuk memverifikasi. Output berikut menunjukkan bahwa 0000:00:06.0 telah di-bind ke vfio-pci:bound-status

  8. Jalankan aplikasi DPDK. Buka direktori build/app di direktori instalasi DPDK Anda dan jalankan perintah sesuai versi Anda.

    • Untuk DPDK 18.02 dan versi yang lebih baru:

      sudo ./testpmd -w 0000:00:06.0 -c 0x3 -- --total-num-mbufs=2048 -ai
    • Untuk versi sebelum DPDK 18.02:

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

    -w 0000:00:06.0 menentukan NIC. Nilai total-num-mbufs=2048 harus disesuaikan dengan ukuran huge page Anda. Gantilah keduanya dengan nilai aktual Anda.

    Contoh aplikasi DPDK yang sedang berjalan:run-dpdk