nvme_mi_admin_get_log_page(2)

πŸ’– nvme_mi_admin_get_log_page(2) πŸ’–

okay bestie, so this one lives in the libnvme API manual (section 2, the syscall/system-interface girlies), and it's your go-to for pulling log page data straight off a controller. literally the gossip channel of NVMe. let's get into it ✨


✨ NAME ✨

nvme_mi_admin_get_log_page β€” Retrieve log page data from controller πŸ¦‹


🌸 SYNOPSIS 🌸

int nvme_mi_admin_get_log_page (nvme_mi_ctrl_t ctrl , __u32 xfer_len ,
struct nvme_get_log_args *args );

πŸŽ€ ARGUMENTS πŸŽ€

  • ctrl β€” the Controller you're querying πŸ’… like, which one are we snooping on
  • xfer_len β€” the chunk size of the read πŸ“¦ that's how much we grab at a time
  • args β€” the Get Log Page command arguments, the whole vibe spec of the request

πŸ‘‘ DESCRIPTION πŸ‘‘

So it performs a Get Log Page Admin command exactly as specified by args. fr fr.

The response data gets stored in args->data, which should be a buffer of args->data_len bytes. πŸ“ And once the command completes successfully, the resulting data length is stored in args->data_len β€” so that field is lowkey both the input size and the output size, iykyk.

This request may be implemented as multiple log page commands, in order to fit within MI message-size limits. 😭 like it's not even one big ask, it might get chopped up into little pieces so nothing overflows.

See: struct nvme_get_log_args β€” go read that one, it's giving main character energy πŸ’œ


πŸ’€ RETURN πŸ’€

The nvme command status if a response was received (see enum nvme_status_field), or -1 with errno set otherwise. periodt.

no cap: if you get -1, go check errno immediately. don't just stand there bestie πŸ™ˆ

🫢 SEE ALSO 🫢

struct nvme_get_log_args, enum nvme_status_field β€” the supporting cast, iconic as always ⭐


okay that's the whole page, mwah πŸ’‹ this was documented July 2026 as part of the libnvme API manual. go slay your log pages, bestie πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from