Causa de aislamiento de 0x124 WHEA_UNCORRECTABLE_ERROR consistentemente en la dirección ntoskrnl.exe + 4b314c

1

Tengo una máquina con Windows 7 de 64 bits que se congela aproximadamente una vez al mes. Los últimos cinco minivolcados indican "Causado por dirección" ntoskrnl.exe + 4b314c, y estoy tratando de averiguar quién posee (o está activando llamadas fallidas) del código en esa dirección.

Aquí está la !analyze -vsalida del mini-dump más reciente:

Microsoft (R) Windows Debugger Version 6.3.9600.17029 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\Windows\Minidump\102116-50450-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available


************* Symbol Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols
Symbol search path is: SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols
Executable search path is: 
Windows 7 Kernel Version 7601 (Service Pack 1) MP (12 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 7601.19160.amd64fre.win7sp1_gdr.160211-0600
Machine Name:
Kernel base = 0xfffff800`04201000 PsLoadedModuleList = 0xfffff800`04448730
Debug session time: Fri Oct 21 16:47:24.260 2016 (UTC - 7:00)
System Uptime: 0 days 0:00:25.275
Loading Kernel Symbols
.

Press ctrl-c (cdb, kd, ntsd) or ctrl-break (windbg) to abort symbol loads that take too long.
Run !sym noisy before .reload to track down problems loading symbols.

..............................................................
..........
Loading User Symbols
Mini Kernel Dump does not contain unloaded driver list
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 124, {0, fffffa802d3f77c8, 0, 0}

Probably caused by : GenuineIntel

Followup: MachineOwner
---------

7: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

WHEA_UNCORRECTABLE_ERROR (124)
A fatal hardware error has occurred. Parameter 1 identifies the type of error
source that reported the error. Parameter 2 holds the address of the
WHEA_ERROR_RECORD structure that describes the error conditon.
Arguments:
Arg1: 0000000000000000, Machine Check Exception
Arg2: fffffa802d3f77c8, Address of the WHEA_ERROR_RECORD structure.
Arg3: 0000000000000000, High order 32-bits of the MCi_STATUS value.
Arg4: 0000000000000000, Low order 32-bits of the MCi_STATUS value.

Debugging Details:
------------------


BUGCHECK_STR:  0x124_GenuineIntel

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

PROCESS_NAME:  System

CURRENT_IRQL:  0

ANALYSIS_VERSION: 6.3.9600.17029 (debuggers(dbg).140219-1702) amd64fre

STACK_TEXT:  
fffff880`03d1d6f0 fffff800`044c5cb9 : fffffa80`2d3f77a0 fffffa80`24f7eb50 00000000`00000029 00000000`00000000 : nt!WheapCreateLiveTriageDump+0x6c
fffff880`03d1dc10 fffff800`043a4c07 : fffffa80`2d3f77a0 fffff800`0441f2d8 fffffa80`24f7eb50 00000000`00000000 : nt!WheapCreateTriageDumpFromPreviousSession+0x49
fffff880`03d1dc40 fffff800`0430bc55 : fffff800`04481ba0 00000000`00000001 fffffa80`2d456090 fffffa80`24f7eb50 : nt!WheapProcessWorkQueueItem+0x57
fffff880`03d1dc80 fffff800`0427e065 : fffff880`01776e00 fffff800`0430bc30 fffffa80`24f7eb00 00000000`00000000 : nt!WheapWorkQueueWorkerRoutine+0x25
fffff880`03d1dcb0 fffff800`0450fc6a : 00000000`00000000 fffffa80`24f7eb50 00000000`00000080 fffffa80`24eda870 : nt!ExpWorkerThread+0x111
fffff880`03d1dd40 fffff800`04266086 : fffff880`03b31180 fffffa80`24f7eb50 fffff880`03b3c1c0 00000000`00000000 : nt!PspSystemThreadStartup+0x5a
fffff880`03d1dd80 00000000`00000000 : fffff880`03d1e000 fffff880`03d18000 fffff880`03d1d9e0 00000000`00000000 : nt!KxStartSystemThread+0x16


STACK_COMMAND:  kb

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: GenuineIntel

IMAGE_NAME:  GenuineIntel

DEBUG_FLR_IMAGE_TIMESTAMP:  0

IMAGE_VERSION:  

FAILURE_BUCKET_ID:  X64_0x124_GenuineIntel_PROCESSOR_MAE_PRV

BUCKET_ID:  X64_0x124_GenuineIntel_PROCESSOR_MAE_PRV

ANALYSIS_SOURCE:  KM

FAILURE_ID_HASH_STRING:  km:x64_0x124_genuineintel_processor_mae_prv

FAILURE_ID_HASH:  {435e2195-e498-1e77-0526-f8d7450275e5}

Followup: MachineOwner

Y aquí está la salida de !errrec fffffa802d3f77c8

7: kd> !errrec fffffa802d3f77c8
===============================================================================
Common Platform Error Record @ fffffa802d3f77c8
-------------------------------------------------------------------------------
Record Id     : 01d22bf56b81ac86
Severity      : Fatal (1)
Length        : 864
Creator       : Microsoft
Notify Type   : Machine Check Exception
Timestamp     : 10/21/2016 23:47:24 (UTC)
Flags         : 0x00000002 PreviousError

===============================================================================
Section 0     : Processor Generic
-------------------------------------------------------------------------------
Descriptor    @ fffffa802d3f7848
Section       @ fffffa802d3f7920
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   : 0x00000000000206c0
Processor ID  : 0x0000000000000000

===============================================================================
Section 1     : x86/x64 Processor Specific
-------------------------------------------------------------------------------
Descriptor    @ fffffa802d3f7890
Section       @ fffffa802d3f79e0
Offset        : 536
Length        : 64
Flags         : 0x00000000
Severity      : Fatal

Local APIC Id : 0x0000000000000000
CPU Id        : c0 06 02 00 00 08 20 00 - ff e3 9e 02 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

===============================================================================
Section 2     : x86/x64 MCA
-------------------------------------------------------------------------------
Descriptor    @ fffffa802d3f78d8
Section       @ fffffa802d3f7a20
Offset        : 600
Length        : 264
Flags         : 0x00000000
Severity      : Fatal

Error         : Unknown (Proc 0 Bank 2)
  Status      : 0xb200000000010005

Esta es una máquina de caja blanca construida hace varios años (con piezas actualizadas con el tiempo para mantenerse al día). Periódicamente me aseguro de que todavía pase todas las pruebas de estrés que puedo lanzar (Prime95, Memtest86, etc.). Intenté algunas pruebas breves sin fallas, y voy a volver a ejecutar ciclos completos durante la noche.

Pensé que las congelaciones comenzaron originalmente después de que instalé varias piezas de software (posiblemente incluyendo controladores) hace un año o dos, pero no tuve tiempo para investigar o solucionar problemas en ese momento. No puedo recordar qué software habría sido o exactamente cuándo (y para ser honesto, eso podría no estar relacionado o un conjunto diferente de BSOD ya resuelto). Pasé un tiempo atrás y eliminé software / controladores, particularmente cualquier cosa que pudiera parecer sospechosa o aparecida en otros BSOD más antiguos (por ejemplo, cosas como cbfs5.sys).

He aplicado las actualizaciones de BIOS más recientes y los controladores más recientes que funcionan correctamente para mí. (Parte del hardware es antiguo y, en casos excepcionales, descubrí que los controladores más nuevos causan otros problemas). La mayoría de las actualizaciones de Windows están instaladas (puede haber algunas en los últimos meses que aún no se han aplicado; dado que es una estación de trabajo bastante crítica, adopto un enfoque muy controlado para las actualizaciones, creando una imagen de copia de seguridad completa de antemano y haciendo un conjunto de pruebas de regresión después de cada ciclo de actualización. Como resultado, la actualización es lenta, pero en general esta máquina es más estable y predecible que otras que mantengo que están configuradas para actualizarse automáticamente. Esa es una razón por la que estoy posponiendo Win 10 por ahora )

Todas las temperaturas parecen razonables.

Mi sistema está configurado para escribir volcados de memoria del kernel, pero por razones desconocidas para mí, no se escribe uno cuando ocurre este problema (ocurrió hoy antes, pero mi MEMORY.DMP en esa ruta tiene una fecha modificada de hace casi un mes).

La placa base es un Asus P6T6 WS Revolution (chipset X58) y la CPU es un Intel Xeon E5645 Hex Core de 2.4GHz. Tengo 48 GB de RAM ECC instalados.

No tengo mucha experiencia analizando volcados de memoria, y agradecería cualquier ayuda / sugerencia.

rkagerer
fuente
actualizar el BISO / UEFI, ejecute una herramienta CPU stresstest, tal vez la CPU está dañado
magicandre1981
Yo uso Prime95 que aún no ha descubierto un problema con él. ¿Alguna otra prueba de estrés de la CPU que sugiera?
rkagerer
pruebe también una herramienta de prueba de memoria como memtest86 +. También busque la actualización del BIOS o vuelva a actualizar el BIOS actual:
magicandre1981
Sí, hice todo eso. Prime95 (las tres pruebas de tortura), Memtest86, Memtest86 +; esas fueron las primeras cosas que hice.
rkagerer el
¿Has buscado una actualización de BIOS?
magicandre1981

Respuestas:

1

La falla, como se insinuó en el registro de error, proviene de la arquitectura Machine-Check del procesador .

Algunos antecedentes del blog Ntdebugging de MSDN : Interpretación de un error WHEA para un error de MCA .

Puede encontrar todos los detalles sangrientos de MCA en el Capítulo 15 del Manual del desarrollador de software Intel , Volumen 3B .

La información útil en el volcado es la última línea del registro de error, que es el valor del registro específico del modelo IA32_MCi_STATUS asociado. Eso está documentado en la sección 15.3.2.2 del manual de Intel. Su valor de 0xb200000000010005se desglosa como:

  • Bit 63: registro válido
  • Bit 61: error no corregido
  • Bit 60: error habilitado
  • Bit 57: contexto del procesador corrupto
  • Bits 31–16: Código de error específico del modelo 1
    (que no parece estar documentado públicamente para su procesador)
  • Bits 15–0: código de error MCA 5
    (que de acuerdo con la Tabla 15‑8 en la sección 15.9.1 significa error de paridad interna )

No sé si todo lo que sugiere su CPU, o placa base, o algún otro hardware podría estar defectuoso. Sin embargo, parece poco probable que sea un problema de software, porque el software no debería ser capaz de causar un error interno de hardware como este.

Puede intentar cambiar la configuración de volcado de "Volcado de memoria pequeña" a "Volcado de memoria del núcleo" y esperar a que vuelva a ocurrir la falla; quizás la información adicional en el archivo de volcado más grande le dará algunas pistas adicionales sobre lo que está sucediendo en el momento del bloqueo.

Brian Nixon
fuente
Gracias; esta es información super útil! En base a esto, ¿cree que es posible que un problema de memoria pueda estar causándolo, o podemos estar bastante seguros de que el culpable es la CPU o sus circuitos de soporte? Mi sistema está configurado para crear volcados de kernel, pero por alguna razón no los obtengo; tendré que hurgar para averiguar por qué (no te preocupes, puedo hacerlo solo). Con respecto a la recompensa, esperaré un par de días en caso de que alguien más intervenga, pero en este momento parece que lo conseguirás.
rkagerer
Sinceramente, no puedo decir dónde es más probable que sea la culpa. Mi intuición es que no debería ser memoria, porque esperaría que un problema allí fuera detectado e informado específicamente como un fallo de memoria en lugar de un fallo de la CPU.
Brian Nixon
Con respecto a los volcados de kernel: debe asegurarse de tener un archivo de paginación lo suficientemente grande como para contener uno (1 GB debería ser más que suficiente), y que tiene al menos 25 GB libres en el volumen en el que se guardará (o establecer HKLM\​SYSTEM\​CurrentControlSet\​Control\​CrashControl\​AlwaysKeepMemoryDumpen DWORD: 1). Revise su registro de eventos alrededor de los tiempos de accidentes anteriores para el evento BugCheck 1018 para ver si se eliminó su volcado. El Capítulo 14 de Windows Internals, Parte 2 entra en detalles sobre todo esto.
Brian Nixon
Recompensa otorgada. Póngase en contacto conmigo en [email protected] para organizar la porción de bitcoin (tenga en cuenta que el correo electrónico reenvía a mi cuenta real y caducará el 1 de diciembre).
rkagerer el
@rkagerer: Eso es muy generoso de tu parte. Sin embargo, no vengo a SU para ganar dinero. Considere donar a una o más de las organizaciones benéficas recomendadas por GiveWell , u otra causa que considere igualmente valiosa, porque hay muchas personas que necesitan ese dinero mucho más que yo. ¡Gracias!
Brian Nixon el