NVME-GET-PROPERTY(1)
π nvme-get-property β the one where we peek at controller properties
ok so this is a page from the NVMe manual (yes, the nvme-user suite one, we'll get to that) and it's all about nvme-get-property, which literally reads and shows the defined NVMe controller property for NVMe over Fabric. bestie. it reads properties. that's the whole vibe. π
β¨ SYNOPSIS β¨
nvme [<global-options>] get-property <device>
[--offset=<offset> | -O <offset>]
that's it, that's the shape of it π«Ά
πΈ DESCRIPTION πΈ
Reads and shows the defined NVMe controller property for NVMe over Fabric.
ok so like, you point it at a device, you tell it which property, and it shows you the thing. no cap. π
π¦ OPTIONS π¦
-O <offset>,--offset=<offset>β the offset of the property, or the name of a register, e.g.0x14orcc. and here's the lore: the properties of a fabrics controller arecap(0x0),vs(0x8),cc(0x14),csts(0x1c),nssr(0x20),nssd(0x64) andcrto(0x68) β and the transport may define more, so don't come for me if you see a name I didn't list π
π GLOBAL OPTIONS π
these ones live at the top-level nvme command and are totally available to this subcommand, iykyk:
--dry-runβ prints the command that would be executed, but does not actually execute it. window shopping energy ποΈ--no-ioctl-probingβ disables probing for 64-bit IOCTL support.--no-retriesβ disables the retry logic on transient errors. one shot, no takebacks π-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,json, orbinary. only one output format at a time, pick a lane bestie β¨--output-format-version=<version>β selects the output format version. version1uses the original field naming, while version2(the default) gives you more consistent and script-friendly field names. any other version? rejected. we don't do that here π--quietβ suppresses informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. it's giving "shhh, i'm concentrating" π€«--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. the supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir.--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). forever and ever, no rush π-v,--verboseβ increases the level of detail in the output. may be specified multiple times to further increase verbosity. stack it, queen π
little PSA: these options can also be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file. always. periodt. π
π EXAMPLES π
- the following will run the
get-propertycommand with offset 0:
# nvme get-property /dev/nvme0 --offset=0x0 --verbose
ate. no crumbs. π₯
π BUGS π
so, currently the CAP value is truncated to 32 bits due to a limitation in the ioctl interface π yeah. i know.
but!! in a recent enough kernel, the 64 bit value is shown in kernel traces β¨ here's the lil ritual:
- first, enable traces by this command:
# echo 1 > /sys/kernel/debug/tracing/events/nvme/enable
- then look for NVMe Fabrics command (
0x7f) at trace/sys/kernel/debug/tracing/trace
detective mode activated π΅οΈββοΈ
π§ NVME π§
part of the nvme-user suite π«Ά
and that's the whole page, bestie β no gatekeeping, no skipped flags, all of it π go read some properties, you absolute icon π
signed off with love from the NVMe manual, dated 10/30/2026 β catch you on the next page π
π¦ 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