Multi Channel DMA Intel® FPGA IP for PCI Express* デザイン例のユーザーガイド

ID 683517
日付 10/06/2023
Public
ドキュメント目次

3.5.2.3.2.3. VFの有効化とQEMUを使用してのゲストVMの作成

次の手順に従い、QEMUを使用してゲスト環境を作成し、VFデバイスをVMに割り当てます。
  1. 要件に基づき仮想機能を有効にします。
    $ echo 2 > /sys/bus/pci/devices/<bdf>/max_vfs
  2. vfio-pciモジュールをインストールします。

    $modprobe vfio-pci

  3. デバイスをvfio-pciに結び付けます。
    1. デバイスが ifc_uio に結び付けられている場合は、次のコマンドで解除します。

      $ echo "<bdf>" > /sys/bus/pci/devices/<bdf>/driver/unbind

      例: echo "0000:01:00.0" > /sys/bus/pci/devices/0000\:01\:00.0/driver/unbind

    2. デバイスをvfio-pciに結び付けます。

      echo <PCI Vendor ID> <PCI Device ID> > /sys/bus/pci/drivers/vfio-pci/new_id

      例: echo 1172 0000 > /sys/bus/pci/drivers/vfio-pci/new_id

  4. 次のパラメーターを使用して、ゲストVMを開始します (インテルマシンではQEMUのバージョン3.0.0-rc0を使用します)。ここでは、少なくとも8GBのメモリーをVMに割り当てる必要があります。

    $ qemu-3.0.0-rc0/x86_64-softmmu/qemu-system-x86_64 -smp 2 -m 8192M -boot c -machine q35,kernel-irqchip=split -cpu host -enable-kvm -nographic -L /root/qemu-3.0.0-rc0/pc-bios -name offload1 -hda <path_to_qcow2_file> -device vfio-pci,host=<bdf> -netdev type=tap,id=net6551,script=no,downscript=no,vhost=on,ifname=net6551 -device virtio-net-pci,netdev=net6551 -device intel-iommu,intremap=on,caching-mode=on -serial telnet::5551,server,nowait -object memory-backend-file,id=mem,size=8192M,mem-path=/dev/hugepages,share=on -numa node,memdev=mem -mem-prealloc -monitor telnet::3331,server,nowait&

注:
  1. AMDマシンでは、パラメーターの「-device intel-iommu,intremap=on,caching-mode=on」は必要ありません。
  2. 複数のデバイスが同じグループにある場合は、ルートポートとブリッジでACSが有効になっているかを確認します。
  3. 次の表は、検証に使用しているホストおよびゲストVMのコンフィグレーションです。
表 41.  ホストシステムのコンフィグレーション
ホストシステム コンフィグレーションの詳細
オペレーティング・システム

CentOS Linuxリリース7.8

Ubuntu 22.04 LTS

Linuxカーネル

CentOS: 3.10.0-1127.10.1.el7.28.x86_64

Ubuntu: 5.15.0-52-generic x86_64

CPUコア 96
RAM 128GB (単一のNUMAでは64GB)
ハイパーバイザー KVM
QEMUのバージョン QEMUバージョン3.0.0-rc0
表 42.  ゲストシステムのコンフィグレーション
ホストシステム コンフィグレーションの詳細
オペレーティング・システム CentOS Linuxリリース7.8
Linuxカーネル 3.10.0-1127.10.1.el7.28.x86_64
CPUコア 2
RAM 8GB