Post-Boot Conditions
Immediately after a successful start of the hypervisor, control is returned to the boot agent or another component of guest code that is designated by the boot agent. In any case, the guest code will run in a newly-created partition that is referred to as the root partition. The following conditions are guaranteed to exist immediately after the hypervisor starts:
-
The hypervisor is aware of all present and potential physical nodes. Each of these nodes has been assigned a unique index.
-
The hypervisor is aware of the memory-access ratios between physical nodes.
-
A system physical address (SPA) range has been created for every populated RAM range in the computer.
-
All RAM SPA pages are mapped into the root partition's guest physical address (GPA) space with an identity map. All pages that are in use by the hypervisor are mapped with no access rights. All other pages are mapped as readable, writable, and executable.
-
The hypervisor is aware of all existing and potential logical processors in the computer. Each logical processor has been given a unique logical processor index. (Potential here refers to logical processors that can be hot-plugged at some point in the future.)
-
A single partition exists (the root partition). It is in the active state.
-
The root partition's memory pool might or might not be populated with some memory. Code within the root partition can use the HvGetMemoryBalance hypercall function to determine how many pages are in the pool.
-
One virtual processor is created in the root partition for each existing and potential logical processor in the system.
-
None of the root partition's virtual processors are suspended.
-
All virtual processors that correspond to potential logical processors should be in the "offline" power state. All other virtual processors should be in the "C0" power state.
-
After a successful hypervisor boot, the root partition's virtual processors are in the same initialization state as their corresponding logical processors before the boot. For example, if a processor was already initialized and executing code, it will continue to execute code after hypervisor boot. If a processor was in the "wait for SIPI" state, it will effectively remain in this state after hypervisor boot.
-
The initial register state of a root partition's virtual processor is not architecturally specified. Typically, the initial register state will be derived from the register state of the boot agent before the hypervisor was started.
-
The root partition runs with default scheduling policy parameters (no reserve, an infinite cap, and a weight of 100).
-
The hypercall MSRs are visible to the root partition. However, the hypervisor interface is not yet established within the root partition.
-
The synthetic interrupt controller (SynIC) is not yet enabled within the root partition. No synthetic timers are enabled.
-
The local APIC is enabled and located in the root partition's GPA space according to the IA32_APIC_BASE MSR of the first logical processor (the boot processor).
-
If available, the APIC MSRs are visible within the root partition. For more information about the availability of APIC MSRs, see Microsoft Hypervisor CPUID Leaves.
Send comments about this topic to Microsoft
Build date: 11/16/2013