Re: bhyve: Warning: Unable to reuse host address of Graphics Stolen Memory. GPU passthrough might not work properly. bhyve: gvt_d_setup_opregion: Unable to get OpRegion base and length bhyve: gvt_d_init: Unable to setup OpRegion device emulation initialization error: Operation not supported by device

From: Mario Marietto <marietto2008_at_gmail.com>
Date: Sun, 31 Jul 2022 20:18:04 UTC
*I have 3 GPUs in my PC. Actually the BIOS uses the geforce 1060 to start
it. So,two GPUs are out and kept free. The Geforce RTX 2080 ti and the
Intel CoffeeLake-S GT2 [UHD Graphics 630]. I'm able to pass through the RTX
2080 ti to a linux vm,but I'm not able to do the same with the UHD Graphics
630. As I have explained in the post,there is nothing that keeps it busy.
I'm not using it. Both my monitors are connected to the 1060 using the
twinview mode. One is using the DisplayPort,the other one is using the HDMI
port. When I want to pass the RTX 2080 inside a Linux VM and I need to use
my 2 monitor,I detach the HDMI cable from the 1060 and I attach it to the
RTX 2080 ti and it's done. I can use it inside my bhyve VM. If I don't want
to use bhyve,I connect the HDMI cable to the 1060 and in this case I can
use two screens at the same time without running a VM. Cool. I can do this
only with the RTX 2080 ti,but not with the Intel GPU. If I'm obliged to use
it even if I don't use it,I can't imagine how and in which kind of
situation I can pass it through.*

Il giorno ven 29 lug 2022 alle ore 16:20 Mario Marietto <
marietto2008@gmail.com> ha scritto:

