summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Miccio <lucmiccio@gmail.com>2017-10-09 16:27:21 +0200
committerJens Axboe <axboe@kernel.dk>2017-10-09 08:29:21 -0600
commitb5dc5d4d1f4ff9032eb6c21a3c571a1317dc9289 (patch)
treec07e1fdfef55d45a0a879869e62a006b37ad60fc
parent94af584692091347baea4d810b9fc6e0f5483d42 (diff)
downloadlinux-0-day-b5dc5d4d1f4ff9032eb6c21a3c571a1317dc9289.tar.gz
linux-0-day-b5dc5d4d1f4ff9032eb6c21a3c571a1317dc9289.tar.xz
block,bfq: Disable writeback throttling
Similarly to CFQ, BFQ has its write-throttling heuristics, and it is better not to combine them with further write-throttling heuristics of a different nature. So this commit disables write-back throttling for a device if BFQ is used as I/O scheduler for that device. Signed-off-by: Luca Miccio <lucmiccio@gmail.com> Signed-off-by: Paolo Valente <paolo.valente@linaro.org> Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name> Tested-by: Lee Tibbert <lee.tibbert@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--block/bfq-iosched.c3
-rw-r--r--block/blk-wbt.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index 70f9177c4f5b2..261f98695910f 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -108,6 +108,7 @@
#include "blk-mq-tag.h"
#include "blk-mq-sched.h"
#include "bfq-iosched.h"
+#include "blk-wbt.h"
#define BFQ_BFQQ_FNS(name) \
void bfq_mark_bfqq_##name(struct bfq_queue *bfqq) \
@@ -4810,7 +4811,7 @@ static int bfq_init_queue(struct request_queue *q, struct elevator_type *e)
bfq_init_root_group(bfqd->root_group, bfqd);
bfq_init_entity(&bfqd->oom_bfqq.entity, bfqd->root_group);
-
+ wbt_disable_default(q);
return 0;
out_free:
diff --git a/block/blk-wbt.c b/block/blk-wbt.c
index 6a9a0f03a67bd..e59d59c11ebbb 100644
--- a/block/blk-wbt.c
+++ b/block/blk-wbt.c
@@ -654,7 +654,7 @@ void wbt_set_write_cache(struct rq_wb *rwb, bool write_cache_on)
}
/*
- * Disable wbt, if enabled by default. Only called from CFQ.
+ * Disable wbt, if enabled by default.
*/
void wbt_disable_default(struct request_queue *q)
{