[PATCH RFC 0/1] Add visibility for native NVMe miltipath using debugfs

Sagi Grimberg sagi at grimberg.me
Sun Jul 28 13:47:54 PDT 2024


> # cat /sys/kernel/debug/block/nvme2n2/multipath
> io-policy: numa
> io-path:
> --------
> node  current-path  ctrl    ana-state
> 2     nvme2c2n2     nvme2   optimized
> 3     nvme2c0n2     nvme0   optimized
>
> The above output shows that current selected iopolicy is numa. And when we
> have workload running I/O on numa node 2, accessing namespace "nvme2n2",
> it uses path nvme2c2n2 and controller nvme2 for forwarding data. Moreover
> the current ana-state for this path is optimized. Similarly, for I/O
> workload running on numa node 3 would use path nvme2c0n2 and controller
> nvme0.
>
> Now changing the iopolicy to round-robin,
>
> # echo "round-robin" > /sys/class/nvme-subsystem/nvme-subsys2/iopolicy
>
> # cat /sys/kernel/debug/block/nvme2n2/multipath
> io-policy: round-robin
> io-path:
> --------
> node  rr-path       ctrl    ana-state
> 2     nvme2c2n2     nvme2   optimized
> 2     nvme2c0n2     nvme0   optimized
> 3     nvme2c2n2     nvme2   optimized
> 3     nvme2c0n2     nvme0   optimized

Can we avoid a formatted output in sysfs? I'd much rather prefer that 
nvme-cli/libnvme to
format this (maybe this may be wanted as json in the future for example)...

Can we simply expose the individual components and have userpace format 
the output?



More information about the Linux-nvme mailing list