STRUCT MCE_HW_ERR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

struct mce_hw_err β€” the Hardware Error Record, bestie. This is from the Kernel API Manual, section 9, and it's literally the struct for keeping machine-check info and vendor-specific error tea organized. πŸ’…

🌸 SYNOPSIS 🌸

okay so here's the exact shape, no edits, no cap:

       struct mce_hw_err {
           struct mce m;
           union vendor_info {
             struct {
               u64 synd1;
               u64 synd2;
             } amd;
           } vendor;
        };

πŸŽ€ Members πŸŽ€

  • m β€” Machine Check record. The main character. πŸ‘‘
  • vendor β€” Vendor-specific error information. It's a union vendor_info, and inside it there's an amd struct with u64 synd1; and u64 synd2; β€” literally right there in the synopsis, iykyk. 🫢

πŸ¦‹ Description πŸ¦‹

okay so listen: vendor-specific fields should not be added to struct mce. Instead, vendors should export their vendor-specific data through their structure in the vendor union β€” yes, the one in the synopsis. That's the whole vibe: keep the vendor stuff in the vendor union, not in struct mce. ✨

AMD's vendor data is parsed by error decoding tools for supplemental error information. So the current offsets of existing fields must be maintained β€” do not move them, bestie, fr fr. Only add new fields at the end of AMD's vendor structure. 🚨

warning: this is not a drill. Moving AMD's existing fields messes with the offset expectations of error decoding tools. New fields go at the end of AMD's vendor structure only. πŸ’€

πŸ’– SEE ALSO πŸ’–

  • Kernel file ./arch/x86/include/asm/mce.h β€” go read the source, bestie. πŸ›

mwah πŸ’‹ β€” source/version: ./arch/x86/include/asm; date: October 2026. πŸŽ€

πŸ“¦ where this page comes from