aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bcache/bcache.h
diff options
context:
space:
mode:
authorMichael Lyle <mlyle@lyle.org>2018-01-08 12:21:24 -0800
committerJens Axboe <axboe@kernel.dk>2018-01-08 13:29:00 -0700
commitb1092c9af9ed88dd2fc8345d987dfb7efe7be8f0 (patch)
treee3d3078c002608eef79c0570e50703c95c3c1145 /drivers/md/bcache/bcache.h
parentbcache: writeback: properly order backing device IO (diff)
downloadlinux-dev-b1092c9af9ed88dd2fc8345d987dfb7efe7be8f0.tar.xz
linux-dev-b1092c9af9ed88dd2fc8345d987dfb7efe7be8f0.zip
bcache: allow quick writeback when backing idle
If the control system would wait for at least half a second, and there's been no reqs hitting the backing disk for awhile: use an alternate mode where we have at most one contiguous set of writebacks in flight at a time. (But don't otherwise delay). If front-end IO appears, it will still be quick, as it will only have to contend with one real operation in flight. But otherwise, we'll be sending data to the backing disk as quickly as it can accept it (with one op at a time). Signed-off-by: Michael Lyle <mlyle@lyle.org> Reviewed-by: Tang Junhui <tang.junhui@zte.com.cn> Acked-by: Coly Li <colyli@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/md/bcache/bcache.h')
-rw-r--r--drivers/md/bcache/bcache.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/md/bcache/bcache.h b/drivers/md/bcache/bcache.h
index 3be0fcc19b1f..5f7b0b2513cc 100644
--- a/drivers/md/bcache/bcache.h
+++ b/drivers/md/bcache/bcache.h
@@ -320,6 +320,13 @@ struct cached_dev {
*/
atomic_t has_dirty;
+ /*
+ * Set to zero by things that touch the backing volume-- except
+ * writeback. Incremented by writeback. Used to determine when to
+ * accelerate idle writeback.
+ */
+ atomic_t backing_idle;
+
struct bch_ratelimit writeback_rate;
struct delayed_work writeback_rate_update;