• Huang Ying's avatar
    ACPI, APEI, Use ERST for persistent storage of MCE · 482908b4
    Huang Ying authored
    Traditionally, fatal MCE will cause Linux print error log to console
    then reboot. Because MCE registers will preserve their content after
    warm reboot, the hardware error can be logged to disk or network after
    reboot. But system may fail to warm reboot, then you may lose the
    hardware error log. ERST can help here. Through saving the hardware
    error log into flash via ERST before go panic, the hardware error log
    can be gotten from the flash after system boot successful again.
    
    The fatal MCE processing procedure with ERST involved is as follow:
    
    - Hardware detect error, MCE raised
    - MCE read MCE registers, check error severity (fatal), prepare error record
    - Write MCE error record into flash via ERST
    - Go panic, then trigger system reboot
    - System reboot, /sbin/mcelog run, it reads /dev/mcelog to check flash
      for error record of previous boot via ERST, and output and clear
      them if available
    - /sbin/mcelog logs error records into disk or network
    
    ERST only accepts CPER record format, but there is no pre-defined CPER
    section can accommodate all information in struct mce, so a customized
    section type is defined to hold struct mce inside a CPER record as an
    error section.
    Signed-off-by: default avatarHuang Ying <ying.huang@intel.com>
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    482908b4
mce.c 50.1 KB