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: Fri, 29 Jul 2022 14:20:25 UTC
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.