libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’– NAME πŸ’–

okay so picture this: you're deep in the libnvme(9) API manual (yes, that's the manual this page lives in, hi bestie 🫢) and you bump into struct nvme_rate_limiting_port_descriptor β€” the Rate Limiting Port Descriptor, aka QPD for short. That's the whole vibe of this page. One struct. One queen. πŸ‘‘


✨ SYNOPSIS ✨

here's the whole thing laid out, and yes you're gonna want to screenshot this πŸ“Έ:

struct nvme_rate_limiting_port_descriptor {
    __le16 portid;
    __le16 nc;
    __u8 rsvd4[3];
    __u8 abwsf;
    struct nvme_rate_limiting_max_access_descriptor rlma;
    __le64 arbwv;
    __le64 awbwv;
    __le32 ariops;
    __le32 awiops;
    __u8 rsvd64[448];
    __u8 vs[512];
    __le32 rlc_offset[];
};

lowkey a whole little ecosystem in there. let's break it down member by member πŸ’…


πŸŽ€ Members πŸŽ€

  • portid β€” the NVM subsystem Port Identifier</c>. it's the port's whole identity, its main character energy fr.
  • nc β€” the Number of Controllers in rlc_offset, and yeah it's 0's based, so don't come for me when your math is off by one 😭
  • rsvd4 β€” Reserved. nothing to see here, move along bestie πŸ™ˆ
  • abwsf β€” the Available Bandwidth Scale Factor ✨ see enum nvme_rate_limiting_bw_scale for the deets (iykyk).
  • rlma β€” Rate Limiting Maximum Access to the non-volatile storage medium of the port. it's a struct nvme_rate_limiting_max_access_descriptor, and it is doing the most, respectfully 🫢
  • arbwv β€” Available Read Bandwidth Value of the NVM subsystem to the transport. reads only, we stan a bandwidth king πŸ‘‘
  • awbwv β€” Available Write Bandwidth Value of the NVM subsystem to the transport. the write counterpart, iconic, no notes 🌸
  • ariops β€” Available Read IOPS of the NVM subsystem to the transport. IOPS but for reading, slay πŸ”₯
  • awiops β€” Available Write IOPS of the NVM subsystem to the transport. and IOPS for writing, the matching set is complete πŸ’œ
  • rsvd64 β€” Reserved. it's giving padding, and honestly? valid πŸ’€
  • vs β€” Vendor Specific. whatever your vendor wants to do in here is between them and their god, not my business πŸ¦‹
  • rlc_offset β€” Dword offsets, relative to the start of the Rate Limiting log page, to the Rate Limiting Controller Descriptors accessible by this port, and there's exactly nc + 1 entries β€” see, I told you that 0's based thing would come back around 😌
literally the entire struct is here, nothing skipped, nothing merged. if it's in the layout it's in this list, periodt. ✨

and that's the page bestie!! πŸŽ€ this one's straight out of the libnvme(9) API Manual, dated October 2026 β€” so go forth, read them rate limiting port descriptors, and remember: every field matters, even the reserved ones πŸ’–πŸ«Ά

πŸ“¦ where this page comes from