NVME-RESV-REPORT(1)
π nvme-resv-report β the NVMe Manual, but make it bestie (section 1, obvi)
okay so this is nvme-resv-report from the NVMe Manual (section 1, she's a user command, very demure) β "Send NVMe Reservation Report, parse the result" β¨
πΈ NAME πΈ
nvme-resv-report β send the NVMe Reservation Report and then parse whatever comes back, bestie π
π¦ SYNOPSIS π¦
nvme [<global-options>] resv report <device>
[--namespace-id=<nsid> | -n <nsid>]
[--numd=<num-dwords> | -d <num-dwords>]
[--eds | -e]
[--raw-binary | -b]
like, look at her. iconic. π
π DESCRIPTION π
the Reservation Report command returns a Reservation Status data structure to host memory, and that structure describes the registration and reservation status of a namespace. no cap, that's the whole job. π
the size of the Reservation Status data structure is a function of the number of controllers in the NVM Subsystem that are associated with hosts that are registrants of the namespace β basically, there's a Registered Controller data structure for each such controller. one per controller, periodt. β¨
and here's the thing: that size is not known in advance, so the transfer gets sized automatically. the fixed-size header of the structure is read first, and then the structure is read again with a buffer large enough to hold every registrant the namespace reports. it's giving "measure twice, read twice" π«Ά if you'd rather not vibe with the automatic sizing, pass --numd to transfer a fixed length instead.
okay so heads up, because this matters: the barenvme resv-reportform (without a space) still works as a deprecated alias and will be removed in a future major version. new scripts should usenvme resv reportinstead. we're moving on, she's retiring, wish her well π
β¨ OPTIONS β¨
-n <nsid>,--namespace-id=<nsid>β retrieve the reservation report structure for the given nsid. this is required for the character devices, or it overrides the block nsid if given. also you can pass the broadcast value0xffffffffas eitherallor-1. iykyk π-d <num-dwords>,--numd=<num-dwords>β transfer a fixed number of Dwords of the Reservation Status structure instead of sizing the transfer automatically. careful though: the count is zero-based, so one Dword more than requested gets transferred. she's quirky like that π-e,--edsβ request extended Data Structure: if this bit is set to a1, then the controller returns the Extended Data Structure. slay π¦-b,--raw-binaryβ print the raw buffer to stdout. structure is not parsed by the program, so it's just vibes and bytes π₯
π GLOBAL OPTIONS π
these live at the top-level nvme command, but they're available to this subcommand too. so generous of them π
--dry-runβ print the command that would be executed, but do not actually execute it. manifesting without committing π§--no-ioctl-probingβ disable probing for 64-bit IOCTL support.--no-retriesβ disable retry logic on transient errors. one shot, one opportunity β-o <fmt>,--output-format=<fmt>β set the reporting format tonormal,tabular,json, orbinary. only one output format may be used at a time, so pick your fighter π--output-format-version=<version>β select the output format version. version1uses the original field naming, while version2(the default) provides more consistent and script-friendly field names. other versions are rejected. sorry to those versions π--quietβ suppress informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. she's not silencing the truth, just the chatter πΈ--set-options=<key=value>[,<key=value>...]β set libnvme library options for this invocation. supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir. mix and match, it's a whole menu π--timeout=<ms>β set the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). no clock, no stress π-v,--verboseβ increase the level of detail in the output. may be specified multiple times to further increase verbosity. go off, stack her π
also!! these options can be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. the command line is the main character, always π
β EXAMPLES β
No examples yet. (tragic, i know. we're waiting on the lore π)
π NVME π
Part of the nvme-user suite. one of us, one of us π«Ά
and that's the page, bestie!! this one came from the NVMe Manual, dated 10/30/2026, and it's the work of the nvme-user suite β go be iconic with your reservations πβ¨π
π¦ 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