• Michael Lyle's avatar
    bcache: smooth writeback rate control · ae82ddbf
    Michael Lyle authored
    This works in conjunction with the new PI controller.  Currently, in
    real-world workloads, the rate controller attempts to write back 1
    sector per second.  In practice, these minimum-rate writebacks are
    between 4k and 60k in test scenarios, since bcache aggregates and
    attempts to do contiguous writes and because filesystems on top of
    bcachefs typically write 4k or more.
    
    Previously, bcache used to guarantee to write at least once per second.
    This means that the actual writeback rate would exceed the configured
    amount by a factor of 8-120 or more.
    
    This patch adjusts to be willing to sleep up to 2.5 seconds, and to
    target writing 4k/second.  On the smallest writes, it will sleep 1
    second like before, but many times it will sleep longer and load the
    backing device less.  This keeps the loading on the cache and backing
    device related to writeback more consistent when writing back at low
    rates.
    Signed-off-by: default avatarMichael Lyle <mlyle@lyle.org>
    Reviewed-by: default avatarColy Li <colyli@suse.de>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    ae82ddbf
writeback.c 13.7 KB