[PATCH 0/2] nvme-cli: enhance the visibility of multipath using show-topology command

Nilay Shroff nilay at linux.ibm.com
Fri Jul 4 06:49:52 PDT 2025


Hi,

There has been recent work to improve the visibility of NVMe multipath 
configurations. The native NVMe multipath kernel driver supports three
I/O path selection policies: numa, round-robin, and queue-depth. However,
until now, users have had no insight into which path is selected by the
multipath logic for forwarding I/O.

To address this, an RFC was proposed [1] and has since been merged into
the Linux kernel as of v6.15. Following that, libnvme was extended to
discover multiple paths to a shared NVMe namespace [2]. This patchset
builds on those efforts to improve userspace observability of multipath
configurations via nvme-cli.

This patchset contains two patches:
The first patch in the series fixes a <device> filter option using which
we could be able to filter the output of nvme show-topology command.

The second patch in the series enhances the nvme show-topology command to
display multipath configuration, including all discovered paths to a 
namespace, along with details such as ANA state, NUMA nodes, and queue
depth. The show-topology "--ranking" option is extended with a new sub-
option: multipath.

As usual, any feedback is most welcome!

Thanks!

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

Nilay Shroff (2):
  nvme: support <device> option in show-topology command
  nvme: extend show-topology command to add support for multipath

 nvme-print-binary.c |  1 +
 nvme-print-json.c   | 25 ++++++++++++++-----
 nvme-print-stdout.c | 61 ++++++++++++++++++++++++++++++++++++++++++---
 nvme-print.c        |  4 ++-
 nvme-print.h        |  1 +
 nvme.c              | 21 ++++++++++++++--
 nvme.h              |  1 +
 7 files changed, 101 insertions(+), 13 deletions(-)

-- 
2.50.0




More information about the Linux-nvme mailing list