Help/Advice with GPU Passthru

My last attempt at GPU passthru was back in Feb 17. I hit a wall in 2 regards: Firstly, I could not seem to seperate my NVIDIA 970 FTW card from my M.2 slot in the IOMMU group, which was and still is a non-starter for me. Secondly, on one occasion when I somehow managed to seperate them (I still don’t remember how I pulled it off), I ran into NVIDIA driver (error 43) issues I could not overcome using an Ubuntu 16.10 distro. Tried every method I could find to fake out the check in the XML file, with no luck

Some time has passed, and I thought that maybe some things have changed now, and I may find success.
Does anyone know for sure if my hardware combination will work, or if there is a list somewhere that I can check? All my googling has only turned up the same outdated sites I found 7 months ago, until I found this forum.

Hardware: Asrock Z97 Extreme 6 with Intel i7 4790k CPU, and NVIDIA GTX 970 FTW ACX 2.0. Just installed a fresh copy of Fedora 26, since I thought it might have the most support for this.

I’d really appreciate hearing from anyone who may know about this combination and have some new, good info about it.


Hi scewing,

how did you edit the VM Definition XML file? Did you use virsh edit command line or did you edit the XML directly under /etc/libvirt/…/.xml with vi or gedit etc.?

I tried it both ways. It’s been a while, but I remember whenever I tried to edit it and add the particular NVIDIA workaround, I would get some error…like that the XML file couldn’t be processed. It was weird that I could make some other changes to the XML file and they were accepted, but anything I tried to do under one of the tags…KVM maybe? it’s been awhile, I’m thinking it was like KVM=off or something like that, anyway, it wouldnt save, or there were errors.

I recall another big problem I had, that seemed the only answer was some kernel patch, but the patch was too old, and was since incorporated into the newer kernel.

Update - went back and found a few notes I made…“KVM=…” had no effect. When I try using virsh edit win7, I get “unsupported HyperV Enlightenment feature: vendor_id”.

Are you only using one GPU? I don’t think this works unless your CPU has integrated graphics.

The motherboard has a built-in GPU I was using with Linux. I black-listed the NVIDIA card and all that correctly, I just ran into a problem separating the hardware in IOMMU groups and I couldn’t seem to overcome the Nviia error 43 issue using the techniques that others had success with.

Hi srewing,

sorry for the delay…

Puuuuhhh… sounds not good… NVIDIA hardware and software is very restrictive. Because of that I mostly buy AMD/Radeon stuff. For my GpU Passthrough tests I bought a Sapphire Pulse RX 560 4GB for around 140 Euro.

Did you tested only Windows 7 or Win 10 OS?

GPU Passthrough is in general a bit … unfinished yet:

I had also some start problems inside the VM. To install the GPU driver inside the VM is still a mess even with Radeon stuff. Windows kicks off the card when the new driver “comes” and KVM is somehow so confused that the VM crashes and reboots. Mostly the GPU driver is installed after reboot but the half of the Radeon Settings Software is not and I have to install it manually form the unpacked driver folder C:\AMD…

I also have Problems to start Windows 7 after I passthrough my RX 560. The VM hangs up in the Win7 Boot screen. Badly I doesn’t investigate this issue. I just switch to Windows 10 for GPU Passthrough :-/

I Will try XEN virtualization instead of KVM… I will report you if it is less messy :wink:

Hi Scewing,

I stepped over an interessting parameter for the libvirt definition xml. Maybe it helps you preventing the NVIDIA Driver to see the hypervisor bit more robust:

edit your VM definition file via command line:
sudo virsh edit <your_vm_name>

Add under the

< cpu mode=…>

Tag the following tag:

<feature policy='disable' name='hypervisor'/>

for example, here the complete cpu-Tag:

  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='3' threads='2'/>
    <feature policy='disable' name='hypervisor'/>

It works for my Ryzen 5 1600x system. Now Windows 10 reports 96MB of Level 3 Cache, Windows Task tell my nothing more about it is virtualized and so on…

In my case… I see no deferrence… but may it solves your problem.

Ah… here are the source of the parameter: