[PATCH] bfq: default slice_idle to 0 for SSD

Khazhismel Kumykov posted 1 patch 4 years, 3 months ago
block/bfq-iosched.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] bfq: default slice_idle to 0 for SSD
Posted by Khazhismel Kumykov 4 years, 3 months ago
This improves performance on SSDs dramatically, and was default for CFQ

Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
---
 block/bfq-iosched.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index 36a66e97e3c2..f3196036940c 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -7105,7 +7105,8 @@ static int bfq_init_queue(struct request_queue *q, struct elevator_type *e)
 	bfqd->bfq_fifo_expire[1] = bfq_fifo_expire[1];
 	bfqd->bfq_back_max = bfq_back_max;
 	bfqd->bfq_back_penalty = bfq_back_penalty;
-	bfqd->bfq_slice_idle = bfq_slice_idle;
+	/* Default to no idling for SSDs */
+	bfqd->bfq_slice_idle = blk_queue_nonrot(q) ? 0 : bfq_slice_idle;
 	bfqd->bfq_timeout = bfq_timeout;
 
 	bfqd->bfq_large_burst_thresh = 8;
-- 
2.35.1.616.g0bdcbb4464-goog
Re: [PATCH] bfq: default slice_idle to 0 for SSD
Posted by Paolo Valente 4 years, 3 months ago

> Il giorno 8 mar 2022, alle ore 01:02, Khazhismel Kumykov <khazhy@google.com> ha scritto:
> 
> This improves performance on SSDs dramatically, and was default for CFQ
> 

Ho,
unfortunately it is unacceptable, because it simply switches BFQ off with sync I/O.

Thanks,
Paolo

> Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
> ---
> block/bfq-iosched.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
> index 36a66e97e3c2..f3196036940c 100644
> --- a/block/bfq-iosched.c
> +++ b/block/bfq-iosched.c
> @@ -7105,7 +7105,8 @@ static int bfq_init_queue(struct request_queue *q, struct elevator_type *e)
> 	bfqd->bfq_fifo_expire[1] = bfq_fifo_expire[1];
> 	bfqd->bfq_back_max = bfq_back_max;
> 	bfqd->bfq_back_penalty = bfq_back_penalty;
> -	bfqd->bfq_slice_idle = bfq_slice_idle;
> +	/* Default to no idling for SSDs */
> +	bfqd->bfq_slice_idle = blk_queue_nonrot(q) ? 0 : bfq_slice_idle;
> 	bfqd->bfq_timeout = bfq_timeout;
> 
> 	bfqd->bfq_large_burst_thresh = 8;
> -- 
> 2.35.1.616.g0bdcbb4464-goog
>