NVME-GET-FEATURE(1) NVMe Manual NVME-GET-FEATURE(1)

# [NAME](#NAME)

nvme-get-feature - Gets an NVMe feature, returns applicable results

# [SYNOPSIS](#SYNOPSIS)

```
nvme [<global-options>] get-feature <device>


                        [--namespace-id=<nsid> | -n <nsid>]


                        [--feature-id=<fid> | -f <fid>]


                        [--uuid-index=<uuid-index> | -U <uuid_index>]


                        [--data-len=<data-len> | -l <data-len>]


                        [--sel=<select> | -s <select>] [--raw-binary | -b]


                        [--cdw11=<cdw11> | -c <cdw11>] [--changed | -C]
```

# [DESCRIPTION](#DESCRIPTION)

Submits an NVMe Get Feature admin command and returns the applicable results. This may be the feature’s value, or may also include a feature structure if the feature requires it (ex: LBA Range Type).

The &lt;device&gt; parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

On success, the returned feature’s structure (if applicable) may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format if it is a known structure, displayed in hex, or the raw buffer may be printed to stdout for another program to parse.

# [OPTIONS](#OPTIONS)

-n &lt;nsid&gt;, --namespace-id=&lt;nsid&gt;

Retrieve the feature for the given nsid. This is optional and most features do not use this value. The broadcast value 0xffffffff can also be given as *all* or *-1*.

-f &lt;fid&gt;, --feature-id=&lt;fid&gt;

The feature id to send with the command. Value provided should be in hex.

Value Definition 0x01 | *arbitration* Arbitration 0x02 | *power-mgmt* Power Management 0x03 | *lba-range* LBA Range Type 0x04 | *temp-thresh* Temperature Threshold 0x05 | *err-recovery* Error Recovery 0x06 | *volatile-wc* Volatile Write Cache 0x07 | *num-queues* Number of Queues 0x08 | *irq-coalesce* Interrupt Coalescing 0x09 | *irq-config* Interrupt Vector Configuration 0x0a | *write-atomic* Write Atomicity Normal 0x0b | *async-event* Asynchronous Event Configuration 0x0c | *auto-pst* Autonomous Power State Transition 0x0d | *host-mem-buf* Host Memory Buffer 0x0e | *timestamp* Timestamp 0x0f | *kato* Keep Alive Timer 0x10 | *hctm* Host Controlled Thermal Management 0x11 | *nopsc* Non-Operational Power State Config 0x12 | *rrl* Read Recovery Level Config 0x13 | *plm-config* Predictable Latency Mode Config 0x14 | *plm-window* Predictable Latency Mode Window 0x15 | *lba-sts-interval* LBA Status Information Report Interval 0x16 | *host-behavior* Host Behavior Support 0x17 | *sanitize* Sanitize Config 0x18 | *endurance-evt-cfg* Endurance Group Event Configuration 0x19 | *iocs-profile* I/O Command Set Profile 0x1a | *spinup-control* Spinup Control 0x1b | *power-loss-signal* Power Loss Signaling Config 0x1c | *perf-characteristics* Performance Characteristics 0x1d | *fdp* Flexible Data Placement 0x1e | *fdp-events* FDP Events 0x1f | *ns-admin-label* Namespace Admin Label 0x20 | *key-value* Key Value Configuration 0x21 | *ctrl-data-queue* Controller Data Queue 0x78 | *emb-mgmt-ctrl-addr* Embedded Management Controller Address 0x79 | *host-mgmt-agent-addr* Host Management Agent Address 0x7d | *enh-ctrl-metadata* Enhanced Controller Metadata 0x7e | *ctrl-metadata* Controller Metadata 0x7f | *ns-metadata* Namespace Metadata 0x80 | *sw-progress* Software Progress Marker 0x81 | *host-id* Host Identifier 0x82 | *resv-mask* Reservation Notification Mask 0x83 | *resv-persist* Reservation Persistence 0x84 | *write-protect* Namespace Write Protection Config 0x85 | *bp-write-protect* Boot Partition Write Protection Config

-s &lt;select&gt;, --sel=&lt;select&gt;

Select (SEL): This field specifies which value of the attributes to return in the provided data:

Select Name Description 0 current Current 1 default Default 2 saved Saved 3 supported Supported capabilities

-U &lt;uuid-index&gt;, --uuid-index=&lt;uuid-index&gt;

UUID Index of the feature

-l &lt;data-len&gt;, --data-len=&lt;data-len&gt;

The data length for the buffer returned for this feature. Most known features do not use this value. The exception is LBA Range Type

-c &lt;cdw11&gt;, --cdw11=&lt;cdw11&gt;

The value for command dword 11, if applicable.

-b, --raw-binary

Print the raw feature buffer to stdout if the feature returns a structure.

-C, --changed

This option will show feature changed.

# [GLOBAL OPTIONS](#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.

--no-ioctl-probing

Disable probing for 64-bit IOCTL support.

--no-retries

Disable retry logic on transient errors.

-o &lt;fmt&gt;, --output-format=&lt;fmt&gt;

Set the reporting format to *normal*, *tabular, 'json*, or *binary*. Only one output format may be used at a time.

--output-format-version=&lt;version&gt;

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 --quiet cancels any --verbose for the library log level.

--set-options=&lt;key=value&gt;\[,&lt;key=value&gt;...]

Set libnvme library options for this invocation. Supported keys are *force-4k*, *mi-probe-enabled*, *test-base-dir* and *test-sysfs-dir*.

--timeout=&lt;ms&gt;

Set the timeout for the command in milliseconds. *infinite* or *-1* waits 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)](/man/os/nvme-cli/nvme-cli.conf.5). A command-line flag always overrides the file.

# [EXAMPLES](#EXAMPLES)

•Retrieves the feature for Number of Queues, or feature id 7:

```
# nvme get-feature /dev/nvme0 -f 7
```

•The following retrieves the feature for the LBA Range Type, which implicitly requires a buffer and will be printed to the screen in human readable format:

```
# nvme get-feature /dev/nvme0 -f 3
```

•Retrieves the feature for the some vendor specific feature and specifically requesting a buffer be allocate for this feature, which will be displayed to the user in as a hex dump:

```
# nvme get-feature /dev/nvme0 -f 0xc0 -l 512
```

Get feature with UUID index

```
# nvme get-feature /dev/nvme0 -f 0xc0 -l 512 -U 0x1
```

•The following retrieves the feature for the LBA Range Type, which implicitly requires a buffer and will be saved to a file in its raw format:

```
# nvme get-feature /dev/nvme0 -f 3 --raw-binary > lba_range.raw
```

It is probably a bad idea to not redirect stdout when using this mode.

# [NVME](#NVME)

Part of the nvme-user suite

10/30/2026 NVMe

---

Document: nvme-get-feature(1) from nvme-cli 3.2-r0 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