> Maybe I forget to setup something correctly,but :
>
> 1) I've removed the xf86-video-intel driver from the system with : pkg
> remove xf86-video-intel
>
> 2) i haven't any i915kms or legacy intel module inside the memory :
>
> # kldstat | grep i915 : nothing
> # kldstat | grep kms : nothing
> # kldstat | grep intel : nothing
>
> 3) this is my xorg.conf (where is there is no trace of intel driver)
>
> Section "ServerLayout"
> Identifier     "X.org Configured"
> Screen      0  "Screen0" LeftOf "Screen1"
> Screen      1  "Screen1"
> InputDevice    "Mouse0" "CorePointer"
> InputDevice    "Keyboard0" "CoreKeyboard"
> EndSection
>
> Section "Files"
> ModulePath   "/usr/local/lib/xorg/modules"
> FontPath     "/usr/local/share/fonts/misc/"
> FontPath     "/usr/local/share/fonts/TTF/"
> FontPath     "/usr/local/share/fonts/OTF/"
> FontPath     "/usr/local/share/fonts/Type1/"
> FontPath     "/usr/local/share/fonts/100dpi/"
> FontPath     "/usr/local/share/fonts/75dpi/"
> FontPath     "catalogue:/usr/local/etc/X11/fontpath.d"
> EndSection
>
> Section "Module"
> Load  "glx"
> EndSection
>
> Section "InputDevice"
> Identifier  "Keyboard0"
> Driver      "kbd"
> EndSection
>
> Section "InputDevice"
> Identifier  "Mouse0"
> Driver      "mouse"
> Option    "Protocol" "auto"
> Option    "Device" "/dev/sysmouse"
> Option    "ZAxisMapping" "4 5 6 7"
> EndSection
>
> Section "Monitor"
> Identifier   "Monitor0"
> VendorName   "Monitor Vendor"
> ModelName    "Monitor Model"
> EndSection
>
> Section "Monitor"
> Identifier   "Monitor1"
> VendorName   "Monitor Vendor"
> ModelName    "Monitor Model"
> EndSection
>
> Section "Device"
> Identifier  "Card0"
> Driver      "nvidia"
> BusID       "PCI:1:0:0"
> EndSection
>
> Section "Screen"
> Identifier "Screen0"
> Device     "Card0"
> Monitor    "Monitor0"
> SubSection "Display"
> Viewport   0 0
> Depth     1
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     4
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     8
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     15
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     16
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     24
> EndSubSection
> EndSection
>
> Section "Screen"
> Identifier "Screen1"
> Device     "Card0"
> Monitor    "Monitor1"
> SubSection "Display"
> Viewport   0 0
> Depth     1
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     4
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     8
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     15
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     16
> EndSubSection
> SubSection "Display"
> Viewport   0 0
> Depth     24
> EndSubSection
> EndSection
>
> What could be wrong at this point ?
>
> Il giorno ven 29 lug 2022 alle ore 15:42 Mario Marietto <
> marietto2008@gmail.com> ha scritto:
>
>> It's not used by the host. FreeBSD is using the geforce 1060. And on the
>> BIOS I have set up the 1060 as default. I know that I can't pass through a
>> gpu that I'm using. And the third gpu is the geforce rtx 2080 ti that I can
>> actually pass.
>>
>> Actually I have 3 gpus :
>>
>> ppt4@pci0:0:2:0:        class=0x038000 rev=0x02 hdr=0x00 vendor=0x8086
>> device=0x3e98 subvendor=0x1458 subdevice=0xd000
>>    vendor     = 'Intel Corporation'
>>    device     = 'CoffeeLake-S GT2 [UHD Graphics 630]'
>>    class      = display
>>
>> vgapci0@pci0:1:0:0:     class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de
>> device=0x1c02 subvendor=0x19d
>> a subdevice=0x2438
>>    vendor     = 'NVIDIA Corporation'
>>    device     = 'GP106 [GeForce GTX 1060 3GB]'
>>    class      = display
>>    subclass   = VGA
>>
>> hdac0@pci0:1:0:1:       class=0x040300 rev=0xa1 hdr=0x00 vendor=0x10de
>> device=0x10f1 subvendor=0x19d
>> a subdevice=0x2438
>>    vendor     = 'NVIDIA Corporation'
>>    device     = 'GP106 High Definition Audio Controller'
>>    class      = multimedia
>>    subclass   = HDA
>>
>> ppt0@pci0:2:0:0:        class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de
>> device=0x1e04 subvendor=0x19d
>> a subdevice=0x2503
>>    vendor     = 'NVIDIA Corporation'
>>    device     = 'TU102 [GeForce RTX 2080 Ti]'
>>    class      = display
>>    subclass   = VGA
>>
>> ppt1@pci0:2:0:1:        class=0x040300 rev=0xa1 hdr=0x00 vendor=0x10de
>> device=0x10f7 subvendor=0x19d
>> a subdevice=0x2503
>>    vendor     = 'NVIDIA Corporation'
>>    device     = 'TU102 High Definition Audio Controller'
>>    class      = multimedia
>>    subclass   = HDA
>>
>> ppt2@pci0:2:0:2:        class=0x0c0330 rev=0xa1 hdr=0x00 vendor=0x10de
>> device=0x1ad6 subvendor=0x19d
>> a subdevice=0x2503
>>    vendor     = 'NVIDIA Corporation'
>>    device     = 'TU102 USB 3.1 Host Controller'
>>    class      = serial bus
>>    subclass   = USB
>>
>> ppt3@pci0:2:0:3:        class=0x0c8000 rev=0xa1 hdr=0x00 vendor=0x10de
>> device=0x1ad7 subvendor=0x19d
>> a subdevice=0x2503
>>    vendor     = 'NVIDIA Corporation'
>>    device     = 'TU102 USB Type-C UCSI Controller'
>>    class      = serial bus
>>
>> As you can see,I'm using the ppt driver on the gpus that I'm not using.
>>
>> Il giorno ven 29 lug 2022 alle ore 14:58 Jonathan Vasquez <jon@xyinn.org>
>> ha scritto:
>>
>>> I thought in general we couldn't pass the GPU if it was being used by
>>> the host? (Thus you would need to have two GPUs, one to allow the host to
>>> display its output and one to passthrough. Unless the host is completely
>>> headless).
>>>
>>>
>>> Sent from ProtonMail mobile
>>>
>>>
>>>
>>> -------- Original Message --------
>>> On Jul 29, 2022, 02:38, Mario Marietto < marietto2008@gmail.com> wrote:
>>>
>>>
>>> Hello.
>>>
>>> I've tried to passthru my CoffeeLake-S GT2 [UHD Graphics 630] on a
>>> Linux VM but it failed. This graphic card :
>>>
>>> ppt4@pci0:0:2:0:        class=0x038000 rev=0x02 hdr=0x00 vendor=0x8086
>>> device=0x3e98 subvendor=0x1458 subdevice=0xd000
>>>    vendor     = 'Intel Corporation'
>>>    device     = 'CoffeeLake-S GT2 [UHD Graphics 630]'
>>>    class      = display
>>>
>>> below there are the bhyve parameters that I've used :
>>>
>>> bhyve -S -c sockets=1,cores=2,threads=2 -m 4G -w -H -A \
>>> -s 0,hostbridge \
>>> -s 1,nvme,/dev/$vmdisk0,bootindex=1 \
>>> -s 2,ahci-hd,/dev/$vmdisk2 \
>>> -s 3,ahci-hd,/dev/$vmdisk4 \
>>> -s 4,passthru,0/2/0 \
>>> -s 7,virtio-net,tap4 \
>>> -s 10,hda,play=/dev/dsp,rec=/dev/dsp \
>>> -s 29,fbuf,tcp=0.0.0.0:5904,w=1500,h=950 \
>>> -s 30,xhci,tablet \
>>> -s 31,lpc \
>>> -l bootrom,/usr/local/share/uefi-firmware/BHYVE_BHF_CODE.fd \
>>> vm4 < /dev/null & sleep 2 && vncviewer 0:4
>>>
>>> this is the error I get :
>>>
>>> bhyve: Warning: Unable to reuse host address of Graphics Stolen Memory.
>>> GPU passthrough might not work properly.
>>> bhyve: gvt_d_setup_opregion: Unable to get OpRegion base and length
>>> bhyve: gvt_d_init: Unable to setup OpRegion
>>> device emulation initialization error: Operation not supported by device
>>>
>>> Should I apply some patches ? I know for sure that I can pass through
>>> this kind of gpu,using the Corvin patches,but I don't know if I have found
>>> a bug that should be fixed. Let me know.
>>>
>>> --
>>> Mario.
>>>
>>>
>>
>> --
>> Mario.
>>
>
>
> --
> Mario.
>


-- 
Mario.