{
  "slug": "nvme-commands-supported-effects",
  "term": "NVMe Commands Supported and Effects",
  "aliases": [
    "NVMe Command Effects Log",
    "NVMe log page 05h"
  ],
  "definition": "NVMe Commands Supported and Effects is log page 05h describing supported commands and their possible effects on subsystem state.",
  "note": "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. [effects20]\n\nCSUPP 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. [effects23]\n\nCommand 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. [effects20]\n\nCSE 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. [effects23] [effects20]\n\nHost 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. [effects-linux]",
  "status": "shipping",
  "advantages": [],
  "limitations": [
    {
      "text": "A capability-changing command can require refreshed Identify information; hosts associated with controllers to which the namespace is attached should coordinate their commands.",
      "citationIds": [
        "effects20"
      ]
    }
  ],
  "related": [
    "nvme-smart-log",
    "nvme-error-information-log",
    "nvme-format-nvm",
    "nvme-base-spec"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "effects20",
      "title": "NVM Express Base 2.0e, section 5.16.1.6, Figures 215-216. Copyright 2008-2024 NVM Express, Inc. All rights reserved.",
      "url": "https://nvmexpress.org/wp-content/uploads/NVM-Express-Base-Specification-2.0e-2024.07.29-Ratified.pdf",
      "accessed": "2026-11-08"
    },
    {
      "id": "effects23",
      "title": "NVM Express Base 2.3, Figure 214, pp. 221-222. Copyright 2008-2025 NVM Express, Inc. All rights reserved.",
      "url": "https://nvmexpress.org/wp-content/uploads/NVM-Express-Base-Specification-Revision-2.3-2025.08.01-Ratified.pdf",
      "accessed": "2026-11-08"
    },
    {
      "id": "effects-linux",
      "title": "Linux v6.12, drivers/nvme/host/core.c: nvme_command_effects and nvme_passthru_start/end",
      "url": "https://github.com/torvalds/linux/blob/v6.12/drivers/nvme/host/core.c",
      "accessed": "2026-11-08"
    }
  ],
  "updated": "2026-11-08"
}
