How to fix IOMMU grouping for KVM VGA passthrough? Fedora23

asked 2015-12-15 04:34:47 -0500

hexag gravatar image


I am trying to get Windows running in a VM for gaming, I am using a Biostar A88W with an AMD A10, which on paper do meet the requirements. Although I've updated the BIOS on the motherboard (which enabled IOMMU support), there is an impression that some models don't implement things properly & don't work.

I have confirmed IOMMU is active, but the secondary graphics card (Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280]) is grouped with the PCI host. I can't for the life of me figure this one out. Been following many guides, but this one the most, for Arch:

Here it talks about using the package linux-vfio to fix the IOMMU issue, I can't seem to dig this out for Fedora.

Where I try & run the VM as the setup currently exists, the system completely freezes for 5-10 minutes, before giving a 'timed out connecting to monitor' error.


ls -lha /sys/bus/pci/devices/0000\:01:00.0/iommu_group/devices

lrwxrwxrwx. 1 root root 0 Dec 15 10:24 0000:00:03.0 -> ../../../../devices/pci0000:00/0000:00:03.0

lrwxrwxrwx. 1 root root 0 Dec 15 10:24 0000:00:03.1 -> ../../../../devices/pci0000:00/0000:00:03.1

lrwxrwxrwx. 1 root root 0 Dec 15 10:24 0000:01:00.0 -> ../../../../devices/pci0000:00/0000:00:03.1/0000:01:00.0

lrwxrwxrwx. 1 root root 0 Dec 15 10:24 0000:01:00.1 -> ../../../../devices/pci0000:00/0000:00:03.1/0000:01:00.1

The third & forth items are the graphics card & its audio output (both these are using the pci-stub driver):

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] [1002:679a] 01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT HDMI Audio [Radeon HD 7970 Series] [1002:aaa0]

The first two are the PCI & host bridge:

00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:1424] 00:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 30h-3fh) Processor Root Port [1022:1426]

my grub looks like this:

GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX=" rhgb quiet amd_iommu=on pci-stub.ids=1002:679a,1002:aaa0 hugepages=2048 pcie_acs_override=downstream" GRUB_DISABLE_RECOVERY="true"

I have tried with & without pcie_acs_override=downstream.

Any help would be gratefully appreciated.


edit retag flag offensive close merge delete


Try pci-stubbing the host bridge. And to make sure: are you attempting to pass the entire group of devices including the PCI bridge and the root port you list above to your guest domain?

Additionally, are you using a UEFI firmware image for your guest domain? I have a blog where I detail the process I followed with F22/23. Check it out and let me know if it helps / what you think.

bitwiseoperator gravatar imagebitwiseoperator ( 2015-12-15 13:12:22 -0500 )edit