diff options
author | Slava Pestov <sp@daterainc.com> | 2014-05-01 16:48:57 -0400 |
---|---|---|
committer | Kent Overstreet <kmo@daterainc.com> | 2014-08-04 18:23:03 -0400 |
commit | 9e5c353510b26500bd6b8309823ac9ef2837b761 (patch) | |
tree | ff1ff3500ed20d3b9ac2dc3338e1d6ad87e9e0ea /drivers/md/bcache/writeback.h | |
parent | c5aa4a3157b55bdca18dd2a9d9f43314470b6d32 (diff) |
bcache: fix uninterruptible sleep in writeback thread
There were two issues here:
- writeback thread did not start until the device first became dirty
- writeback thread used uninterruptible sleep once running
Without this patch I see kernel warnings printed and a load average of
1.52 after booting my test VM. With this patch the warnings are gone and
the load average is near 0.00 as expected.
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Diffstat (limited to 'drivers/md/bcache/writeback.h')
-rw-r--r-- | drivers/md/bcache/writeback.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/md/bcache/writeback.h b/drivers/md/bcache/writeback.h index e2f8598937ac..0a9dab187b79 100644 --- a/drivers/md/bcache/writeback.h +++ b/drivers/md/bcache/writeback.h | |||
@@ -85,6 +85,7 @@ static inline void bch_writeback_add(struct cached_dev *dc) | |||
85 | void bcache_dev_sectors_dirty_add(struct cache_set *, unsigned, uint64_t, int); | 85 | void bcache_dev_sectors_dirty_add(struct cache_set *, unsigned, uint64_t, int); |
86 | 86 | ||
87 | void bch_sectors_dirty_init(struct cached_dev *dc); | 87 | void bch_sectors_dirty_init(struct cached_dev *dc); |
88 | int bch_cached_dev_writeback_init(struct cached_dev *); | 88 | void bch_cached_dev_writeback_init(struct cached_dev *); |
89 | int bch_cached_dev_writeback_start(struct cached_dev *); | ||
89 | 90 | ||
90 | #endif | 91 | #endif |