[PATCHv2 0/4] libnvme: add support for discovering multipath of a shared ns

Nilay Shroff nilay at linux.ibm.com
Thu Apr 17 06:59:42 PDT 2025


Hi,

Recently released Linux kernel v6.15-rc1 added support for easily discovering
multiple paths to a shared NVMe namespace. This multipath information is
exposed to userspace via a new sysfs group attribute named "multipath",
located under /sys/block/<ns-blkdev>/. More details on this functionality
can be found here [1].

This patch series leverages that new functionality to discover multiple paths
to a shared namespace and exposes that information in libnvme so that it can
later be used by nvme-cli.

There are four patches in this series:
The first patch adds support for discovering NVMe paths using the sysfs 
"multipath" group attribute.
The second patch adds a new "queue_depth" attribute under the NVMe path 
object.
The third patch adds a new "numa_nodes" attribute under the NVMe path object.
The fourth patch extends the sysfs tree dump test to validate multipath link 
support 

[1]: https://lore.kernel.org/all/20250112124154.60690-1-nilay@linux.ibm.com/

Changes from v1:
    - Fixed kernel version typo in the cover letter and commit
    - Updated the commit in first patch to explain the change in some
      detail (Daniel Wagner)
    - Added fourth patch to validate changes (Daniel Wagner)  

Nilay Shroff (4):
  tree: add support for discovering nvme paths using sysfs multipath
    link
  tree: add queue-depth attribute for nvme path object
  tree: add attribute numa_nodes for NVMe path object
  test: extend sysfs tree dump test

 src/libnvme.map                  |   2 +
 src/nvme/filters.c               |   6 +
 src/nvme/filters.h               |   9 ++
 src/nvme/json.c                  |  90 +++++++++++++--
 src/nvme/private.h               |  11 +-
 src/nvme/tree.c                  | 184 ++++++++++++++++++++++---------
 src/nvme/tree.h                  |  25 +++++
 test/sysfs/data/tree-pcie.out    |  53 +++++++--
 test/sysfs/data/tree-pcie.tar.xz | Bin 19712 -> 12656 bytes
 9 files changed, 308 insertions(+), 72 deletions(-)

-- 
2.49.0




More information about the Linux-nvme mailing list