STRUCT CXL_MEM_REPAIR_ATTRBS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct cxl_mem_repair_attrbs(9) β€” the Kernel API Manual, but make it make sense

okay so bestie, welcome to the glow-up of struct cxl_mem_repair_attrbs(9) β€” that's section 9 of the Kernel API Manual, for the record, iykyk. this is the little struct that holds all the tea about how to repair a chunk of CXL memory, and honestly? it ate. let's get into it ✨


🌸 NAME 🌸

struct cxl_mem_repair_attrbs β€” CXL memory repair attributes πŸ’–

like, literally the attributes. for repairing. memory. CXL memory specifically. no cap.


πŸŽ€ SYNOPSIS πŸŽ€

here's the whole struct, verbatim, do not come for me:

struct cxl_mem_repair_attrbs {
    u64 dpa;
    u32 nibble_mask;
    u32 row;
    u16 column;
    u8 channel;
    u8 sub_channel;
    u8 rank;
    u8 bank_group;
    u8 bank;
    enum cxl_mem_repair_type repair_type;
 };

look at those types bestie β€” u64 for the big one, u32 holding it down mid-tier, u16 keeping it cute, then a whole squad of u8s, and finally an enum cxl_mem_repair_type as the main character at the end. the way that it's ordered? iconic. 🫢


πŸ‘‘ Members πŸ‘‘

πŸ¦‹ the address-y ones

  • dpa β€” DPA of memory to repair. that's the direct physical address, the where of it all, the coordinates of the vibes you're fixing πŸ’«

✨ nibble_mask

nibble mask β€” identifies one or more nibbles on the memory bus. it's giving "which half-bytes are we talking about" πŸ“ literally nibbles. plural-able. a mask of them. we love a bit of precision.

🌈 the "where in the memory" squad

each of these is literally just the thing it says on the tin β€” the row/column/etc of memory to repair, one per kind of coordinate:

  • row β€” row of memory to repair 🌸
  • column β€” column of memory to repair 🌸
  • channel β€” channel of memory to repair 🌸
  • sub_channel β€” sub channel of memory to repair 🌸
  • rank β€” rank of memory to repair 🌸
  • bank_group β€” bank group of memory to repair 🌸
  • bank β€” bank of memory to repair 🌸

it's a whole coordinate system bestie, every level of it, and struct is holding all of them at once like the generous icon it is πŸ’…

πŸ”₯ repair_type

repair type β€” for eg. PPR, memory sparing etc. so this is the what kind of repair field, because "repair" is a whole spectrum and we are not out here guessing. PPR? memory sparing? etc.? all covered, all valid, all slay πŸ’€


πŸ‘€ SEE ALSO πŸ‘€

  • Kernel file ./drivers/cxl/core/edac.c β€” go read it, that's where the plot happens 🧚

ngl this page is short but it's complete β€” nothing skipped, nothing summarised, we keep every field. periodt. πŸ’œ

made with love in ./drivers/cxl/core, dated October 2026, and yeah β€” it really is struct cxl_m...epair_attrbs(9) at the bottom too, just like the original, because the footer eats and we respect it πŸ˜­πŸŽ€

πŸ“¦ where this page comes from