OSDN Git Service

bcache: smooth writeback rate control
authorMichael Lyle <mlyle@lyle.org>
Fri, 13 Oct 2017 23:35:37 +0000 (16:35 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 16 Oct 2017 15:07:26 +0000 (09:07 -0600)
commitae82ddbfeb359fcffa97be5fb5bcd59165f2864f
tree6aa8da536120096b77cd15befe59d9b3457adb71
parent1d316e658374f700fdfff9299c70ce65d8d145e6
bcache: smooth writeback rate control

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: Michael Lyle <mlyle@lyle.org>
Reviewed-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/util.c
drivers/md/bcache/writeback.c