Repository navigation
RyzenHV 0.7.1: Parallels in native mode (experimental), a check against a VMRUN panic
0.7.1: Parallels in native mode (experimental), a check against a VMRUN panic, a clearer doctor
Parallels Desktop 26.5.0 now also runs in native mode. With the kext in native mode (./rhv kext --native, reboot, rhv-info hv sysctl 1) run ./rhv parallels native: Parallels then uses Apple's own Hypervisor.framework and the kext, and only its CPU-vendor check is patched in memory by a small stand-in library (no hv_* call is replaced). Tested on a Ryzen 7 5800H, macOS 15.8.1, with a Windows 10 (LTSC 1809) guest: it boots to the desktop on 1 and on 4 vCPUs, Parallels Tools and the network work, no kext errors. Experimental, read docs/NATIVE.md: only Windows 10 was tried; keyboard input is probably not working in this mode yet (the shim route, ./rhv parallels, is unchanged and has it); a boot is about two to three times slower than with the shim (no TPR shadow); sleep/wake, 3D, snapshots and long runs are untested; rhv-info hv sysctl 1 is needed after every reboot.
Issue #1 (kernel panic at rhv_svm_vmrun on macOS 26.7.1 with a Ryzen 9 5900X): before every VMRUN the kext now reads EFER.SVME and VM_HSAVE_PA on the CPU it is about to run on and restores them, or refuses the run with a log line, instead of a #UD panic at CLGI. Not reproduced and not tested on macOS 26: only the "nothing is wrong" path has run here. If it still panics, please send rhv-info log and sudo rhv-info selftest.
./rhv doctor now says when it is run from a git checkout instead of the unpacked release archive (no VERSION, bin/, qemu/), instead of blaming the kext or QEMU.
Also in the kext: the commpage that hv_vmx_tsc_clock spins on is filled in, XSAVE images with XSTATE_BV wider than XCR0 are cut, and for Parallels only: hypervisor hidden and an Intel-style topology in CPUID, the 8-bit task priority round-trips into V_TPR, the LAPIC page is not mapped. Docker Desktop native mode was re-checked on the build (hello-world, alpine).
The release kext has the same code, constants and data as the one tested on the hardware; only the version string and build time differ (checked section by section). A few INFO log lines are new (the first exits of a non-HyperKit VM and its interrupt injections); they will be quieter in the next version.
Install: unpack, ./rhv kext (or --native), reboot, ./rhv doctor. Details in START-HERE.md. Keep a working EFI without the kext.