VFIO는 메모리 컨트롤러와 함께 사용할 수 없습니다.

VFIO는 메모리 컨트롤러와 함께 사용할 수 없습니다.

QEMU/KVM의 오디오 장치에 대한 PCI 패스스루를 설정하려고 합니다. 오디오 장치는 다른 세 가지 장치와 함께 그룹 9에 속합니다.

IOMMU Group 9 00:1f.0 ISA bridge [0601]: Intel Corporation Device [8086:9d4e] (rev 21)
IOMMU Group 9 00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
IOMMU Group 9 00:1f.3 Audio device [0403]: Intel Corporation Device [8086:9d71] (rev 21)
IOMMU Group 9 00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)

그래서 /etc/modprobe.d/vfio연결하고 싶은 장치로 수정했습니다.

00:1f.0 0601: 8086:9d4e (rev 21)
00:1f.2 0580: 8086:9d21 (rev 21)
00:1f.3 0403: 8086:9d71 (rev 21)
00:1f.4 0c05: 8086:9d23 (rev 21)

그래서 파일을 읽습니다

options vfio-pci ids=8086:9d4e,8086:9d21,8086:9d71,8086:9d23

또한 부팅 시 충전하기 위해 mkinitcpio로드되도록 수정했습니다.vfio vfio_iommu_type1 vfio_pci vfio_virqfd

효과가 있었습니다:

$ dmesg | grep vfio
[    0.746712] vfio_pci: add [8086:9d4e[ffff:ffff]] class 0x000000/00000000
[    0.746715] vfio_pci: add [8086:9d21[ffff:ffff]] class 0x000000/00000000
[    0.762942] vfio_pci: add [8086:9d71[ffff:ffff]] class 0x000000/00000000
[    0.762968] vfio_pci: add [8086:9d23[ffff:ffff]] class 0x000000/00000000

그러나 어떤 이유로 메모리 컨트롤러는 다른 모든 컨트롤러와 intel_pmc_core마찬가지로 커널 드라이버 대신 커널 드라이버를 계속 사용합니다.vfio-pci

$ lspci -k -s 00:1f
00:1f.0 ISA bridge: Intel Corporation Device 9d4e (rev 21)
    Subsystem: Hewlett-Packard Company Device 827e
    Kernel driver in use: vfio-pci
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
    Subsystem: Hewlett-Packard Company Device 827e
    Kernel driver in use: intel_pmc_core
00:1f.3 Audio device: Intel Corporation Device 9d71 (rev 21)
    Subsystem: Hewlett-Packard Company Device 827e
    Kernel driver in use: vfio-pci
    Kernel modules: snd_hda_intel, snd_soc_skl
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
    Subsystem: Hewlett-Packard Company Device 827e
    Kernel driver in use: vfio-pci
    Kernel modules: i2c_i801

따라서 qemu는 모든 IOMMU 그룹이 통과되지 않는다고 불평합니다.

$ qemu-system-x86_64 -hda /home/janus/qemu/win10qemu.img -enable-kvm -device vfio-pci,host=0000:00:1f.0 -device vfio-pci,host=0000:00:1f.2 -device vfio-pci,host=0000:00:1f.3 -device vfio-pci,host=0000:00:1f.4
qemu-system-x86_64: -device vfio-pci,host=0000:00:1f.0: vfio error: 0000:00:1f.0: group 9 is not viable
Please ensure all devices within the iommu_group are bound to their vfio bus driver.

내가 뭘 잘못했나요?

답변1

대답은 다음과 같습니다. 메모리 컨트롤러를 가상 머신에 전달할 수는 없습니다. 사운드 카드가 메모리 컨트롤러와 동일한 IOMMU 그룹에 있기 때문에 VM에 전달할 수 없습니다.

관련 정보