AMD Radeon Vega M GH Passthrough
-
PCI passthrough works like hiding that device from Dom0 (kernel) and being directly accessible to VM (kernel). You won't need a driver of it in Dom0 as Dom0 never sees it.
Make sure that the device is visible within VM via
lspci
or similar. Also I think, you'd need to enable VT-d in BIOS. -
@r1 Thank you so much for your reply. I really am glad that you are looking at this issue. Totally appreciate your help.
The thing is, I followed this walk-through to the T. https://github.com/xcp-ng/xcp/wiki/PCI-Passtrough
And I run
xl pci-assignable-list 0000:01:00.0 <- VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Polaris 22 XT [Radeon RX Vega M GH] (rev c0) 0000:01:00.1 <- Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Polaris 22 HDMI Audio
However, when I try to start the VM in question, I get the following error:
"Failed","Starting VM 'Wind' Internal error: xenopsd internal error: Device.PCI.Cannot_add(_, _) Time: 00:00:04","TestLab","Feb 3, 2020 1:34 PM"
Please let me know if there are any logs that I could add here to help figure out what the problem is.
All the best,
Amanda -
@AmandaBeuno I had the same error as you're getting now ("Internal error: xenopsd internal error: Device.PCI.Cannot_add(_, _)" when attempting to perform PCI passthrough of an HBA card on a system which didn't have the required virtualisation feature (VT-d) enabled.
As r1 mentioned above, have you made sure that your system has virtualisation support enabled in the BIOS/UEFI? I've never used a Hades Canyon NUC before, but from this BIOS overview video it appears you want to enter the BIOS/UEFI at boot and then navigate to the Advanced -> Security tab. Then make sure under "Security Features" both "Intel Virtualization Technology" and "Intel VT for Directed I/O (VT-d)" are enabled.
Intel Hades Canyon NUC NUC8i7HVK BIOS Walkthrough (relevant section at 2:17, link is timestamped)
-
By the way, could someone edit https://github.com/xcp-ng/xcp/wiki/PCI-Passtrough to add information about the VT-d requirement?
-
@stormi said in AMD Radeon Vega M GH Passthrough:
By the way, could someone edit https://github.com/xcp-ng/xcp/wiki/PCI-Passtrough to add information about the VT-d requirement?
I was thinking about doing it, but I'm not sure whether it should be added to the guide as a "prerequisite" step at the beginning (e.g. check it's enabled before you begin the guide) or in a "troubleshooting" step at the end (e.g. if you experience this error, check it's enabled). Which approach is better probably depends on the ratio of systems where it's enabled by default, which I would believe/assume is relatively high with enterprise equipment and relatively low with consumer equipment.
-
I'd say prerequisite in that case. You can add that you think that it's probably already enabled in enterprise equipment.
-
@stormi said in AMD Radeon Vega M GH Passthrough:
I'd say prerequisite in that case. You can add that you think that it's probably already enabled in enterprise equipment.
OK, I've added a prerequisite section. I tried to keep the edit as concise as possible whilst still conveying the necessary information.
-
Looks very good to me, thanks!
-
I have the same problem for my hades canyon nuc8i7hvk.
I followed the PCI Passtrough wiki, both Intel Virtualization and VT-d are enabled.
Tested multiples guest OS (kernel >= 4.18 support for AMD VEGA), the VM starts but as soon as I get output over HDMI every thing hangs including the Dom0.
After a hard reset, nothing related to passtrough in theses log files: SMlog, xensource.log and hypervisor.log.
The problem is explained in the Intel documentation (Link below page 63): "lack of Access Control Service (ACS)"
https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e3-1200v3-spec-update.pdf
There is a success story using Fedora and ACS patched kernel to change IOMMU groups.
Please is there a way to disable the kernel ACS check for XCP-ng ? -
@imad2nsi This is starting to remind me of my 4-week foray into messing around with unRAID, coming out of it with the conclusion that it was more trouble than it was worth most of the time (with the various types of hardware I tried it on).
-
@imad2nsi
Thanks for your research. I built a system around a Xeon E3-1226v3 with VT-D support for the express purpose of using PCI passthrough. Now I see I've wasted my time and money. -
If I understand correctly, PCI pass-through is discouraged by Intel with this family of processors, but there's a way to make it work with kernel patches?