VFIO woes - need help

System: 5950x, 3090 (for VFIO), Radeon 7500 (for host).

Is there any way to make just the 3090 available to the VM? I don’t seem to be able to get a display output on it without also enabling sone virtio display and installing Windows on it. Then I have two graphics cards in Windows, the 3090 and some weird Windows graphics card. Windows stretches the desktop over both.

I want only the 3090 for the VM, what am I missing?

Ah, OS is Ubuntu 20.04

Is your card properly isolated and passed through to the VM?

You can remove the secondary “Windows graphics card” by removing the display spice / QXL display, but you generally need them to get up and running to the point where you can install your vendors drivers for the guest card.

Given the lack of information and configurations. Are you following a particular Guide?

You hiding the hypervisor from the os? Code 43 in device manager?

I have this in the xml config:

<hyperv>
  <relaxed state="on"/>
  <vapic state="on"/>
  <spinlocks state="on" retries="8191"/>
  <vendor_id state="on" value="kvm hyperv"/>
</hyperv>
<kvm>
  <hidden state="on"/>
</kvm>

So I guess error 43 should not be a problem?

The guides I was following were:


I created all the scripts in the guides and configured xml accordingly. Right now I only get a blank screen, with or without the QXL display, so, I guess, something else went wrong on the way.

IOMMU is enabled and the 3090 and its audio are in one IOMMU group.

It works! I’ll be damned!

Turns out, I had to leave the spice / QXL in, but could deactivate as a display in Windows. So it boots at first on the spice / QXL and when the NVIDIA driver gets loaded it switches over to the other diplay. Neat.

1 Like

This does not sound for me like the way it should work, the VM should be able to output video directly over a real display, but as long as it works for now, congrats.

Yeah, kinda feels like it should, but it will not start when I remove the QXL video. After that the video comes from the 3090 and to a real display. Maybe I missed something?

Any ideas where to look?