Re: [PATCH] blk-cgroup: show io.stat numbers for discard-only cgroups

From: Tang Yizhou

Date: Thu Jul 16 2026 - 08:20:07 EST



On 14/7/26 2:33 pm, Tao Cui wrote:
> From: Tao Cui <cuitao@xxxxxxxxxx>
>
> blkcg_print_one_stat() gates the rbytes/wbytes/rios/wios/dbytes/dios
> output on
>
> if (rbytes || wbytes || rios || wios)
>
> which omits the discard counters. A cgroup that has issued only discards
> (zero read and write counters) therefore prints an empty stat line and its
> dbytes/dios are never surfaced, even though they are accounted correctly.
>
> The guard predates the addition of discard stats and was never updated;
> include dbytes/dios so discard-only cgroups are reported.
>
> Fixes: 636620b66d5d ("blkcg: Track DISCARD statistics and output them in cgroup io.stat")
> Signed-off-by: Tao Cui <cuitao@xxxxxxxxxx>
> ---
> block/blk-cgroup.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
> index a778aa9d2bb9..b324701cb05d 100644
> --- a/block/blk-cgroup.c
> +++ b/block/blk-cgroup.c
> @@ -1154,7 +1154,7 @@ static void blkcg_print_one_stat(struct blkcg_gq *blkg, struct seq_file *s)
> dios = bis->cur.ios[BLKG_IOSTAT_DISCARD];
> } while (u64_stats_fetch_retry(&bis->sync, seq));
>
> - if (rbytes || wbytes || rios || wios) {
> + if (rbytes || wbytes || rios || wios || dbytes || dios) {
> seq_printf(s, "rbytes=%llu wbytes=%llu rios=%llu wios=%llu dbytes=%llu dios=%llu",
> rbytes, wbytes, rios, wios,
> dbytes, dios);

Reviewed-by: Tang Yizhou <yizhou.tang@xxxxxxxxxx>

--
Best Regards,
Yi