[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