background image

Vol. 3C 33-11

HANDLING BOUNDARY CONDITIONS IN A VIRTUAL MACHINE MONITOR

error, the VMM error handler may then decide to inject an MCE abort into the guest VM for attempted guest VM 
error recovery. This would enable the guest OS the opportunity to take recovery actions specific to that guest. 
For MCA virtualization, the VMM must provide the guest physical address for memory errors instead of the system 
physical address when reporting the errors to the guest VM. To compute the guest physical address, the VMM 
needs to maintain a reverse mapping of system physical page addresses to guest physical page addresses. 
When the MCE is injected into the guest VM, the guest OS MCA handler would be invoked. The guest OS imple-
ments the MCA handling guidelines and it could potentially terminate the interrupted thread of execution within the 
guest instead of terminating the VM. The guest OS may also disable use of the affected page by the guest. When 
disabling the page the VMM error handler may handle the case where a page is shared by the VMM and a guest or 
by two guests. In these cases the page use must be disabled in both contexts to ensure no subsequent consump-
tion errors are generated.

33.4.3.5   Implementation Considerations for the MCA Virtualization Model

MCA virtualization may be done in either hosted VMMs or hypervisor-based VMMs.  The error handling flow is 
similar to the flow described in the basic handling case. The major difference is that the recovery action includes 
injecting the MCE abort into the guest VM to enable recovery by the guest OS when the MCA interrupts the execu-
tion of a guest VM.

33.5 

HANDLING ACTIVITY STATES BY VMM

A VMM might place a logic processor in the wait-for-SIPI activity state if supporting certain guest operating system 
using the multi-processor (MP) start-up algorithm. A guest with direct access to the physical local APIC and using 
the MP start-up algorithm sends an INIT-SIPI-SIPI IPI sequence to start the application processor. In order to trap 
the SIPIs, the VMM must start the logic processor which is the target of the SIPIs in wait-for-SIPI mode.