Excepción de verificación de máquina

Tipo de error de hardware de la computadora

Una excepción de verificación de máquina ( MCE ) es un tipo de error informático que se produce cuando se detecta un problema relacionado con el hardware del equipo . En la mayoría de los ordenadores personales del mercado masivo, una MCE indica un hardware defectuoso o mal configurado.

La naturaleza y las causas de los MCE pueden variar según la arquitectura y la generación del sistema. En algunos diseños, un MCE es siempre un error irrecuperable que detiene la máquina y requiere un reinicio . En otras arquitecturas, algunos MCE pueden no ser fatales, como los errores de un solo bit corregidos por la memoria ECC . En algunas arquitecturas, como PowerPC , ciertos errores de software pueden causar MCE, como un acceso no válido a la memoria. En otras arquitecturas, como x86 , los MCE suelen originarse solo en el hardware.

Informes

Sistemas operativos de mainframe de IBM

El sistema operativo IBM System/360 ( OS/360 ) registra los errores de entrada/salida en un conjunto de datos denominado SYS1.LOGREC. Desde entonces, IBM ha acuñado el término conjunto de datos de registro de errores ( ERDS ) para las versiones posteriores que permiten que la instalación elija el nombre y para los sistemas operativos no derivados de OS/360. [1]

Sistema operativo/360

En OS/360, la instalación puede elegir varios niveles de soporte para el manejo de comprobaciones de máquina. El más sofisticado, Machine Check Handler (MCH), registra los datos de fallos en SYS1.LOGREC e intenta la recuperación. La instalación puede imprimir esos datos utilizando la ayuda de servicio del Programa de edición e impresión de registros ambientales (EREP) o la versión independiente SEREP. El MCH puede manejar fallos de memoria en secciones de control de núcleo actualizables leyendo una copia nueva de SYS1.ASRLIB y puede manejar errores de memoria en áreas transitorias de SVC leyendo una copia nueva del módulo SVC de SYS1.SVCLIB.

Sistema operativo z

En z/OS, la instalación puede utilizar un ERDS o puede definir un flujo de registro del registrador del sistema z/OS [2] para almacenar los datos de error. Al igual que con OS/360, la instalación utiliza EREP para imprimir esos datos; SEREP ya no está disponible. El MCH ya no es opcional y maneja muchos más modos de falla que el MCH de OS/360.

Microsoft Windows

En las plataformas Microsoft Windows , en caso de un MCE irrecuperable, el sistema genera un BugCheck, también llamado error STOP o pantalla azul de la muerte .

Las versiones más recientes de Windows utilizan la arquitectura de errores de hardware de Windows (WHEA) y generan el código de detención 0x124, WHEA_UNCORRECTABLE_ERROR. Los cuatro parámetros (entre paréntesis) varían, pero el primero siempre es 0x0 para un MCE. [3] Ejemplo:

 DETENER: 0x00000124 (0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000)

Las versiones anteriores de Windows utilizan la arquitectura Machine Check , con el código STOP 0x9C, MACHINE_CHECK_EXCEPTION. [4] Ejemplo:

 DETENER: 0x0000009C (0x00000030, 0x00000002, 0x00000001, 0x80003CBA)

Linux

En Linux , el núcleo escribe mensajes sobre MCE en el registro de mensajes del núcleo y en la consola del sistema . Cuando los MCE no son fatales, normalmente también se copian en el registro del sistema o en el diario systemd . En algunos sistemas, los errores ECC y otros errores corregibles pueden informarse a través de las funciones de MCE. [5]

Ejemplo:

 CPU 0: Excepción de comprobación de máquina: 0000000000000004 Banco 2: f200200000000863 Pánico en el kernel: contexto de CPU corrupto

Tipos de problemas

Algunos de los principales problemas de hardware que provocan MCE incluyen:

Posibles causas

Los errores de la máquina son un problema de hardware, no de software. Suelen ser el resultado de overclocking o sobrecalentamiento. En algunos casos, la CPU se apaga sola una vez que supera un límite térmico para evitar daños permanentes. Pero también pueden deberse a errores de bus introducidos por otros componentes defectuosos, como la memoria o los dispositivos de E/S. Las posibles causas incluyen:

  • Enfriamiento deficiente de la CPU debido a un disipador de calor de la CPU y ventiladores de la carcasa (o filtros) que están obstruidos con polvo o se han aflojado.
  • Overclocking más allá de la frecuencia de reloj más alta en la que la CPU aún es confiable.
  • Placa base defectuosa.
  • Procesador defectuoso.
  • Memoria fallida.
  • Controladores de E/S defectuosos, ya sea en la placa base o en tarjetas independientes.
  • Dispositivos de E/S defectuosos.
  • Suministro de energía inadecuado o defectuoso.

Los problemas de refrigeración suelen ser evidentes tras una inspección. Una placa base o un procesador defectuosos se pueden identificar cambiándolos por piezas que funcionen. La memoria se puede comprobar iniciando el sistema con una herramienta de diagnóstico, como memtest86 . Los dispositivos de E/S y controladores defectuosos no esenciales se pueden identificar desconectándolos si es posible o desactivándolos para ver si el problema desaparece. Si las fallas suelen producirse poco después de iniciar el sistema operativo o no se producen en absoluto o durante días, puede ser indicativo de un problema de suministro de energía. En el caso de un problema de suministro de energía, la falla suele producirse cuando la demanda de energía alcanza su punto máximo cuando el sistema operativo inicia cualquier dispositivo externo para su uso.

