There could be a lot of reasons.
First
Afaik, PCI passthrough is only available for HVM and PV. Qubes uses PVH as default, which disallows PTing devices.
Also, enmus had success using the Xen default way of passing devices to pciback via grub kernel command line, instead of the Qubes way. But I dunno why it made a difference.
Check what kernel driver/module is used by the device you wanna passthrough with lspci -k
.
You can also try xl info | grep caps
to check if directio is supported on your host.
Last thing, I see you’re trying to passthrough a device identifed by 00:1f.3
. What is the device, and what are the .1
and .2
devices ?
I’m not entirely sure on that, read the Xen wiki about it, but IIRC you have to pass all 00:1f.x
devices at once. EDIT: this is true ONLY for multi-function devices.
As an example, you cannot PT a GPU without PTing also the audio part.