Intel 253668-032US User Manual

Page of 806
Vol. 3   15-41
MACHINE-CHECK ARCHITECTURE
generated). If this flag is clear, the processor may still be able to be restarted (for 
debugging purposes) but not without loss of program continuity.
For unrecoverable errors, the EIPV flag in the IA32_MCG_STATUS register 
indicates whether the instruction indicated by the instruction pointer pushed on 
the stack (when the exception was generated) is related to the error. If the flag is 
clear, the pushed instruction may not be related to the error.
The MCIP flag in the IA32_MCG_STATUS register indicates whether a machine-
check exception was generated. Before returning from the machine-check 
exception handler, software should clear this flag so that it can be used reliably by 
an error logging utility. The MCIP flag also detects recursion. The machine-check 
architecture does not support recursion. When the processor detects machine-
check recursion, it enters the shutdown state.
Example 15-2 gives typical steps carried out by a machine-check exception 
handler.
Example 15-2.  Machine-Check Exception Handler Pseudocode
IF CPU supports MCE
THEN
IF CPU supports MCA
THEN
call errorlogging routine; (* returns restartability *)
FI;
ELSE (* Pentium(R) processor compatible *)
READ P5_MC_ADDR
READ P5_MC_TYPE;
report RESTARTABILITY to console;
FI;
IF error is not restartable
THEN
report RESTARTABILITY to console;
abort system;
FI;
CLEAR MCIP flag in IA32_MCG_STATUS;
15.10.2 Pentium
 
Processor Machine-Check Exception Handling
Machine-check exception handler on P6 family and later processor families, 
should follow the guidelines described in Section 15.10.1 and Example 15-2 
that check the processor’s support of MCA.
NOTE
On processors that support MCA (CPUID.1.EDX.MCA == 1) reading 
the P5_MC_TYPE and P5_MC_ADDR registers may produce invalid 
data.