[PATCH RFC v3 0/3] fix NVMe multipath partition diskstats
John Garry
john.garry at linux.dev
Wed Sep 16 02:45:12 PDT 2026
On 8/21/26 09:48, John Garry wrote:
Hi guys,
Any opinion on this one? Specifically how to improve the per-path disk
partition cloning here.
Cheers
> 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.
>
> Setting as RFC as I am not too happy with the block partition cloning
> code.
>
> Difference to v2:
> - don't scan per-path disk, and clone from multipath disk instead
>
> John Garry (3):
> block: support linking disks to clone partitions
> block: don't show partition diskstats for GENHD_FL_HIDDEN
> nvme-multipath: fix diskstats for partitions
>
> block/blk.h | 1 +
> block/genhd.c | 35 +++++++++++++++++++++++-
> block/partitions/core.c | 45 +++++++++++++++++++++++++++++++
> drivers/nvme/host/core.c | 1 +
> drivers/nvme/host/multipath.c | 51 ++++++++++++++++++++++++++++-------
> include/linux/blkdev.h | 8 ++++++
> 6 files changed, 130 insertions(+), 11 deletions(-)
>
More information about the Linux-nvme
mailing list