Re: [PATCH RFC] block, bfq: set default slice_idle to zero for non-rotational devices

From: Paolo Valente
Date: Fri Nov 02 2018 - 14:22:11 EST




> Il giorno 1 nov 2018, alle ore 22:06, Holger HoffstÃtte <holger@xxxxxxxxxxxxxxxxxxxxxx> ha scritto:
>
> On 11/01/18 18:43, Konstantin Khlebnikov wrote:
>> With default 8ms idle slice BFQ is up to 10 times slower than CFQ
>> for massive random read workloads for common SATA SSD.
>> For now zero idle slice gives better out of box experience.
>> CFQ employs this since commit 41c0126b3f22 ("block: Make CFQ default
>> to IOPS mode on SSDs")
>
> Well, that's interesting because 3 years ago I made the same suggestion
> and was told that BFQ's heuristics automagically make it not idle when
> rotational=0.

Yep, that automagic is probably 50% of the good of BFQ.

If one just sets slice_idle=0, then throughput is always maximum with
random I/O; but there is no control on I/O any longer.

At any rate, Konstantin, if you have some use case where BFQ fails,
I'll be very glad to analyze it, and hopefully improve BFQ. Just one
request: use at least a 4.19.

Thanks,
Paolo

> Did you actually benchmark this? I just tried and don't
> get a noticeable performance difference with slice_idle=0 compared to
> deadline.
>
> Discussion link:
> https://groups.google.com/forum/#!msg/bfq-iosched/iRMw2n3kYLY/6l9cIm3TBgAJ
>
> curious..
>
> Holger