'\" t
.\" Title: nvme-set-feature
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 02/16/2026
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-SET\-FEATURE" "1" "02/16/2026" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nvme-set-feature \- Sets an NVMe feature, returns applicable results
.SH "SYNOPSIS"
.sp
.nf
\fInvme set\-feature\fR [\-\-namespace\-id= | \-n ]
[\-\-feature\-id= | \-f ] [\-\-value= | \-V ]
[\-\-uuid\-index= | \-U ]
[\-\-data\-len= | \-l ]
[\-\-data= | \-d ] [\-\-save | \-s]
[\-\-output\-format= | \-o ] [\-\-verbose | \-v]
[\-\-cdw12= | \-c ]
[\-\-timeout= | \-t ]
.fi
.SH "DESCRIPTION"
.sp
Submits an NVMe Set Feature admin command and returns the applicable results\&. This may be the feature\(cqs value, or may also include a feature structure if the feature requires it (ex: LBA Range Type)\&.
.sp
The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&.
.sp
On success, the value sent to the device is displayed
.SH "OPTIONS"
.PP
\-n , \-\-namespace\-id=
.RS 4
Sets the feature for the given nsid\&. This is optional and most features do not use this value\&.
.RE
.PP
\-f , \-\-feature\-id=
.RS 4
The feature id to send with the command\&. Value provided should be in hex\&.
.TS
allbox tab(:);
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt.
T{
Value
T}:T{
Definition
T}
T{
0x01 |
\fIarbitration\fR
T}:T{
Arbitration
T}
T{
0x02 |
\fIpower\-mgmt\fR
T}:T{
Power Management
T}
T{
0x03 |
\fIlba\-range\fR
T}:T{
LBA Range Type
T}
T{
0x04 |
\fItemp\-thresh\fR
T}:T{
Temperature Threshold
T}
T{
0x05 |
\fIerr\-recovery\fR
T}:T{
Error Recovery
T}
T{
0x06 |
\fIvolatile\-wc\fR
T}:T{
Volatile Write Cache
T}
T{
0x07 |
\fInum\-queues\fR
T}:T{
Number of Queues
T}
T{
0x08 |
\fIirq\-coalesce\fR
T}:T{
Interrupt Coalescing
T}
T{
0x09 |
\fIirq\-config\fR
T}:T{
Interrupt Vector Configuration
T}
T{
0x0a |
\fIwrite\-atomic\fR
T}:T{
Write Atomicity Normal
T}
T{
0x0b |
\fIasync\-event\fR
T}:T{
Asynchronous Event Configuration
T}
T{
0x0c |
\fIauto\-pst\fR
T}:T{
Autonomous Power State Transition
T}
T{
0x0d |
\fIhost\-mem\-buf\fR
T}:T{
Host Memory Buffer
T}
T{
0x0e |
\fItimestamp\fR
T}:T{
Timestamp
T}
T{
0x0f |
\fIkato\fR
T}:T{
Keep Alive Timer
T}
T{
0x10 |
\fIhctm\fR
T}:T{
Host Controlled Thermal Management
T}
T{
0x11 |
\fInopsc\fR
T}:T{
Non\-Operational Power State Config
T}
T{
0x12 |
\fIrrl\fR
T}:T{
Read Recovery Level Config
T}
T{
0x13 |
\fIplm\-config\fR
T}:T{
Predictable Latency Mode Config
T}
T{
0x14 |
\fIplm\-window\fR
T}:T{
Predictable Latency Mode Window
T}
T{
0x15 |
\fIlba\-sts\-interval\fR
T}:T{
LBA Status Information Report Interval
T}
T{
0x16 |
\fIhost\-behavior\fR
T}:T{
Host Behavior Support
T}
T{
0x17 |
\fIsanitize\fR
T}:T{
Sanitize Config
T}
T{
0x18 |
\fIendurance\-evt\-cfg\fR
T}:T{
Endurance Group Event Configuration
T}
T{
0x19 |
\fIiocs\-profile\fR
T}:T{
I/O Command Set Profile
T}
T{
0x1a |
\fIspinup\-control\fR
T}:T{
Spinup Control
T}
T{
0x1b |
\fIpower\-loss\-signal\fR
T}:T{
Power Loss Signaling Config
T}
T{
0x1c |
\fIperf\-characteristics\fR
T}:T{
Performance Characteristics
T}
T{
0x1d |
\fIfdp\fR
T}:T{
Flexible Data Placement
T}
T{
0x1e |
\fIfdp\-events\fR
T}:T{
FDP Events
T}
T{
0x1f |
\fIns\-admin\-label\fR
T}:T{
Namespace Admin Label
T}
T{
0x20 |
\fIkey\-value\fR
T}:T{
Key Value Configuration
T}
T{
0x21 |
\fIctrl\-data\-queue\fR
T}:T{
Controller Data Queue
T}
T{
0x78 |
\fIemb\-mgmt\-ctrl\-addr\fR
T}:T{
Embedded Management Controller Address
T}
T{
0x79 |
\fIhost\-mgmt\-agent\-addr\fR
T}:T{
Host Management Agent Address
T}
T{
0x7d |
\fIenh\-ctrl\-metadata\fR
T}:T{
Enhanced Controller Metadata
T}
T{
0x7e |
\fIctrl\-metadata\fR
T}:T{
Controller Metadata
T}
T{
0x7f |
\fIns\-metadata\fR
T}:T{
Namespace Metadata
T}
T{
0x80 |
\fIsw\-progress\fR
T}:T{
Software Progress Marker
T}
T{
0x81 |
\fIhost\-id\fR
T}:T{
Host Identifier
T}
T{
0x82 |
\fIresv\-mask\fR
T}:T{
Reservation Notification Mask
T}
T{
0x83 |
\fIresv\-persist\fR
T}:T{
Reservation Persistence
T}
T{
0x84 |
\fIwrite\-protect\fR
T}:T{
Namespace Write Protection Config
T}
T{
0x85 |
\fIbp\-write\-protect\fR
T}:T{
Boot Partition Write Protection Config
T}
.TE
.sp 1
.RE
.PP
\-l , \-\-data\-len=
.RS 4
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\&.
.RE
.PP
\-d , \-\-data=
.RS 4
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\&.
.RE
.PP
\-V , \-\-value=
.RS 4
The value for command dword 11, the value you want to set the feature to\&.
.RE
.PP
\-s, \-\-save
.RS 4
Save the attribute so that it persists through all power states and resets\&.
.RE
.PP
\-U , \-\-uuid\-index=
.RS 4
UUID Index of the feature
.RE
.PP
\-o , \-\-output\-format=
.RS 4
Set the reporting format to
\fInormal\fR,
\fIjson\fR
or
\fIbinary\fR\&. Only one output format can be used at a time\&.
.RE
.PP
\-v, \-\-verbose
.RS 4
Increase the information detail in the output\&.
.RE
.PP
\-c , \-\-cdw12=
.RS 4
The value for command dword 12, if applicable\&.
.RE
.PP
\-t , \-\-timeout=
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Sets the Power State (PS) to 1 in feature id 2:
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme set\-feature /dev/nvme0 \-f 2 /dev/nvme0n1 \-V 0x1
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Sets the host id to the ascii string\&.
.sp
.if n \{\
.RS 4
.\}
.nf
# echo "abcdefgh" | nvme set\-feature /dev/nvme0 \-f 0x81 \-l 8
.fi
.if n \{\
.RE
.\}
.sp
nvme set\-feature /dev/nvme0 \-f 0x81 \-l 8 \-U 0x1
.RE
.SH "NVME"
.sp
Part of the nvme\-user suite