• Aravind Gopalakrishnan's avatar
    x86/MCE/AMD: Enable thresholding interrupts by default if supported · d79f931f
    Aravind Gopalakrishnan authored
    We setup APIC vectors for threshold errors if interrupt_capable.
    However, we don't set interrupt_enable by default. Rework
    threshold_restart_bank() so that when we set up lvt_offset, we also set
    IntType to APIC and also enable thresholding interrupts for banks which
    support it by default.
    
    User is still allowed to disable interrupts through sysfs.
    
    While at it, check if status is valid before we proceed to log error
    using mce_log. This is because, in multi-node platforms, only the NBC
    (Node Base Core, i.e. the first core in the node) has valid status info
    in its MCA registers. So, the decoding of status values on the non-NBC
    leads to noise on kernel logs like so:
    
      EDAC DEBUG: amd64_inject_write_store: section=0x80000000 word_bits=0x10020001
      [Hardware Error]: Corrected error, no action required.
      [Hardware Error]: CPU:25 (15:2:0) MC4_STATUS[-|CE|-|-|-
      [Hardware Error]: Corrected error, no action required.
      [Hardware Error]: CPU:26 (15:2:0) MC4_STATUS[-|CE|-|-|-
      <...>
      WARNING: CPU: 25 PID: 0 at drivers/edac/amd64_edac.c:2147 decode_bus_error+0x1ba/0x2a0()
      WARNING: CPU: 26 PID: 0 at drivers/edac/amd64_edac.c:2147 decode_bus_error+0x1ba/0x2a0()
      Something is rotten in the state of Denmark.
    Suggested-by: default avatarBorislav Petkov <bp@suse.de>
    Signed-off-by: default avatarAravind Gopalakrishnan <aravind.gopalakrishnan@amd.com>
    Link: http://lkml.kernel.org/r/1422896561-7695-1-git-send-email-aravind.gopalakrishnan@amd.com
    [ Massage commit message. ]
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    d79f931f
mce_amd.c 17.1 KB