lkml.org 
[lkml]   [2022]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 215/779] dm writecache: count number of blocks read, not number of read bios
    Date
    From: Mikulas Patocka <mpatocka@redhat.com>

    [ Upstream commit 2c6e755b49d273243431f5f1184654e71221fc78 ]

    Change dm-writecache, so that it counts the number of blocks read
    instead of the number of read bios. Bios can be split and requeued
    using the dm_accept_partial_bio function, so counting bios caused
    inaccurate results.

    Fixes: e3a35d03407c ("dm writecache: add event counters")
    Reported-by: Yu Kuai <yukuai1@huaweicloud.com>
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    Documentation/admin-guide/device-mapper/writecache.rst | 4 ++--
    drivers/md/dm-writecache.c | 1 +
    2 files changed, 3 insertions(+), 2 deletions(-)

    diff --git a/Documentation/admin-guide/device-mapper/writecache.rst b/Documentation/admin-guide/device-mapper/writecache.rst
    index 10429779a91a..7bead3b52690 100644
    --- a/Documentation/admin-guide/device-mapper/writecache.rst
    +++ b/Documentation/admin-guide/device-mapper/writecache.rst
    @@ -78,8 +78,8 @@ Status:
    2. the number of blocks
    3. the number of free blocks
    4. the number of blocks under writeback
    -5. the number of read requests
    -6. the number of read requests that hit the cache
    +5. the number of read blocks
    +6. the number of read blocks that hit the cache
    7. the number of write requests
    8. the number of write requests that hit uncommitted block
    9. the number of write requests that hit committed block
    diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
    index e3d0a9bb27b5..9d6b7b706a65 100644
    --- a/drivers/md/dm-writecache.c
    +++ b/drivers/md/dm-writecache.c
    @@ -1364,6 +1364,7 @@ static enum wc_map_op writecache_map_read(struct dm_writecache *wc, struct bio *
    }
    } else {
    writecache_map_remap_origin(wc, bio, e);
    + wc->stats.reads += (bio->bi_iter.bi_size - wc->block_size) >> wc->block_size_bits;
    map_op = WC_MAP_REMAP_ORIGIN;
    }

    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-15 20:43    [W:2.547 / U:0.536 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site