---
name: "nvme-set-feature"
section: "1"
platform: "linux"
package: "nvme-cli"
version: "3.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/nvme-set-feature"
---

# nvme-set-feature(1)

Sets an NVMe feature, returns applicable results

## NAME

nvme-set-feature - Sets an NVMe feature, returns applicable results

## SYNOPSIS

```
nvme [<global-options>] set-feature <device>
                        [--namespace-id=<nsid> | -n <nsid>]
                        [--feature-id=<fid> | -f <fid>]
                        [--value=<value> | -V <value>]
                        [--uuid-index=<uuid-index> | -U <uuid_index>]
                        [--data-len=<data-len> | -l <data-len>]
                        [--data=<data-file> | -d <data-file>]
                        [--save | -s]
                        [--cdw12=<cdw12> | -c <cdw12>]
```

## DESCRIPTION

Submits an NVMe Set 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 \<device\> 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 value sent to the device is displayed

## OPTIONS

- \-n \<nsid\>, --namespace-id=\<nsid\>

  Sets 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 \<fid\>, --feature-id=\<fid\>

  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 |

- \-l \<data-len\>, --data-len=\<data-len\>

  The data length for the buffer submitted for this feature. Most known features do not use this value. The exceptions are LBA Range Type and host identifier.

- \-d \<data-file\>, --data=\<data-file\>

  The data file for the buffer submitted for this feature. Most known features do not use this value. The exceptions is LBA Range Type and host identifier. This defaults to STDIN so files and echo can be piped.

- \-V \<value\>, --value=\<value\>

  The value for command dword 11, the value you want to set the feature to.

- \-s, --save

  Save the attribute so that it persists through all power states and resets.

- \-U \<uuid-index\>, --uuid-index=\<uuid-index\>

  UUID Index of the feature

- \-c \<cdw12\>, --cdw12=\<cdw12\>

  The value for command dword 12, if applicable.

## 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 \<fmt\>, --output-format=\<fmt\>

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

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

- \--set-options=\<key=value\>\[,\<key=value\>...\]

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

- \--timeout=\<ms\>

  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)](/nvme-cli.conf/5.md). A command-line flag always overrides the file.

## EXAMPLES

• Sets the Power State (PS) to 1 in feature id 2:

```
# nvme set-feature /dev/nvme0 -f 2 /dev/nvme0n1 -V 0x1
```

• Sets the host id to the ascii string.

```
# echo "abcdefgh" | nvme set-feature /dev/nvme0 -f 0x81 -l 8
```

nvme set-feature /dev/nvme0 -f 0x81 -l 8 -U 0x1

## NVME

Part of the nvme-user suite
