• Nikanth Karthikesan's avatar
    block: Seperate read and write statistics of in_flight requests v2 · 316d315b
    Nikanth Karthikesan authored
    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: default avatarNikanth Karthikesan <knikanth@suse.de>
    
    --
    Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
    316d315b
blk-core.c 67 KB