block, bfq: do not overcharge writes in asymmetric scenarios
authorPaolo Valente <paolo.valente@linaro.org>
Tue, 29 Jan 2019 11:06:37 +0000 (12:06 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 31 Jan 2019 19:50:24 +0000 (12:50 -0700)
commit02a6d787f4afc8be2d3d52ab0a1df0c6a2d99e7b
tree8fc56a5fc067c413ff910421c8f2d9dbfc915256
parentb3c3498112ffafa5f613bb482f9723996bfd5e4f
block, bfq: do not overcharge writes in asymmetric scenarios

Writes tend to starve reads. bfq counters this problem by overcharging
writes with an inflated service w.r.t. the actual service (number of
sector written) they receive.

Yet his overcharging is useless, and actually causes unfairness in the
opposite direction, when bfq happens to be enforcing strong I/O control.
bfq does this enforcing when the scenario is asymmetric, i.e., when some
bfq_queue or group of bfq_queues is to be granted a different bandwidth
than some other bfq_queue or group of bfq_queues. So, in such a
scenario, this commit disables write overcharging.

Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bfq-iosched.c