GPUパススルーを使用して動作するQemu構成があります。今SSDも仕事に渡したいです。パススルー装置は同じグループになければならないと読みました。次のスクリプト:
#!/usr/bin/env bash
shopt -s nullglob
for g in /sys/kernel/iommu_groups/*; do
echo "IOMMU Group ${g##*/}:"
for d in $g/devices/*; do
echo -e "\t$(lspci -nns ${d##*/})"
done
done
私のGPUはグループ8に属していますが、SSDはグループ9に属していると思います。
IOMMU Group 8:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117 [GeForce GTX 1650] [10de:1f82] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10fa] (rev a1)
IOMMU Group 9:
02:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset USB 3.1 XHCI Controller [1022:43ee]
02:00.1 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset SATA Controller [1022:43eb]
02:00.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset Switch Upstream Port [1022:43e9]
03:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:43ea]
03:04.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:43ea]
03:08.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:43ea]
03:09.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:43ea]
05:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller 980 [144d:a809]
07:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
SSDをグループ8に移動する方法は?
driverctl set-override 0000:05:00.0 vfio-pci
ドライバをからに変更しnvme
ましたが、IOMMUvfio-pci
グループは変更されませんでした。
答え1
IOMMUグループは、「単位」として渡すことができる最小のPCIデバイスグループです。これはハードウェア属性です。チップセットを見ると、そのハードウェアを再構成できないようです。
したがって、グループから何かを削除することはできません。それ以外の場合は独自のグループになります。
したがって、グループ9を通過する必要があります。これはうまくいかないようです。