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

From: Paolo Valente
Date: Fri Aug 04 2017 - 01:35:50 EST

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.


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(-)