[PATCH v2 0/2] nvmet: add namespace-level debugfs for reservation state

Guixin Liu kanie at linux.alibaba.com
Tue Jul 7 05:11:12 PDT 2026


This series adds debugfs support for inspecting NVMe target reservation
(PR) state at the namespace level.

Patch 1 introduces per-namespace debugfs directories under each subsystem,
providing the infrastructure for namespace-specific debug entries.

Patch 2 adds a 'reservation' file that exposes the persistent reservation
state including enable status, generation counter, notification mask,
holder information, and the full registrant list.

Example output with two registered hosts and an active holder:

  $ cat /sys/kernel/debug/nvmet/testnqn/ns1/reservation
  enable=1
  generation=2
  notify_mask=reg_preempted,resv_released,resv_preempted
  rtype=write_exclusive
  holder=11111111-1111-1111-1111-111111111111,0x1111
  reg=11111111-1111-1111-1111-111111111111,0x1111
  reg=22222222-2222-2222-2222-222222222222,0x2222

v1->v2:
  - Switch the output to a "key=value" line format so it is easier to
    parse from scripts (Daniel Wagner).
  - Emit the registrant list as repeated "reg=" lines instead of a
    "registrants:" header with indented entries.
  - Print the holder as "holder=<uuid>,0x<rkey>" and report an empty
    holder/rtype as "none".
  - Stringify notify_mask as a comma-separated list of masked
    notification names (reg_preempted, resv_released, resv_preempted)
    instead of a raw hex bitmask; empty mask is reported as "none".
  - When reservation is not enabled, print only "enable=0".

Guixin Liu (2):
  nvmet: add namespace-level debugfs directory
  nvmet: expose reservation state through debugfs

 drivers/nvme/target/core.c    |   2 +
 drivers/nvme/target/debugfs.c | 103 ++++++++++++++++++++++++++++++++++
 drivers/nvme/target/debugfs.h |   5 ++
 drivers/nvme/target/nvmet.h   |   3 +
 4 files changed, 113 insertions(+)

-- 
2.43.7




More information about the Linux-nvme mailing list