Bhyve: Detect Extended Destination ID support
Bhyve advertises support for the Extended Destination ID standard via bit 0 (aka CPUID_BHYVE_FEAT_EXT_DEST_ID) of the value returned in the EAX register when Bhyve features are queried via CPUID. MFC after: 3 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D55431
This commit is contained in:
@@ -74,6 +74,7 @@
|
||||
#include <x86/init.h>
|
||||
#include <x86/kvm.h>
|
||||
#include <contrib/xen/arch-x86/cpuid.h>
|
||||
#include <x86/bhyve.h>
|
||||
|
||||
#ifdef DDB
|
||||
#include <sys/interrupt.h>
|
||||
@@ -2111,6 +2112,13 @@ detect_extended_dest_id(void)
|
||||
if (regs[0] & KVM_FEATURE_MSI_EXT_DEST_ID)
|
||||
apic_ext_dest_id = 1;
|
||||
break;
|
||||
case VM_GUEST_BHYVE:
|
||||
if (hv_high < CPUID_BHYVE_FEATURES)
|
||||
break;
|
||||
cpuid_count(CPUID_BHYVE_FEATURES, 0, regs);
|
||||
if (regs[0] & CPUID_BHYVE_FEAT_EXT_DEST_ID)
|
||||
apic_ext_dest_id = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user