{
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-16",
  "slug": "nvme-reservation-persistence",
  "term": "NVMe reservation persistence",
  "aliases": [
    "NVMe PTPL",
    "NVMe Persist Through Power Loss"
  ],
  "definition": "NVMe reservation persistence determines whether a namespace retains its reservations and registrations across power loss.",
  "note": "RESCAP advertises PTPL capability; PTPLS in Reservation Report describes the current state. Capability is not proof that persistence is enabled. [libnvme-types] In nvme-cli v2.15, CPTPL 0 leaves the state unchanged, 2 disables persistence and 3 enables it. [nvme-register] These controls concern reservation metadata, not a guarantee that cached user writes reached durable media.",
  "related": [
    "nvme-reservation",
    "power-loss-protection",
    "scsi-persistent-reservations",
    "nvme-host-identifier"
  ],
  "citations": [
    {
      "id": "libnvme-types",
      "title": "libnvme v1.15: namespace reservation capabilities and reservation status data structures.",
      "url": "https://github.com/linux-nvme/libnvme/blob/v1.15/src/nvme/types.h",
      "accessed": "2026-10-16"
    },
    {
      "id": "nvme-register",
      "title": "nvme-cli v2.15: nvme-resv-register manual.",
      "url": "https://github.com/linux-nvme/nvme-cli/blob/v2.15/Documentation/nvme-resv-register.txt",
      "accessed": "2026-10-16"
    },
    {
      "id": "hesela-fencing",
      "title": "Storage fencing: why a lost heartbeat does not stop writes",
      "url": "https://hesela.com/analyses/storage-fencing-stale-writes/",
      "accessed": "2026-10-16"
    }
  ]
}
