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

Nilay Shroff nilay at linux.ibm.com
Fri Apr 25 11:56:05 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 v2:
    - Modified queue_depth get attribure function to always return the latest
      value insteda of cached value (Hannes Reinecke)

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                  | 191 ++++++++++++++++++++++---------
 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, 315 insertions(+), 72 deletions(-)

-- 
2.49.0




More information about the Linux-nvme mailing list