libnvme(2)

πŸ’– NAME

okay bestie, gather round β€” this is the manual page for libnvme, and today's episode is all about struct nvme_endurance_group_log a.k.a. the Endurance Group Information Log ✨ like, it's literally the receipts for how hard your endurance group has been working. no cap.


🌸 SYNOPSIS

here's the whole struct, exactly as it lives in the code, no edits, no vibes-based rewriting, periodt:

struct nvme_endurance_group_log {
    __u8 critical_warning;
    __u8 endurance_group_features;
    __u8 rsvd2;
    __u8 avl_spare;
    __u8 avl_spare_threshold;
    __u8 percent_used;
    __le16 domain_identifier;
    __u8 rsvd8[24];
    __u8 endurance_estimate[16];
    __u8 data_units_read[16];
    __u8 data_units_written[16];
    __u8 media_units_written[16];
    __u8 host_read_cmds[16];
    __u8 host_write_cmds[16];
    __u8 media_data_integrity_err[16];
    __u8 num_err_info_log_entries[16];
    __u8 total_end_grp_cap[16];
    __u8 unalloc_end_grp_cap[16];
    __u8 rsvd192[320];
};

like… she's big. she's detailed. she ate πŸ’…


πŸ‘‘ MEMBERS

one field at a time, bestie, we're going through all of them, nobody gets left behind 🫢

  • critical_warning β€” the Critical Warning field πŸ’€ like if something's alarming in here, this is where it tells you.
  • endurance_group_features β€” the Endurance Group Features field ✨ the whole feature situation, right here.
  • rsvd2 β€” Reserved πŸ™ˆ hands off, not for you, it's reserved.
  • avl_spare β€” Available Spare πŸ“ the spare that's still available, iconic.
  • avl_spare_threshold β€” Available Spare Threshold ⭐ the line where available spare becomes a situation.
  • percent_used β€” Percentage Used πŸ‘‘ like a battery percentage but for your endurance, and you WILL be checking it.
  • domain_identifier β€” Domain Identifier πŸ¦‹ which domain we're talking about, iykyk.
  • rsvd8 β€” Reserved πŸ™ˆ again. reserved. do not perceive it.
  • endurance_estimate β€” Endurance Estimate</endurance_estimate> πŸ’œ the estimate of endurance, fr fr.
  • data_units_read β€” Data Units Read 🌈 all the data units that got read.
  • data_units_written β€” Data Units Written 🌈 all the data units that got written.
  • media_units_written β€” Media Units Written 🌈 media units, written, that's the whole thing.
  • host_read_cmds β€” Host Read Commands πŸŽ€ read commands, from the host, slay.
  • host_write_cmds β€” Host Write Commands πŸŽ€ write commands, from the host.
  • media_data_integrity_err β€” Media and Data Integrity Errors 😭 the errors field. we do not want numbers here, bestie.
  • num_err_info_log_entries β€” Number of Error Information Log Entries πŸ’€ literally how many entries are in the error information log.
  • total_end_grp_cap β€” Total Endurance Group Capacity πŸ’– the total capacity of the endurance group.
  • unalloc_end_grp_cap β€” Unallocated Endurance Group Capacity πŸ’– the capacity that's still unallocated. main character energy.
  • rsvd192 β€” Reserved πŸ™ˆ the last one. also reserved. we respect the reserved fields in this house.

✨ gentle reminder bestie: those rsvd* fields are Reserved, so don't go poking at them like they're free real estate πŸ’…

and that's the whole page, no skips, all 19 members accounted for 🧚


sooo yeah, that was struct nvme_endurance_group_log from the libnvme API manual (section 2, the one and only 🫢), dated July 2026 β€” which is also the version/date stamp on this page, so consider this your cute little sign-off ✨ stay hydrated, check your critical_warning, and don't touch the reserved fields. bye bestie πŸ’–πŸŒˆ

πŸ“¦ where this page comes from