Bugcheck Analysis:
Code:
[COLOR=#ff0000]BugCheck 124[/COLOR], {[COLOR=#0000cd]0[/COLOR], [COLOR=#008000]fffffa800d85a8f8[/COLOR], 0, 0}
Probably caused by : [COLOR=#ff0000]GenuineIntel[/COLOR]
The bugcheck indicates a hardware error reported by WHEA, a error architecture implemented on Windows systems to handle hardware failures. The first parameter indicates the error source type; this is merely the source whereby the error was reported from, it doesn't necessarily mean the hardware component which has failed. The second parameter contains the address of the WHEA_ERROR_RECORD structure, all error reported to the WHEA system are parsed into this structure for debugging purposes.
Let's examine the first parameter, and understand where this is gathered from. As mentioned before, the first parameter is the error source; an error source is a hardware component which reports an error to the operating system via WHEA. To my knowledge, these error sources are gathered from ACPI tables such as the
Hardware Error Source Table (HEST). We can dump the _WHEA_ERROR_SOURCE_TYPE structure to see where the first parameter is produced.
Code:
6: kd> [COLOR=#008000]dt _WHEA_ERROR_SOURCE_TYPE[/COLOR]
nt!_WHEA_ERROR_SOURCE_TYPE
[COLOR=#ff0000]WheaErrSrcTypeMCE = 0n0[/COLOR] <-- Machine Check Exception
WheaErrSrcTypeCMC = 0n1
WheaErrSrcTypeCPE = 0n2
WheaErrSrcTypeNMI = 0n3
WheaErrSrcTypePCIe = 0n4
WheaErrSrcTypeGeneric = 0n5
WheaErrSrcTypeINIT = 0n6
WheaErrSrcTypeBOOT = 0n7
WheaErrSrcTypeSCIGeneric = 0n8
WheaErrSrcTypeIPFMCA = 0n9
WheaErrSrcTypeIPFCMC = 0n10
WheaErrSrcTypeIPFCPE = 0n11
WheaErrSrcTypeMax = 0n12
An error record is produced to describe the hardware error. This is usually the _WHEA_ERROR_RECORD structure.
Code:
6: kd> [COLOR=#008000]dt hal!_WHEA_ERROR_RECORD[/COLOR]
+0x000 Header : _WHEA_ERROR_RECORD_HEADER
+0x080 SectionDescriptor : [1] _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR
The _WHEA_ERROR_RECORD_HEADER contains some important structures which are present when we use the !errrec WinDbg extension. Most notably, are
Code:
6: kd> [COLOR=#008000]dt _WHEA_ERROR_RECORD_HEADER[/COLOR]
nt!_WHEA_ERROR_RECORD_HEADER
+0x000 Signature : Uint4B
+0x004 Revision : _WHEA_REVISION
+0x006 SignatureEnd : Uint4B
+0x00a SectionCount : Uint2B
+0x00c Severity : [COLOR=#ff0000]_WHEA_ERROR_SEVERITY[/COLOR]
+0x010 ValidBits : _WHEA_ERROR_RECORD_HEADER_VALIDBITS
+0x014 Length : Uint4B
+0x018 Timestamp : _WHEA_TIMESTAMP
+0x020 PlatformId : _GUID
+0x030 PartitionId : _GUID
+0x040 CreatorId : _GUID
+0x050 NotifyType :[COLOR=#ff0000] _GUID[/COLOR]
+0x060 RecordId : Uint8B
+0x068 Flags : _WHEA_ERROR_RECORD_HEADER_FLAGS
+0x06c PersistenceInfo : _WHEA_PERSISTENCE_INFO
+0x074 Reserved : [12] UChar
The error severity indicates if the operating system is able to recover from the error. The bugcheck indicates the error type is Fatal, and thus the operating system must be halted.
Code:
6: kd> [COLOR=#008000]dt _WHEA_ERROR_SEVERITY[/COLOR]
nt!_WHEA_ERROR_SEVERITY
WheaErrSevRecoverable = 0n0
WheaErrSevFatal = [COLOR=#ff0000]0n1[/COLOR]
WheaErrSevCorrected = 0n2
WheaErrSevInformational = 0n3
The Notification Type indicates the notification mechism used to alert the operating system of the error, in this instance, it is the Machine Check Exception. The value passed to the field would be MCE_NOTIFY_TYPE_GUID.
We can dump the WHEA_ERROR_RECORD_HEADER with !errrec as explained earlier:
Code:
6: kd> [COLOR=#008000]!errrec fffffa800d85a8f8[/COLOR]
===============================================================================
Common Platform Error Record @ fffffa800d85a8f8
-------------------------------------------------------------------------------
Record Id : 01d0a01bc5397a85
Severity : Fatal (1)
Length : 928
Creator : Microsoft
Notify Type : Machine Check Exception
Timestamp : 6/6/2015 5:43:53 (UTC)
Flags : 0x00000002 PreviousError
===============================================================================
Section 0 : Processor Generic
-------------------------------------------------------------------------------
Descriptor @ fffffa800d85a978
Section @ fffffa800d85aa50
Offset : 344
Length : 192
Flags : 0x00000001 Primary
Severity : Fatal
Proc. Type : x86/x64
Instr. Set : x64
Error Type : Micro-Architectural Error
Flags : 0x00
CPU Version : 0x00000000000306c3
Processor ID : 0x0000000000000000
===============================================================================
Section 1 : x86/x64 Processor Specific
-------------------------------------------------------------------------------
Descriptor @ fffffa800d85a9c0
Section @ fffffa800d85ab10
Offset : 536
Length : 128
Flags : 0x00000000
Severity : Fatal
Local APIC Id : 0x0000000000000000
CPU Id : c3 06 03 00 00 08 10 00 - ff fb fa 7f ff fb eb bf
00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00
Proc. Info 0 @ fffffa800d85ab10
===============================================================================
Section 2 : x86/x64 MCA
-------------------------------------------------------------------------------
Descriptor @ fffffa800d85aa08
Section @ fffffa800d85ab90
Offset : 664
Length : 264
Flags : 0x00000000
Severity : [COLOR=#ff0000]Fatal[/COLOR]
Error : [COLOR=#ff0000]Internal timer (Proc 0 Bank 3)[/COLOR]
Status : 0xbe00000000800400
Address : 0xfffff80003439b3d
Misc. : 0xfffff80003439b3d
Each of the sections shown above is represented by the _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR structure as shown below:
Code:
6: kd> [COLOR=#008000]dt _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR[/COLOR]
nt!_WHEA_ERROR_RECORD_SECTION_DESCRIPTOR
+0x000 SectionOffset : Uint4B
+0x004 SectionLength : Uint4B
+0x008 Revision : _WHEA_REVISION
+0x00a ValidBits : _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS
+0x00b Reserved : UChar
+0x00c Flags : [COLOR=#ff0000]_WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS[/COLOR]
+0x010 SectionType : _GUID
+0x020 FRUId : _GUID
+0x030 SectionSeverity : _WHEA_ERROR_SEVERITY
+0x034 FRUText : [20] Char
We can dump the flags structure and then examine some of the meanings behind the flags set within the corresponding sections:
Code:
6: kd> [COLOR=#008000]dt _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS[/COLOR]
nt!_WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS
+0x000 [COLOR=#ff0000]Primary [/COLOR] : Pos 0, 1 Bit
+0x000 ContainmentWarning : Pos 1, 1 Bit
+0x000 Reset : Pos 2, 1 Bit
+0x000 ThresholdExceeded : Pos 3, 1 Bit
+0x000 ResourceNotAvailable : Pos 4, 1 Bit
+0x000 LatentError : Pos 5, 1 Bit
+0x000 Reserved : Pos 6, 26 Bits
+0x000 AsULONG : Uint4B
The Primary flag shows us that the particular section will be used for error recovery. In short, it seems that there is internal clock error with your processor, I've outlined some useful processor information below for reference:
Useful Processor Information:
Code:
6: kd> [COLOR=#008000]!cpuid 6[/COLOR]
CP F/M/S Manufacturer MHz
6 6,60,3 GenuineIntel [COLOR=#ff0000]3392[/COLOR]
F - Family/M - Model/S - Stepping
Suggestions:
# Update chipset drivers and gather any firmware updates
# Swap out CPU if possible, and check for any compatibility issues with the motherboard
# Use warranty if available