[vfio-users] GPU passthrough: device does not support requested feature x-vga

Артем Семенов artem.semenov at jarillolabs.com
Sun Apr 12 16:45:51 UTC 2020


Hello.

I've found the cause of the problem.

GeForce RTX 2060 Super has four components:

02:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device 
[10de:1f06] (rev a1) (prog-if 00 [VGA controller])

02:00.1 Audio device [0403]: NVIDIA Corporation TU106 High Definition 
Audio Controller [10de:10f9] (rev a1)

02:00.2 USB controller [0c03]: NVIDIA Corporation TU106 USB 3.1 Host 
Controller [10de:1ada] (rev a1) (prog-if 30 [XHCI])

02:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU106 USB 
Type-C Port Policy Controller [10de:1adb] (rev a1)

And all of them are included to iommu group:

[    0.890405] iommu: Adding device 0000:02:00.0 to group 11
[    0.890422] iommu: Adding device 0000:02:00.1 to group 11
[    0.890437] iommu: Adding device 0000:02:00.2 to group 11
[    0.890453] iommu: Adding device 0000:02:00.3 to group 11

If I use all of them as the option for vfio-pci:

options vfio-pci ids=10de:1f06,10de:10f9,10de:1ada,10de:1adb

I get:

"vfio 0000:02:00.0: failed getting region info for VGA region index 8:
Invalid argument
device does not support requested feature x-vga"

But if I use only first three of them as the option for vfio-pci:

options vfio-pci ids=10de:1f06,10de:10f9,10de:1ada

then everything works properly (GPU successfully works in the guest OS).

Thanks.

>> Is your host kernel built with CONFIG_VFIO_PCI_VGA=y?
> 
> Yes. My kernel vfio settings:
> 
> CONFIG_VFIO_IOMMU_TYPE1=m
> CONFIG_VFIO_VIRQFD=m
> CONFIG_VFIO=m
> # CONFIG_VFIO_NOIOMMU is not set
> CONFIG_VFIO_PCI=m
> CONFIG_VFIO_PCI_VGA=y
> CONFIG_VFIO_PCI_MMAP=y
> CONFIG_VFIO_PCI_INTX=y
> CONFIG_VFIO_PCI_IGD=y
> # CONFIG_VFIO_MDEV is not set
> 
>> Are you
>> disabling that support with the disable_vga=1 module option of
>> vfio-pci?
> 
> I've tried both variants: with disable_vga=1 module option and without 
> it - same result.
> 
>> On Tue, 31 Mar 2020 21:35:33 +0300
>> Артем Семенов <artem semenov jarillolabs com> wrote:
> 
>>> Hello!
>>>
>>> I try to passthrough GPU to the virtual machine (qemu). I've tried
>>> different variants:
>>>
>>> -device 
>>> vfio-pci,host=02:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on
>>>
>>> or
>>>
>>> -device vfio-pci,host=02:00.0,x-vga=on
>>>
>>> and other but in any case I get error:
>>>
>>> vfio 0000:02:00.0: failed getting region info for VGA region index 8:
>>> Invalid argument
>>> device does not support requested feature x-vga
>>>
>>> dmesg contains:
>>>
>>> [  844.599821] vfio_ecap_init: 0000:02:00.0 hiding ecap 0x1e 0x258
>>> [  844.599860] vfio_ecap_init: 0000:02:00.0 hiding ecap 0x19 0x900
>>>
>>> If I remove x-vga=on option then qemu works but there is no signal from
>>> GPU (black screen).
>>>
>>> It looks like http://vfio.blogspot.com/2014/08/vfiovga-faq.html
>>>
>>> "Question 3:
>>>
>>> I have Intel host graphics, when I start the VM I don't get any output
>>> on the assigned VGA monitor... "
>>>
>>> I've tried to use 2 versions of the kernel: 4.19 and 5.4 - no 
>>> difference.
>>>
>>> Moterboard: ASUS PRIME H370-A.
>>> GPU: ASUS Turbo GeForce RTX 2060 Super.
>>>
>>> What could be the cause of this problem?
> 
>> Is your host kernel built with CONFIG_VFIO_PCI_VGA=y?  Are you
>> disabling that support with the disable_vga=1 module option of
>> vfio-pci?  Thanks,
> 
>> Alex
> 

-- 
With best regards,
  Artem Semenov               mailto:artem.semenov at jarillolabs.com





More information about the vfio-users mailing list