Blob Blame History Raw
From: Jan Kara <jack@suse.cz>
Subject: bfq: Tune slice_idle
References: bsc#1168838
Patch-mainline: Never, bandaid until bfq idling logic is improved

Tune slice_idle tunable down to 1 ms instead of original 8 ms. This
significantly reduces the damage caused by BFQ idling logic being rather
aggressive and thus hurting workloads that benefit from switching synchronous
IO streams frequently. 1 ms idling should still be enough to provide reasonable
protection for processes submitting dependent synchronous IO (the first reason
for idling). Also for the purpose of reducing seeks when there are multiple IO
streams, each of them sequential (the second reason of idling), it doesn't make
sence to have idle window much larger than average seek time which is close to
1 ms these days even for rotational disks.

Signed-off-by: Jan Kara <jack@suse.cz>
Acked-by: Jan Kara <jack@suse.cz>

---
 block/bfq-iosched.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -170,7 +170,7 @@ static const int bfq_back_max = 16 * 102
 static const int bfq_back_penalty = 2;
 
 /* Idling period duration, in ns. */
-static u64 bfq_slice_idle = NSEC_PER_SEC / 125;
+static u64 bfq_slice_idle = NSEC_PER_SEC / 1000;
 
 /* Minimum number of assigned budgets for which stats are safe to compute. */
 static const int bfq_stats_min_budgets = 194;