mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
blk-cgroup: fix root io.stat byte counts on 32-bit
blkcg_fill_root_iostats() shifts the unsigned long sector counts by 9
before adding them to the u64 byte counts, so on 32-bit the contribution
of a CPU wraps every 4GB. Widen before the shift.
Fixes: ef45fe470e ("blk-cgroup: show global disk stats in root cgroup io.stat")
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://patch.msgid.link/20261028164415.1262013-14-axboe@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
7d96874ba8
commit
e335b853d9
|
|
@ -1118,11 +1118,11 @@ static void blkcg_fill_root_iostats(void)
|
|||
cpu_dkstats->ios[STAT_DISCARD];
|
||||
// convert sectors to bytes
|
||||
tmp.bytes[BLKG_IOSTAT_READ] +=
|
||||
cpu_dkstats->sectors[STAT_READ] << 9;
|
||||
(u64)cpu_dkstats->sectors[STAT_READ] << 9;
|
||||
tmp.bytes[BLKG_IOSTAT_WRITE] +=
|
||||
cpu_dkstats->sectors[STAT_WRITE] << 9;
|
||||
(u64)cpu_dkstats->sectors[STAT_WRITE] << 9;
|
||||
tmp.bytes[BLKG_IOSTAT_DISCARD] +=
|
||||
cpu_dkstats->sectors[STAT_DISCARD] << 9;
|
||||
(u64)cpu_dkstats->sectors[STAT_DISCARD] << 9;
|
||||
}
|
||||
|
||||
flags = u64_stats_update_begin_irqsave(&blkg->iostat.sync);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user