block: Seperate read and write statistics of in_flight requests v2
Commit a9327cac added seperate read and write statistics of in_flight requests. And exported the number of read and write requests in progress seperately through sysfs. But Corrado Zoccolo <czoccolo@gmail.com> reported getting strange output from "iostat -kx 2". Global values for service time and utilization were garbage. For interval values, utilization was always 100%, and service time is higher than normal. So this was reverted by commit 0f78ab98 The problem was in part_round_stats_single(), I missed the following: if (now == part->stamp) return; - if (part->in_flight) { + if (part_in_flight(part)) { __part_stat_add(cpu, part, time_in_queue, part_in_flight(part) * (now - part->stamp)); __part_stat_add(cpu, part, io_ticks, (now - part->stamp)); With this chunk included, the reported regression gets fixed. Signed-off-by:Nikanth Karthikesan <knikanth@suse.de> -- Signed-off-by:
Jens Axboe <jens.axboe@oracle.com>
Showing
- block/blk-core.c 4 additions, 4 deletionsblock/blk-core.c
- block/blk-merge.c 1 addition, 1 deletionblock/blk-merge.c
- block/genhd.c 3 additions, 1 deletionblock/genhd.c
- drivers/md/dm.c 10 additions, 6 deletionsdrivers/md/dm.c
- fs/partitions/check.c 11 additions, 1 deletionfs/partitions/check.c
- include/linux/genhd.h 14 additions, 7 deletionsinclude/linux/genhd.h
Loading
Please register or sign in to comment