• Andi Kleen's avatar
    HWPOISON: Add new SIGBUS error codes for hardware poison signals · ad5fa913
    Andi Kleen authored
    Add new SIGBUS codes for reporting machine checks as signals. When
    the hardware detects an uncorrected ECC error it can trigger these
    signals.
    
    This is needed for telling KVM's qemu about machine checks that happen to
    guests, so that it can inject them, but might be also useful for other programs.
    I find it useful in my test programs.
    
    This patch merely defines the new types.
    
    - Define two new si_codes for SIGBUS.  BUS_MCEERR_AO and BUS_MCEERR_AR
    * BUS_MCEERR_AO is for "Action Optional" machine checks, which means that some
    corruption has been detected in the background, but nothing has been consumed
    so far. The program can ignore those if it wants (but most programs would
    already get killed)
    * BUS_MCEERR_AR is for "Action Required" machine checks. This happens
    when corrupted data is consumed or the application ran into an area
    which has been known to be corrupted earlier. These require immediate
    action and cannot just returned to. Most programs would kill themselves.
    - They report the address of the corruption in the user address space
    in si_addr.
    - Define a new si_addr_lsb field that reports the extent of the corruption
    to user space. That's currently always a (small) page. The user application
    cannot tell where in this page the corruption happened.
    
    AK: I plan to write a man page update before anyone asks.
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    ad5fa913
siginfo.h 8.73 KB