Bug 278892 - virtualization/bhyve: bhyve can't handle ACPI when a nvidia modern GPU in passed within a Windows vm
Summary: virtualization/bhyve: bhyve can't handle ACPI when a nvidia modern GPU in pas...
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: bhyve (show other bugs)
Version: Unspecified
Hardware: Any Any
: --- Affects Many People
Assignee: freebsd-virtualization (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-10 11:16 UTC by mario felicioni
Modified: 2024-05-10 16:26 UTC (History)
1 user (show)

See Also:


Attachments
ACPI / Geforce RTX 2080 ti conflict screenshot. (22.75 KB, image/png)
2024-05-10 11:16 UTC, mario felicioni
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description mario felicioni 2024-05-10 11:16:55 UTC
Created attachment 250566 [details]
ACPI / Geforce RTX 2080 ti conflict screenshot.

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 attached picture).

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 : "Unaccessible Boot Device"

I'm not sure if ACPI can be disabled in Windows without to break it irreversibly.
I will keep trying an answer to 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 other option would be to develop a patch for bhyve that fix the conflicts that are shown by Windows ? Maybe bhyve offers a not complete ACPI feature that should be improved ?
Comment 1 mario felicioni 2024-05-10 16:26:21 UTC
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.

The next step is to explain on the nvidia forums the situation that I've explained here,trying to look for some suggestions from the nvidia developers and I will update this bug report which those informations.