NVMe Commands Supported and Effects
NVMe Commands Supported and Effects is log page 05h describing supported commands and their possible effects on subsystem state.
Separate Admin and I/O opcode tables prevent confusing identical opcode values from different command sets. The I/O table depends on the selected command set. Entries describe possible effects, not execution history or proof of success. [1]
CSUPP indicates support. CSUPP=0 requires every other entry field to be zero; it does not describe a harmless supported command. LBCC concerns possible user-data changes; NCC covers one namespace's capabilities; NIC covers namespace count or multiple namespaces' capabilities; CCC covers controller capabilities. These are not observed change counters. [2]
Command Scope (CSP) is a bitmap. For CSUPP=1, CSP=0 means scope unreported, not absence of an affected entity. Multiple scope bits may be set when scope depends on command parameters. [1]
CSE recommends submission and execution restrictions. In Base 2.3, a recognized nonzero CSER supplies the relaxed recommendation instead; an unsupported CSER value leaves CSE applicable. CSER=01b recommends waiting for outstanding namespace-affecting Admin commands, then withholding further such commands until completion; this does not exclude all I/O. Base 2.0e reserves the later CSER bits. [2] [1]
Host behavior is implementation-specific. Linux v6.12 masks CSE for I/O commands and for Admin commands with nonzero CSER. When its passthrough path applies CSE, it freezes I/O across namespaces; NCC/NIC trigger a namespace rescan. This is not a universal driver guarantee. [3]
Relations
Limitations
- A capability-changing command can require refreshed Identify information; hosts associated with controllers to which the namespace is attached should coordinate their commands. [1]
Citations
- NVM Express Base 2.0e, section 5.16.1.6, Figures 215-216. Copyright 2008-2024 NVM Express, Inc. All rights reserved.
- NVM Express Base 2.3, Figure 214, pp. 221-222. Copyright 2008-2025 NVM Express, Inc. All rights reserved.
- Linux v6.12, drivers/nvme/host/core.c: nvme_command_effects and nvme_passthru_start/end