bhyve Current state of bhyve Nvidia passthrough?

If I want to use bhyve-lin for a Windows vm it does not work : Windows reports error 43.
Ok so changing the identifier to KVMKVMKVM breaks windows, I'll check that out.

And regarding the patches. I've already rebased them on the latest release and shared the patch file. It's so few lines you could just apply it manually and generate a new file.
 
I've already rebased them on the latest release and shared the patch file.
But that's for 14.1:
I forgot to rename read_config to pci_host_read_config, I'm not able to edit the previous post so here is a complete patch file to apply the same way. Just tested building 14.1-RELEASE-p6 and nvidia gpu is detected in bhyve.
The approach previously described really messes things up as 14.0 is no longer supported by ports and you'll get funny errors.

So get the patch, clone 14.1-release branch, apply patch, build and install kernel then build/install /include, vmm, bhyve, bhyvectl, bhyveload.
 
Thanks for the patch - but you can easily see why it didn't make it into 14.0. With it applied although Linux passthrough now works, attempting another VM start afterwards almost always results in a hard lock of the entire system at least here (Ivy Bridge, C602 chipset).

The hypervisor signature change isn't required, only the modifications in the bhyve directory. I don't remember it being this unstable in some pre 14.0 builds. It's also currently only Linux that's affected, without the patch Windows and FreeBSD VMs are quite happy to switch between each other, at least in the case of an Nvidia CPU with proprietary (Windows) and open source (FreeBSD) drivers on my system.

Unfortunately Linux passthrough is what I need, because I'm trying to compare FreeBSD WINE to Linux WINE, as I suspect Linux WINE is more compatible than FreeBSD (even for the same version).


This is what was missing to BHYVE to be able to passthru the nvidia GPU to a Linux VM :

KVM:


[ 0.000132] MTRR default type: write-back
[ 0.000132] MTRR fixed ranges enabled:
[ 0.000133] 00000-9FFFF write-back
[ 0.000133] A0000-FFFFF uncachable
[ 0.000133] MTRR variable ranges enabled:
[ 0.000134] 0 base 00C0000000 mask FFC0000000 uncachable
[ 0.000134] 1 base 00B0000000 mask FFF0000000 uncachable
[ 0.000135] 2 base 0800000000 mask F800000000 uncachable
[ 0.000135] 3 disabled
[ 0.000135] 4 disabled
[ 0.000136] 5 disabled
[ 0.000136] 6 disabled
[ 0.000136] 7 disabled
[ 0.012530] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT

bhyve:


[ 0.000018] MTRR default type: uncachable
[ 0.000018] MTRR variable ranges disabled:
[ 0.000019] Disabled
[ 0.000019] x86/PAT: MTRRs disabled, skipping PAT initialization too.
[ 0.000021] CPU MTRRs all blank - virtualized system.
[ 0.000023] x86/PAT: Configuration [0-7]: WB WT UC- UC WB WT UC- UC

Looks like some more work to do on the bhyve side.

So,I presume that the patch even today is still correlated with what was missing at the beginning.
 
Back
Top