1 Reply Latest reply on Nov 14, 2015 12:11 PM by allan_intel

    Model Specific Error Code for MCE occuring on 06_3Ch DisplayFamily_DisplayModel

    CalinIaru

      Hi,

      I got a BSOD due to a Machine Check Exception. The CPU is an i7 4790S.

      1: kd> !cpuinfo 0
      CP F/M/S Manufacturer MHz PRCB Signature MSR 8B Signature Features
      0 6,60,3 GenuineIntel 3192 0000001700000000 21193ffe
      Cached Update Signature 0000001700000000
      Initial Update Signature 0000001700000000

      1: kd> .bugcheck
      Bugcheck code 00000124
      Arguments 00000000`00000000 fffffa80`1c297028 00000000`fe000000 00000000`00800400
      1: kd> !errrec fffffa80`1c297028
      ===============================================================================
      Common Platform Error Record @ fffffa801c297028
      -------------------------------------------------------------------------------
      Record Id : 01d0fa0fb97d2405
      Severity : Fatal (1)
      Length : 928
      Creator : Microsoft
      Notify Type : Machine Check Exception
      Timestamp : 9/29/2015 0:21:24
      Flags : 0x00000000

      ===============================================================================
      Section 0 : Processor Generic
      -------------------------------------------------------------------------------
      Descriptor @ fffffa801c2970a8
      Section @ fffffa801c297180
      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 : 0x0000000000000001

      ===============================================================================
      Section 1 : x86/x64 Processor Specific
      -------------------------------------------------------------------------------
      Descriptor @ fffffa801c2970f0
      Section @ fffffa801c297240
      Offset : 536
      Length : 128
      Flags : 0x00000000
      Severity : Fatal

      Local APIC Id : 0x0000000000000001
      CPU Id : c3 06 03 00 00 08 10 01 - 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 @ fffffa801c297240

      ===============================================================================
      Section 2 : x86/x64 MCA
      -------------------------------------------------------------------------------
      Descriptor @ fffffa801c297138
      Section @ fffffa801c2972c0
      Offset : 664
      Length : 264
      Flags : 0x00000000
      Severity : Fatal

      Error : Internal timer (Proc 1 Bank 4)
      Status : 0xfe00000000800400
      Address : 0x000007fefcb36ddb
      Misc. : 0x000007fefcb36ddb

      This 2nd section is most likely the culprit. I have looked for IA32_MCi_STATUS[31:16] = 0080 to figure out what kind of Internal Timer Error occurs, but for this 06_3Ch Family/Model I could not find a Model Specific Error Code.

      Can you tell me if there are other models that are compatible with this Haswell Microarchitecture?

      The MCA_SECTION contains the following values:

      1: kd> dd fffffa801c2972c0 L0n66
      fffffa80`1c2972c0 00000001 00000001 c635d67f 01d0fa4c
      fffffa80`1c2972d0 00000001 00000005 00000000 00000000
      fffffa80`1c2972e0 00000000 00000004 00800400 fe000000
      fffffa80`1c2972f0 fcb36ddb 000007fe fcb36ddb 000007fe
      fffffa80`1c297300 00000000 00000000 00000000 00000000
      fffffa80`1c297310 00000000 00000000 00000000 00000000
      fffffa80`1c297320 00000000 00000000 00000000 00000000
      fffffa80`1c297330 00000000 00000000 00000000 00000000
      fffffa80`1c297340 00000000 00000000 00000000 00000000
      fffffa80`1c297350 00000000 00000000 00000000 00000000
      fffffa80`1c297360 00000000 00000000 00000000 00000000
      fffffa80`1c297370 00000000 00000000 00000000 00000000
      fffffa80`1c297380 00000000 00000000 00000000 00000000
      fffffa80`1c297390 00000000 00000000 00000000 00000000
      fffffa80`1c2973a0 00000000 00000000 00000000 00000000
      fffffa80`1c2973b0 00000000 00000000 00000000 00000000
      fffffa80`1c2973c0 00000000 00000000

      And this is how it is laid down by the compiler:

      typedef union _MCG_STATUS {
      struct {
      ULONG RestartIpValid:1;
      ULONG ErrorIpValid:1;
      ULONG MachineCheckInProgress:1;
      ULONG Reserved1:29;
      ULONG Reserved2;
      } DUMMYSTRUCTNAME;
      ULONGLONG QuadPart;
      } MCG_STATUS, *PMCG_STATUS;

      typedef union _MCI_STATUS {
      struct {
      USHORT McaErrorCode;
      USHORT ModelErrorCode;
      ULONG OtherInformation : 23;
      ULONG ActionRequired : 1;
      ULONG Signalling : 1;
      ULONG ContextCorrupt : 1;
      ULONG AddressValid : 1;
      ULONG MiscValid : 1;
      ULONG ErrorEnabled : 1;
      ULONG UncorrectedError : 1;
      ULONG StatusOverFlow : 1;
      ULONG Valid : 1;
      } DUMMYSTRUCTNAME;
      ULONG64 QuadPart;
      } MCI_STATUS, *PMCI_STATUS;

      typedef enum _WHEA_CPU_VENDOR {
      WheaCpuVendorOther = 0,
      WheaCpuVendorIntel,
      WheaCpuVendorAmd
      } WHEA_CPU_VENDOR, *PWHEA_CPU_VENDOR;

      #define WHEA_XPF_MCA_EXTREG_MAX_COUNT 24
      #define WHEA_XPF_MCA_SECTION_VERSION 1

      typedef struct _WHEA_XPF_MCA_SECTION {
      ULONG VersionNumber;
      WHEA_CPU_VENDOR CpuVendor;
      LARGE_INTEGER Timestamp;
      ULONG ProcessorNumber;
      MCG_STATUS GlobalStatus;
      ULONGLONG InstructionPointer;
      ULONG BankNumber;
      MCI_STATUS Status;
      ULONGLONG Address;
      ULONGLONG Misc;
      ULONG ExtendedRegisterCount;
      ULONG Reserved2;
      ULONGLONG ExtendedRegisters[WHEA_XPF_MCA_EXTREG_MAX_COUNT];
      } WHEA_XPF_MCA_SECTION, *PWHEA_XPF_MCA_SECTION;

      Regards,
      Calin