On Mon, Oct 09, 2017 at 12:37:30AM -0700, Michael Lyle wrote: > The time spent searching for things to write back "counts" for the > actual rate achieved, so don't flush the accumulated rate with each > chunk. > > This will maintain better fidelity to user-commanded rates, but it > may slightly increase the burstiness of writeback. The writeback > lock needs improvement to help mitigate this. > > Signed-off-by: Michael Lyle <mlyle@xxxxxxxx> Reviewed-by: Kent Overstreet <kent.overstreet@xxxxxxxxx> > --- > drivers/md/bcache/writeback.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/md/bcache/writeback.c b/drivers/md/bcache/writeback.c > index 42d087b9fb56..719b104db0cc 100644 > --- a/drivers/md/bcache/writeback.c > +++ b/drivers/md/bcache/writeback.c > @@ -526,6 +526,8 @@ static int bch_writeback_thread(void *arg) > struct cached_dev *dc = arg; > bool searched_full_index; > > + bch_ratelimit_reset(&dc->writeback_rate); > + > while (!kthread_should_stop()) { > down_write(&dc->writeback_lock); > if (!atomic_read(&dc->has_dirty) || > @@ -553,7 +555,6 @@ static int bch_writeback_thread(void *arg) > > up_write(&dc->writeback_lock); > > - bch_ratelimit_reset(&dc->writeback_rate); > read_dirty(dc); > > if (searched_full_index) { > @@ -563,6 +564,8 @@ static int bch_writeback_thread(void *arg) > !kthread_should_stop() && > !test_bit(BCACHE_DEV_DETACHING, &dc->disk.flags)) > delay = schedule_timeout_interruptible(delay); > + > + bch_ratelimit_reset(&dc->writeback_rate); > } > } > > -- > 2.11.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-bcache" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-bcache" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html