mbox series

[BUGFIX/IMPROVEMENT,V2,0/2] block, bfq: improve and refactor throughput-boosting logic

Message ID 20170804053511.2389-1-paolo.valente@linaro.org
Headers show
Series block, bfq: improve and refactor throughput-boosting logic | expand

Message

Paolo Valente Aug. 4, 2017, 5:35 a.m. UTC
Hi,
these two patches improve throughput-boosting logic in two
aspects. The first patch refactors the parts of the device-idling
logic, related to throughput boosting, that are still scattered across
the source file bfq-iosched.c. The patch concetrates all the logic in
one function. The second patch fixes/improves device idling for
flash-based devices that have no internal queueing of I/O requests.

The contribution in the first patch has been triggered by that in the
second patch: finding the change made by the second patch has been
more difficult than it had to be, because the logic that decides
whether to idle the device is scattered across three functions.

The second patch provides a significant throghput boost, for random
I/O with flash-based non-queueing devices. For example, on a HiKey
board, throughput increases by up to 125%, growing, e.g., from 6.9MB/s
to 15.6MB/s with two or three random readers in parallel.

Thanks,
Paolo

Paolo Valente (2):
  block,bfq: refactor device-idling logic
  block, bfq: boost throughput with flash-based non-queueing devices

 block/bfq-iosched.c | 144 ++++++++++++++++++++++++++++------------------------
 block/bfq-iosched.h |  12 ++---
 2 files changed, 85 insertions(+), 71 deletions(-)

--
2.10.0

Comments

Paolo Valente Aug. 10, 2017, 7:55 p.m. UTC | #1
> Il giorno 04 ago 2017, alle ore 07:35, Paolo Valente <paolo.valente@linaro.org> ha scritto:

> 

> Hi,

> these two patches improve throughput-boosting logic in two

> aspects. The first patch refactors the parts of the device-idling

> logic, related to throughput boosting, that are still scattered across

> the source file bfq-iosched.c. The patch concetrates all the logic in

> one function. The second patch fixes/improves device idling for

> flash-based devices that have no internal queueing of I/O requests.

> 

> The contribution in the first patch has been triggered by that in the

> second patch: finding the change made by the second patch has been

> more difficult than it had to be, because the logic that decides

> whether to idle the device is scattered across three functions.

> 

> The second patch provides a significant throghput boost, for random

> I/O with flash-based non-queueing devices. For example, on a HiKey

> board, throughput increases by up to 125%, growing, e.g., from 6.9MB/s

> to 15.6MB/s with two or three random readers in parallel.

> 


Hi Jens,
any idea about the fate of these two patches?

Thanks,
Paolo

> Thanks,

> Paolo

> 

> Paolo Valente (2):

>  block,bfq: refactor device-idling logic

>  block, bfq: boost throughput with flash-based non-queueing devices

> 

> block/bfq-iosched.c | 144 ++++++++++++++++++++++++++++------------------------

> block/bfq-iosched.h |  12 ++---

> 2 files changed, 85 insertions(+), 71 deletions(-)

> 

> --

> 2.10.0
Jens Axboe Aug. 11, 2017, 2:58 p.m. UTC | #2
On 08/10/2017 01:55 PM, Paolo Valente wrote:
> 

>> Il giorno 04 ago 2017, alle ore 07:35, Paolo Valente <paolo.valente@linaro.org> ha scritto:

>>

>> Hi,

>> these two patches improve throughput-boosting logic in two

>> aspects. The first patch refactors the parts of the device-idling

>> logic, related to throughput boosting, that are still scattered across

>> the source file bfq-iosched.c. The patch concetrates all the logic in

>> one function. The second patch fixes/improves device idling for

>> flash-based devices that have no internal queueing of I/O requests.

>>

>> The contribution in the first patch has been triggered by that in the

>> second patch: finding the change made by the second patch has been

>> more difficult than it had to be, because the logic that decides

>> whether to idle the device is scattered across three functions.

>>

>> The second patch provides a significant throghput boost, for random

>> I/O with flash-based non-queueing devices. For example, on a HiKey

>> board, throughput increases by up to 125%, growing, e.g., from 6.9MB/s

>> to 15.6MB/s with two or three random readers in parallel.

>>

> 

> Hi Jens,

> any idea about the fate of these two patches?


Queued up for 4.14.

-- 
Jens Axboe