[PATCH v4 0/4] fix NVMe multipath partition diskstats
John Garry
john.g.garry at oracle.com
Mon Sep 28 00:30:10 PDT 2026
On 21/09/2026 09:37, John Garry wrote:
A reminder on this one ... or are we just going to leave this broken?
>
> Currently the NVMe multipath partition diskstats are not maintained.
> This is because the functionality to update the diskstats only updates
> for the whole disk (and not per partition).
>
> As an example:
> $ ./fio_read nvme1n1p1 # run traffic on /dev/nvme1n1p1
> ...
> $ more /proc/diskstats | grep nvme1
> 259 2 nvme1c1n1 49857 0 400344 768565 0 0 0 0 0 2334 768565 0 0 0 0 0 0
> 259 3 nvme1n1 99710 0 800680 1599285 0 0 0 0 0 2346 1599285 0 0 0 0 0 0
> 259 5 nvme1n1p1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> 259 4 nvme1c2n1 49853 0 400336 831472 0 0 0 0 0 2315 831472 0 0 0 0 0 0
>
> Notice how all values are 0 for nvme1n1p1.
>
> This series addresses that problem by first updating the gendisk code to
> create the partition table for hidden disks, as suggested by Keith.
>
> This is done by cloning the partition table from the multipath disk.
>
> Secondly the NVMe multipath functionality to handle the diskstats is
> modified to handle the gendisk partition, by looking up this partition
> from the per-path disk partition.
>
> Difference to v3:
> - Add block device operation disk changed CB
>
> Difference to v2:
> - don't scan per-path disk, and clone from multipath disk instead
>
> John Garry (4):
> block: support cloning partitions
> block: don't show partition diskstats for GENHD_FL_HIDDEN
> nvme-multipath: clone head disk partitions to per-path disks
> nvme-multipath: fix diskstats for partitions
>
> block/genhd.c | 3 +-
> block/partitions/core.c | 43 ++++++++++++++++++
> drivers/nvme/host/multipath.c | 83 ++++++++++++++++++++++++++++++-----
> include/linux/blkdev.h | 2 +
> 4 files changed, 120 insertions(+), 11 deletions(-)
>
More information about the Linux-nvme
mailing list