0

I have a working Qemu configuration with GPU-pass-through. Now I would like to pass also a SSD to the quest. I have read that the pass-through-devices should be in the same group. The following script:

#!/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

Shows that my GPU is in group 8, but the SSD is in group 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)

How to move the SSD into group 8?

I used already driverctl set-override 0000:05:00.0 vfio-pci to change the driver from nvme to vfio-pci, but this does not change the IOMMU group.

1 Answer 1

1

An IOMMU group is the smallest group of PCI devices that can be passed through as "unit". It's a hardware property, and looking at your chipset, I don't think you will be able to reconfigure that hardware.

So, you can't take something out of a group – otherwise it'd be a group of its own.

Thus, you would have to pass through your Group 9. That looks unlikely to work.

4
  • This explains how to isolate the GPU, which means changing the groups, which means they are not fixed. I want to do the same with the SSD. Commented May 3, 2023 at 20:02
  • you need to bind every device in that group to vfio-pci pseudodriver. You're in the situation that your nvme is not in an isolated PCIe slot and would have to re-assign the whole group. OR go through rather adventurous paths, which I'm really not convinced will take you anywhere sensible. Commented May 3, 2023 at 20:10
  • Does this mean, that SSD pass-through is not possible in general? Commented May 3, 2023 at 20:16
  • no. Definitely not what I said. Commented May 3, 2023 at 20:21

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.