STRUCT EDAC_RAW_ERROR_DESC(9)
π struct edac_raw_error_desc(9) π
okay so real talk β this is a page straight outta the Kernel API Manual, and it's about struct edac_raw_error_desc, aka the raw error report structure. that's the little bundle of info the kernel uses to describe a memory error before it gets all dressed up and reported π
bestie, it's giving "receipt for a bad time" and honestly? iconic.
β¨ SYNOPSIS β¨
like, here's the whole shape of it, no cap:
struct edac_raw_error_desc {
char location[LOCATION_SIZE];
char label[(EDAC_MC_LABEL_LEN + 1 + sizeof(OTHER_LABEL)) *
EDAC_MAX_LABELS];
long grain;
u16 error_count;
enum hw_event_mc_err_type type;
int top_layer;
int mid_layer;
int low_layer;
unsigned long page_frame_number;
unsigned long offset_in_page;
unsigned long syndrome;
const char *msg;
const char *other_detail;
};
not me staring at that label array size like π β it's literally (EDAC_MC_LABEL_LEN + 1 + sizeof(OTHER_LABEL)) * EDAC_MAX_LABELS, and yes, the wrapping is exactly what the kernel hands you. respect it π«Ά
πΈ MEMBERS πΈ
okay now the main character content β every single field, explained with love:
locationβ where the error happened, literally the location of the error πlabelβ the label of the affected DIMM(s). yes, DIMM*s*, plural, she can hold a whole squad πgrainβ the minimum granularity for an error report, in bytes. small but mighty β¨error_countβ how many errors of the same type showed up. it's au16, keep that in mind π₯typeβ the severity of the error (CE/UE/Fatal). vibe check on the damage level πtop_layerβ the top layer of the error (layer[0]) πmid_layerβ the middle layer of the error (layer[1]) πlow_layerβ the low layer of the error (layer[2]) πΈpage_frame_numberβ the page where the error happened. the scene of the crime, fr fr πoffset_in_pageβ the page offset. micro-location tea π¦syndromeβ the syndrome of the error, or0if it's unknown or if the syndrome is not applicable. zero means "idk or n/a", not "all good" β don't get it twisted πmsgβ the error message. the announcement, the moment πother_detailβ other driver-specific detail about the error. the extra lore, iykyk π
π SEE ALSO π
go read these next, bestie, they're all in the kernel file ./include/linux/edac.h:
enum dev_type(9)enum hw_event_mc_err_type(9)enum mem_type(9)enum edac_type(9)enum scrub_type(9)enum edac_mc_layer_type(9)struct edac_mc_layer(9)struct rank_info(9)edac_get_dimm(9)struct edac_scrub_ops(9)struct edac_ecs_ops(9)struct edac_mem_repair_ops(9)
lowkey a whole study session right there β read them in order and you'll eat, no notes π
and that's the whole page, periodt π this came from the ./include/linux section of the Kernel API Manual, dated October 2026 β mwah, tysm for reading, bestie πβ¨π¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms