diff options
| author | Tao Cui <cuitao@kylinos.cn> | 2026-07-20 17:37:23 +0800 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2026-08-03 20:03:20 -0600 |
| commit | 9d617828cfc4d9a4d385daa2cd61f9db0592c53f (patch) | |
| tree | a0b2c2ef4556db1a7526e49325783dcdffa96e57 /tools/perf/scripts/python | |
| parent | d3f775718a66e4242b3b344d6b3fc836a390785b (diff) | |
block/blk-stat: drain per-cpu callback stats over possible CPUs
blk_stat_timer_fn() sums and resets a callback's per-cpu buckets using
for_each_online_cpu(). A CPU that goes offline with pending samples is
skipped, so its samples are neither accumulated into the window nor
cleared; they sit in the bucket until the CPU comes back online, at
which point the stale values are flushed into whatever window is then
running.
This silently corrupts the latency picture that consumers (notably
writeback throttling via wbt, and blk-mq latency tracking) base
decisions on around CPU hotplug: under-counting while the CPU is
offline, then a burst of stale data on re-online.
Fixes: 34dbad5d26e2 ("blk-stat: convert to callback-based statistics reporting")
Signed-off-by: Tao Cui <cuitao@kylinos.cn>
Reviewed-by: Yu Kuai <yukuai@fygo.io>
Link: https://patch.msgid.link/20260720093726.28965-2-cui.tao@linux.dev
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
