[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