libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’– libnvme(9) β€” struct nvme_id_ctrl_nvm πŸ’–

okay bestie, welcome to the API Manual for libnvme, and specifically for this absolute icon: the I/O Command Set Specific Identify Controller data structure. it's called struct nvme_id_ctrl_nvm and honestly? she's giving "controller said what it can do, in NVM command set flavour." let's get into it 🫢


✨ NAME ✨

struct nvme_id_ctrl_nvm β€” the I/O Command Set Specific Identify Controller data structure, bestie. that's the whole vibe. πŸ’…


🌸 SYNOPSIS 🌸

here's the struct in all her glory β€” copy it exactly, no cap:

struct nvme_id_ctrl_nvm {
    __u8 vsl;
    __u8 wzsl;
    __u8 wusl;
    __u8 dmrl;
    __le32 dmrsl;
    __le64 dmsl;
    __u8 kpiocap;
    __u8 wzdsl;
    __le16 aocs;
    __le32 ver;
    __u8 lbamqf;
    __u8 rla;
    __le16 slmc;
    __u8 rsvd28[4068];
 };

yes there really is a 4068-byte reserved array at the end. she's mostly vibes and padding. πŸŽ€


πŸ¦‹ Members πŸ¦‹

okay so every field, one by one, no skipping β€” this is the whole point of the page fr fr:

  • vsl β€” Verify Size Limit. that's the ceiling on verify, periodt.
  • wzsl β€” Write Zeroes Size Limit. how big your write-zeroes can be. πŸ’€
  • wusl β€” Write Uncorrectable Size Limit. same energy, but for write uncorrectable.
  • dmrl β€” Dataset Management Ranges Limit. how many ranges dataset management is willing to deal with.
  • dmrsl β€” Dataset Management Range Size Limit. per-range size cap, iykyk.
  • dmsl β€” Dataset Management Size Limit. the big overall dataset management limit. πŸ‘‘
  • kpiocap β€” Key Per I/O Capabilities. key per I/O said "here's what I can do." πŸ”₯
  • wzdsl β€” Write Zeroes With Deallocate Size Limit. write zeroes with deallocate, specifically β€” not the same as wzsl, don't get it twisted. ✨
  • aocs β€” Admin Optional Command Support. which admin optional commands are supported, literally.
  • ver β€” Version. the version field. iconic of her.
  • lbamqf β€” LBA Migration Queue Format. LBA migration queue, but which format? this field.
  • rla β€” Rate Limiting Attributes β€” check enum nvme_id_ctrl_nvm_rla for the details bestie, that's where the real tea is. 🌸
  • slmc β€” Soft Limit Maximum Controllers, and it's 0's based, and it's valid only if SLS is set. like, only. don't forget the SLS part. πŸ™ˆ
  • rsvd28 β€” Reserved. nothing to see here, just 4068 bytes of "mind your business." πŸ’…
real talk: slmc is 0's based and conditional on SLS β€” that's not a vibe check, that's a correctness check. πŸ’–

🧚 sign-off 🧚

this little page is from October 2026, all about struct nvme_id_ctrl_nvm, and it lives in the libnvme(9) manual. go forth and identify those controllers, bestie β€” slay. πŸŒˆβ­πŸ“


πŸ“¦ where this page comes from