bhyve can't handle ACPI when a nvidia modern GPU in passed within a Windows vm

From: Mario Marietto <marietto2008_at_gmail.com>
Date: Sat, 11 May 2024 13:57:46 UTC
Hello.

What I would like to understand is why,
when I try to pass my RTX 2080 ti from FreeBSD to
Windows 11,it won't do it,causing the error 12.
It says that it generates a resource conflict and
requires additional installation).

Now,inside it I still see the error 12 :

The device PCI\VEN_10DE&DEV_1E04&SUBSYS_250319DA&REV_A1\3&61aaa01&0&48
generates a resource conflict and requires
additional installation.

I have 3 GPUS.

The ones you see below :

root@marietto-133:/usr/ports/www/chromium # lspci

00:02.0 Display controller: Intel Corporation CoffeeLake-S GT2 [UHD
Graphics 630] (rev 02)

01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce
GTX 1060 3GB] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP106 High Definition Audio
Controller (rev a1)

02:00.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce
RTX 2080 Ti] (rev a1)
02:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio
Controller (rev a1)
02:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Host
Controller (rev a1)
02:00.3 Serial bus controller: NVIDIA Corporation TU102 USB Type-C
UCSI Controller (rev a1)

What I do is to select (from the BIOS) the Intel or the Nvidia Geforce 1060 GPU,
reserving the RTX 2080 ti to a guest os (Linux or Windows),by
declaring this parameter
inside the file /boot/loader.conf :

pptdevs="2/0/0 2/0/1 2/0/2 2/0/3"

Take in consideration that IT WORKS inside the Linux vm,but NOT in the
Windows vm,
because there are some kinds of conflicts between resources that I
need to understand.

I ran msinfo32 and then I checked the resource sharing and conflicts
tab to see which
devices are conflicting with each other and I found something really
interesting
(please see the picture below).

[image: Istantanea_2024-05-09_17-56-58.png]

I'm not a developer,but I suspect that a patch is needed for bhyve.
Windows needs that ACPI is enabled within Windows itself,
because when I have disabled (configuring the entries below to Start 4
- disabled)
the entries below :

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\ACPI Start 0
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\AcpiPmi Start 3
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\acpitime Start 3

what's happened has been a BSOD : "Inaccessible Boot Device"

I'm not sure if ACPI can be disabled in Windows without to break it
irreversibly.
I will keep trying to answer this question.

What happens,instead if I keep ACPI enabled in Windows,but disabled in bhyve ?

Windows crashed with the error "Video TDR failed"

The error that I have shown happens in FreeBSD 13 and 14,maybe even 12.
It never worked. Anyway,I'm using FreeBSD 14.0-RELEASE-p6.

-- 
Mario.