[Devel] [PATCH VZ10 00/11] dm-stats: total latency and per-class histograms

Vasileios Almpanis vasileios.almpanis at virtuozzo.com
Tue Jul 14 16:51:34 MSK 2026


Apart from small cosmetic issues sent before, the series looks good to me.
Tested creation of histograms using dmsetup message, @stats_list, 
@stats_print messages
for all read, write and flush histograms, deletion etc.
Reviewed-by: Vasileios Almpanis <vasileios.almpanis at virtuozzo.com>

On 7/13/26 2:36 AM, Andrey Zhadchenko wrote:
> dm-stats latency histograms currently report the service time observed
> by device-mapper (start of the target I/O until completion). Under load
> that differs from the latency userspace sees, because requests may sit
> queued in the block layer for some time before dispatch.
> Also the histogram currently tracks all kinds of I/O at one place.
>
> The first three patches fix request-based dm timing and teach histograms
> to optionally account the full block-layer lifetime of a bio (from the
> issue stamp maintained by blk-cgroup) via a new hist_total_latency
> region option. Only the histogram is switched to total latency; the
> classic counters keep reporting service time.
>
> The remaining patches generalize a region to hold several independent
> histograms, classify each I/O into read/write/flush classes, and expose
> rd_histogram, wr_histogram and flush_histogram feature arguments that
> may be combined with the existing histogram argument. Data-less flushes,
> previously dropped by accounting because they carry zero sectors, become
> visible to flush histograms (accounted in the first area of the region
> without touching the classic counters). FUA writes are classified as
> both writes and flushes.
>
> https://virtuozzo.atlassian.net/browse/VSTOR-103846
>
> Andrey Zhadchenko (11):
>    drivers/md/dm-rq: fix time accounting for request-based dm drivers
>    block/bio: add bio_issue_elapsed_ns()
>    drivers/md/dm-stats: add new hist_total_latency option
>    drivers/md/dm-stats: propagate operation flags instead of direction
>    drivers/md/dm-stats: prepare for multiple histograms per region
>    drivers/md/dm-stats: introduce I/O classes for histogram dispatch
>    drivers/md/dm-stats: add rd_histogram option
>    drivers/md/dm-stats: add wr_histogram option
>    drivers/md/dm-stats: prepare for accounting data-less flushes
>    drivers/md/dm-stats: add flush_histogram option
>    drivers/md/dm-stats: account FUA writes in flush histograms
>
>   .../admin-guide/device-mapper/statistics.rst  |  37 ++-
>   block/bio.c                                   |  23 ++
>   drivers/md/dm-rq.c                            |  11 +-
>   drivers/md/dm-stats.c                         | 310 ++++++++++++++----
>   drivers/md/dm-stats.h                         |   5 +-
>   drivers/md/dm.c                               |   6 +-
>   include/linux/bio.h                           |   2 +
>   7 files changed, 321 insertions(+), 73 deletions(-)
>
-- 
Best regards, Vasileios Almpanis
Software Developer, Virtuozzo.



More information about the Devel mailing list