libnvme(9)
π 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 inrlc_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 β¨ seeenum nvme_rate_limiting_bw_scalefor the deets (iykyk).rlmaβ Rate Limiting Maximum Access to the non-volatile storage medium of the port. it's astruct 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 exactlync + 1entries β 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
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms