NVME-DSM(1)
๐
NVME-DSM(1) โ nvme-dsm โจ
okay so this is a page from the NVMe manual, section 1, and it's all about nvme-dsm โ sending a Data Set Management command and getting the results back. bestie, let's get into it ๐ซถ
๐ธ NAME ๐ธ
nvme-dsm โ Send NVMe Data Set Management, return results ๐
โจ SYNOPSIS โจ
nvme [<global-options>] dsm <device> [--namespace-id=<nsid> | -n <nsid>]
[--ctx-attrs=<attribute-list,> | -a <attribute-list,>]
[--blocks=<nlb-list,> | -b <nlb-list,>]
[--slbs=<slba-list,> | -s <slba-list,>]
[--ad=<deallocate> | -d <deallocate>]
[--idw=<write> | -w <write>] [--idr=<read> | -r <read>]
[--cdw11=<cdw11> | -c <cdw11>]
๐ฆ DESCRIPTION ๐ฆ
so for the NVMe device you hand it, this sends a Data Set Management command and gives you back the result and the returned structure. no cap. ๐ฌ
the <device> parameter is mandatory โ like, you literally cannot skip it โ and it can be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). if you give it the character device, then the --namespace-id option is mandatory too, otherwise it'll just use the ns-id of the namespace for the block device you opened. and for block devices, the ns-id it uses can be overridden with that same option. iykyk ๐
you must specify at least one of the values for the range list. and if the range lists you provide don't list the same number of elements, the default values for the remaining ones in the range get set to 0. lowkey important ๐ฅ
the command dword 11 may be provided at the command line. for convenience, the current defined attributes (discard, integral read/write) for a data-set management have flags. if cdw11 is specified, that will override any settings the flags may have provided โ so yeah, it wins, periodt ๐
๐ OPTIONS ๐
-n <nsid>,--namespace-id=<nsid>โ sends the command with the requested nsid. this is required for the character devices, or overrides the block nsid if given. the broadcast value0xffffffffcan also be given asallor-1. ๐ฉท-a <attribute-list,>,--ctx-attrs=<attribute-list>โ comma separated list of the context attributes in each range โจ-b <nlb-list,>,--blocks=<nlb-list,>โ comma separated list of the number of blocks in each range ๐งฎ-s <slba-list,>,--slbs=<slba-list,>โ comma separated list of the starting block in each range ๐ฉ-d <deallocate>,--ad=<deallocate>โ Attribute Deallocate. ๐๏ธ-w <write>,--idw=<write>โ Attribute Integral Dataset for Write. โ๏ธ-r <read>,--idr=<read>โ Attribute Integral Dataset for Read. ๐-c <cdw11>,--cdw11=<cdw11>โ all the command command dword 11 attributes. use exclusive from specifying individual attributes โ ๏ธ
heads up: that -c one is exclusive from specifying the individual attributes โ pick a lane, bestie ๐
๐ GLOBAL OPTIONS ๐
the following options are defined at the top-level nvme command and are available to this subcommand:
--dry-runโ print the command that would be executed, but do not actually execute it. fake it till you make it ๐--no-ioctl-probingโ disable probing for 64-bit IOCTL support. ๐ง--no-retriesโ disable retry logic on transient errors. one shot, no second chances ๐-o <fmt>,--output-format=<fmt>โ set the reporting format tonormal,tabular,'json, orbinary. only one output format may be used at a time. (yes, the quote mark beforejsonis literally in the original, don't come for me ๐ซถ)--output-format-version=<version>โ select the output format version. version 1 uses the original field naming, while version 2 (default) provides more consistent and script-friendly field names. other versions are rejected. ๐ซ--quietโ suppress informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. ๐คซ--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. ๐ ๏ธ--timeout=<ms>โ set the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). โณ-v,--verboseโ increase the level of detail in the output. may be specified multiple times to further increase verbosity. ๐ฃ๏ธ
these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. ๐
๐ EXAMPLES ๐
No examples yet ๐ญ (iconic of them to leave us hanging tbh)
๐ NVME ๐
part of the nvme-user suite ๐
so yeah, that's the whole thing, bestie โ go send some Data Set Management commands and slay ๐งโจ
nvme-user suite ยท NVMe manual page dated 10/30/2026 ยท you're so welcome ๐
๐ฆ 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