Microsoft Hypervisor CPUID Leaves

For hypervisors that comply with the Microsoft hypervisor CPUID interface, the 0x40000000 and 0x40000001 leaf register values are listed in the following table. CPUID leaves are contained in the HV_CPUID_FUNCTION enumeration. Depending on the leaf that is supplied to a CPUID instruction, the hypervisor encodes and returns results for the instruction in the HV_CPUID_RESULT union as shown in the following table.

LeafHypervisor returns

0x40000000

Hypervisor CPUID leaf range and vendor identifier signatures are returned in the following registers.

EAX

The maximum input value for hypervisor CPUID information. For Microsoft hypervisors, this value will be at least 0x40000005. The vendor ID signature should be used only for reporting and diagnostic purposes.

EBX

0x7263694D--"Micr"

ECX

0x666F736F--"osof"

EDX

0x76482074--"t Hv"

0x40000001

Hypervisor vendor-neutral interface identification, which determines the semantics of leaves from 0x40000002 through 0x400000FF, is returned in the following registers.

EAX

0x31237648--"Hv#1"

EBX

Reserved

ECX

Reserved

EDX

Reserved

 

Hypervisors that comply with the "Hv#1" interface also provide at least the leaves that are listed in the following table.

LeafHypervisor returns

0x40000002

Hypervisor system identity. These values will be zero until the operating system identity MSR is set. For more information about identifying a guest operating system, see Reporting the Identity of a Guest Operating System. After the operating system identity MSR is set, these values have the following definitions.

EAX

Build number

EBX

Bits 31-16: Major version

Bits 15-0: Minor version

ECX

Service pack

EDX

Bits 31-24: Service branch

Bits 23-0: Service number

0x40000003

Feature identification on EAX indicates the features that are available to the partition based on the current partition privileges.

EAX

Bit 0: VP run time (HV_X64_MSR_VP_RUNTIME) is available.

Bit 1: Partition reference counter (HV_X64_MSR_TIME_REF_COUNT) is available.

Bit 2: Basic SynIC MSRs (HV_X64_MSR_SCONTROL through HV_X64_MSR_EOM and HV_X64_MSR_SINT0 through HV_X64_MSR_SINT15) are available.

Bit 3: Synthetic timer MSRs (HV_X64_MSR_STIMER0_CONFIG through HV_X64_MSR_STIMER3_COUNT) are available.

Bit 4: APIC access MSRs (HV_X64_MSR_EOI, HV_X64_MSR_ICR and HV_X64_MSR_TPR) are available.

Bit 5: Hypercall MSRs (HV_X64_MSR_GUEST_OS_ID and HV_X64_MSR_HYPERCALL) are available.

Bit 6: Access virtual processor index MSR (HV_X64_MSR_VP_INDEX) is available.

Bit 7: Virtual system reset MSR (HV_X64_MSR_ RESET) is available.

Bits 8-31: Reserved

Feature identification on EBX indicates the flags that a parent partition specified to create a child partition. The format is the same as that of the HV_PARTITION_PRIVILEGE_MASK structure.

EBX

Bit 0: CreatePartitions

Bit 1: AccessPartitionId

Bit 2: AccessMemoryPool

Bit 3: AdjustMessageBuffers

Bit 4: PostMessages

Bit 5: SignalEvents

Bit 6: CreatePort

Bit 7: ConnectPort

Bit 8: AccessStats

Bit 9 and 10: Reserved

Bit 11: Debugging

Bit 12: CPUManagement

Bit 13: ConfigureProfiler

Bits 14-31: Reserved

Feature identification on ECX contains information related to power management.

ECX

Bits 0-3: Maximum processor power state: 0 is C0, 1 is C1, 2 is C2, 3 is C3.

Bits 4-31: Reserved.

Feature identification on EDX indicates the miscellaneous features that are available to the partition.

EDX

Bit 0: The MWAIT instruction is available. For more information about MWAIT, see MONITOR and MWAIT.

Bit 1: Guest debugging support is available.

Bit 2: Performance monitor support is available.

Bit 3: Support for CPU dynamic partitioning events is available.

Bit 4: Support for passing hypercall input parameter block via XMM registers is available.

Bit 5: Support for a virtual guest idle state is available.

Bits 6-31: Reserved.

0x40000004

Implementation recommendations that are returned in the following registers indicate the behavior that the hypervisor recommends that the operating system implement for optimal performance.

EAX

Bit 0: Hypervisor recommends that the operating system use hypercalls for address space switches instead of using MOV to CR3 instruction.

Bit 1: Hypervisor recommends that the operating system use hypercalls for local TLB flushes instead of using INVLPG or MOV to CR3 instructions.

Bit 2: Hypervisor recommends that the operating system use hypercalls for remote TLB flushes instead of using inter-processor interrupts.

Bit 3: Hypervisor recommends that the operating system use MSRs to access APIC registers EOI, ICR, and TPR instead of using their memory-mapped counterparts.

Bit 4: Hypervisor recommends that the operating system use the hypervisor-provided MSR to initiate a system RESET.

Bit 5: Hypervisor recommends that the operating system use relaxed timing for this partition.

Bit 6-31: Reserved

EBX

The recommended number of attempts to retry a spinlock failure before notifying the hypervisor about the failure.

0xFFFFFFFF indicates never to retry.

ECX

Reserved.

EDX

Reserved.

0x40000005

Implementation limits are returned in the following register. If any value is zero, the hypervisor does not expose the corresponding information. Otherwise, the implementation limits have the following meanings.

EAX

The maximum number of virtual processors that the hypervisor supports.

EBX

The maximum number of logical processors that the hypervisor supports.

ECX

Reserved.

EDX

Reserved.

0x40000006

Implementation hardware features that have been detected and are currently in use by the hypervisor. These hardware-specific features are specified in the following registers.

EAX

Bit 0: Support for APIC overlay assist is detected and in use.

Bit 1: Support for MSR bitmaps is detected and in use.

Bit 2: Support for architectural performance counters is detected and in use.

Bit 3: Support for second-level address translation is detected and in use.

Bits 4-31: Reserved for future Intel-specific features.

EBX

Reserved.

ECX

Reserved.

EDX

Reserved for future AMD-specific features.

 

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.