It sounds like you're definitely on the right track with your GPU passthrough setup, but these configurations can be finicky! First off, double-checking the IOMMU groups is crucial. Sometimes devices that need to be isolated for passthrough are grouped together with other devices that don't play well under isolation.
Since you've got an NVIDIA card as your passthrough GPU, have you added the necessary kernel parameters to prevent the host from using it? You'll typically need to add nouveau.modeset=0
and rd.driver.blacklist=nouveau
if Nouveau drivers are loaded by default in your distro. For NVIDIA proprietary drivers, use rd.driver.blacklist=nvidia,nvidia_uvm,nvidia_drm,nvidia_modeset
instead.
Also, ensure that the vfio-pci driver is binding to your GPU. You can check this by running:
lspci -nnk -d 10de:1b06
(replace '10de:1b06' with your actual GPU’s vendor and device ID). Look for 'Kernel driver in use: vfio-pci' in the output.
And remember, setting up a VM with GPU passthrough is a bit like teaching a cat to swim; both are possible, theoretically practical, but may result in unexpected resistance and a lot of troubleshooting!
If after all this you’re still having trouble, it might aid to see more details about your XML configuration and any error messages you're encountering during boot or crash.