Descifrando MCE

Para los procesadores IA-32 e Intel 64, consulte el Manual del desarrollador de software de arquitecturas Intel 64 e IA-32 [6] Capítulo 15 (Arquitectura Machine-Check), o el artículo de Microsoft Knowledge Base sobre excepciones de Windows. [7]

Programas para decodificar MCE de Intel y AMD

  • rasdaemon [8] es una herramienta de registro RAS ( confiabilidad, disponibilidad y capacidad de servicio ) para Linux . Registra errores de memoria, utilizando los eventos de seguimiento EDAC. EDAC es un subsistema del kernel de Linux que maneja la detección de errores ECC de los controladores de memoria para la mayoría de los conjuntos de chips en arquitecturas i386 y x86_64. También existen controladores EDAC para otras arquitecturas como arm. Se recomienda usar rasdaemon para recopilar información MCE en sistemas Linux porque mcelog ha quedado obsoleto a partir de 2017. [9] [10] [11] [12]
  • mcelog [13] es un demonio Linux creado por Andi Kleen para manejar MCE para procesadores x86. mcelog también puede decodificar comprobaciones de máquina. mcelog se considera funcionalmente obsoleto a partir de 2017. [11] [12] El reemplazo de mcelog para sistemas Linux es rasdaemon. [9] [10]
  • parsemce [14] es un programa para Linux creado por Dave Jones para decodificar MCE de los procesadores AMD K7 .
  • mced [15] (mcedaemon) es un programa Linux de Tim Hockin que recopila MCE del núcleo y alerta a las aplicaciones interesadas. Tenga en cuenta que no intenta interpretar los datos de MCE, simplemente alerta a otros programas.
  • mcat es un programa de línea de comandos de Windows de AMD para decodificar MCE de los procesadores AMD K8 , familia 0x10 y 0x11 .

Véase también

Referencias

  1. ^ "Capítulo 1. Introducción a EREP" (PDF) . Programa de edición e impresión de registros ambientales (EREP) 3.5 - Guía del usuario (PDF) . IBM . 30 de septiembre de 2021. pág. 1. GC35-0151-50 . Consultado el 20 de febrero de 2023 .
  2. ^ Guía del programador de sistemas para: z/OS System Logger (PDF) (segunda edición). IBM . Julio de 2007. SG24-6898-01 . Consultado el 20 de febrero de 2023 . {{cite book}}: |work=ignorado ( ayuda )
  3. ^ "Comprobación de error 0x124: WHEA_UNCORRECTABLE_ERROR". Microsoft. 2022-11-03 . Consultado el 2022-12-11 .
  4. ^ "Comprobación de error 0x9C: MACHINE_CHECK_EXCEPTION". Microsoft. 2021-12-14 . Consultado el 2022-12-11 .
  5. ^ "mcelog no funciona con procesadores AMD de la familia 16 y superiores en SLES11 SP3". SuSE. 2022-09-27 . Consultado el 2022-12-11 .
  6. ^ "Arquitectura de comprobación de máquina". Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32, volumen 3B: Guía de programación del sistema, parte 2. Intel Corporation . Noviembre de 2018.
  7. ^ "Mensaje de error de detención en Windows XP que puede recibir: "0x0000009C (0x00000004, 0x00000000, 0xb2000000, 0x00020151)"". MSDN . 2015-12-07 . Consultado el 2017-07-13 .
  8. ^ Mauro Carvalho Chehab (mchehab) (2023-02-20). "rasdaemon es una herramienta de registro RAS (Reliability, Availability and Serviceability)". github.com . Consultado el 2023-02-20 .
  9. ^ ab "Excepción de comprobación de máquina". wiki.archlinux.org . 2021-05-08 . Consultado el 2023-02-21 .
  10. ^ ab "ECC RAM". wiki.gentoo.org . 2022-12-30 . Consultado el 2023-02-21 .
  11. ^ ab "x86/mce: Eliminar y descontinuar el controlador /dev/mcelog". git.kernel.org . 2017-03-28 . Consultado el 2023-02-21 .
  12. ^ ab "x86/mce: Factorizar y desaprobar el controlador /dev/mcelog". github.com/torvalds/linux/ . 2017-03-28 . Consultado el 2023-02-21 .
  13. ^ "mcelog: Manejo avanzado de errores de hardware para Linux x86". 20 de abril de 2015. Consultado el 13 de julio de 2017 .
  14. ^ "parsemce: analizador de controlador de excepción de comprobación de máquina Linux". 22 de julio de 2003. Consultado el 13 de julio de 2017 .
  15. ^ mcedaemon en GitHub
  • mcelog: Manejo avanzado de errores de hardware para Linux x86
  • parsemce: Analizador del controlador de excepciones de verificación de máquinas Linux
Obtenido de "https://es.wikipedia.org/w/index.php?title=Excepción_de_comprobación_de_máquina&oldid=1233749758"