STRUCT RANK_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct rank_info(9) πŸ’…

okay bestie, welcome to the Kernel API Manual β€” yes we're reading kernel docs together, this is our bonding era. today's main character is struct rank_info, no cap.


✨ NAME ✨

struct rank_info β€” literally holds the info for one DIMM rank. one. singular. she's not doing multiples, that's not her job πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

struct rank_info {
    int chan_idx;
    struct csrow_info *csrow;
    struct dimm_info *dimm;
    u32 ce_count;
 };

look at her. four fields. small but mighty πŸ’–


🌸 Members 🌸

  • chan_idx β€” the channel number where this rank lives (typically 0 or 1, iykyk). it's an int, she's flexible like that.
  • csrow β€” a pointer to the chip select row structure, aka the parent structure πŸ‘‘. you find where the rank actually is using the vector (csrow->csrow_idx, chan_idx) β€” write that down, it's giving coordinates.
  • dimm β€” a pointer to the struct dimm_info, which is where the DIMM label information is stored 🏷️. that's where the name tag lives.
  • ce_count β€” number of correctable errors for this rank. it's a u32. count 'em, bestie πŸ”₯

🧚 Description 🧚

FIXME: currently, the EDAC core model will assume one DIMM per rank. this is a bad assumption, but it makes this patch easier 😭. later patches in this series will fix this issue β€” so she's a work in progress, we love her anyway 🫢

⭐ SEE ALSO ⭐

kernel file ./include/linux/edac.h β€” plus the whole friend group, go say hi:

  • 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 edac_raw_error_desc(9)
  • edac_get_dimm(9)
  • struct edac_scrub_ops(9)
  • struct edac_ecs_ops(9)
  • struct edac_mem_repair_ops(9)

🌈 and that's the whole vibe check! this page comes to you from ./include/linux, dated October 2026 β€” iconic source, iconic date, periodt πŸ’œ

πŸ“¦ where this page comes from