Ryzen IOMMU: PCIe Passthrough works, BUT... | Level One Techs

You can use the ACS patch if the cards are different enough?

Wendell,

How exactly do you use the ACS patch? Do we need to install linux to install the ACS patch?
Sorry for the basic questions. Yes I am a noob and proud of it :).

So the ACS patch seems to be working as it split my GPUs into separate groups, but I am running into a code 43 on my vm which has proved quite frustrating.

My two GPUs (which are a bit too similar I believe) are:

EVGA gtx 1070 (primary)
EVGA gtx 750 ti (passthrough)

While testing I blacklisted both nvidia and nouveau, and I am using vfio-pci. All drivers when I initially start look great, but that code 43 is blocking me from the 'magic'. When I initially start the VM as well I see vfio-intx interrupts for the gtx 750 ti card.

UPDATE:
I had a Nvidia Quadro 2000 card lying around and switched out the 750 ti and the pcie passthrough worked like a charm. So it seems with the ACS patch, all is well; unfortunately, I'll have to figure out how to get past the code 43 error with the 750 ti.

code 43 is well known. it is nvidia drivers detecting they are in a hyper visor. you have to setup your vm to hide the fact that it is a vm. This is why I am reluctant to recommend nvidia for virtualization

Pcper has an article up right now mentioning an update that improves support with virtual machines and multiple GPUs, fingers crossed this means full iommu support goon going forward? Or is this an inbetween measure that solves a different issue.

"Beyond the memory improvements AMD is also adding support for PCI Express Access Control Services which will improve virtualization support and allow users with multiple graphics cards to dedicate a card to the host and another card to the virtual machine."

https://www.pcper.com/news/General-Tech/AMD-AGESA-Update-1006-Will-Support-Configurable-Memory-Sub-Timings-And-Clockspeeds

Beta BIOS:es for Gigabyte boards with IOMMU and other improvments released.

I'm on GA-AB350 Gaming and updated the bios (F5c beta version). The arch linux installation I have still doesn't boot properly with IOMMU enabled in the bios.

Anyone else with the same problem?

Welp. My problem was all the other settings. After enabling all possible UEFI settings, I can boot properly with IOMMU enabled on Gigabyte GA-AB350 Gaming using Arch Linux kernel 4.11 something.

Has anyone tried this in a multiseat configuration, i.e. with 2 VMs, each having their own GPU on the same system?

May seem like on odd question, but attempting this on any of three X58 chipset boards that I have available to me results in both VMs GPU driver crashing.

(This is the case if and only if the VMs have attached disks which live on a physical disk other than the root disk! I’ve tried everything I can think to try, and asked on the vfio mailing list, but no luck.)

Sorry to bring up a dead thread, but starting a new topic has not resulted in any answers yet:

How is the grouping on Gigabyte GA-AX370 now days?
I can’t seem to find any good answers while searching.

I know this is months later but I am getting the same kernel panic on asrock ab350m pro4. From my testing it has something to do with GCN cards specifically (rx580). it only happens with a gcn card in a specific slot (x4 slot) and only with iommu enabled.

1 Like

Yeah, I’m guessing they haven’t looked at fixing this stuff on the B350 at all. I need to look through the forums and find an X370 board that works well with IOMMU and just upgrade the board. I can reuse this b350 for my file server and a lower end ryzen.

1 Like

I wound up finding a solution and have a working VM now. Iommu=pt as a kernel param. I still have some weird instability with iommu on that causes what appears to be a display driver Crash in the host. But its very rare and hard to pin down the cause.

I have started/used VMs but have never used a passthrough for a video card so this is gonna be a total newb question. I’m using a gigabyte b450m ds3h board with a ryzen5 2600 and 16gb ram. I want to run the linux host, preferably ubuntu, with an AMD V3900 firepro 1gb video card and passthrough my RX570 video card to a windows 10 virtual machine for gaming. Is this possible with this equipment?