diff --git a/sys/x86/x86/identcpu.c b/sys/x86/x86/identcpu.c --- a/sys/x86/x86/identcpu.c +++ b/sys/x86/x86/identcpu.c @@ -1409,7 +1409,18 @@ * If we found a specific hypervisor, then * we are finished. */ - if (vm_guest != VM_GUEST_VM) + if (vm_guest != VM_GUEST_VM && + /* + * Xen and other hypervisors can expose the + * HyperV signature in addition to the + * native one in order to support Viridian + * extensions for Windows guests. + * + * Do the full cpuid scan if HyperV is + * detected, as the native hypervisor is + * preferred. + */ + vm_guest != VM_GUEST_HV) return; } }