summary refs log tree commit diff
path: root/block/blk-mq-sched.h
diff options
context:
space:
mode:
authorPaolo Valente <paolo.valente@linaro.org>2019-01-29 12:06:32 +0100
committerJens Axboe <axboe@kernel.dk>2019-01-31 12:50:23 -0700
commit530c4cbb3c62f9e42dbf39279fb346f2d2ab4dbb (patch)
treeaad632d87cc3978218cbad308e0b0bd250025e34 /block/blk-mq-sched.h
parentac8b0cb415f3aa9162009d39624501d37031533b (diff)
downloadlinux-530c4cbb3c62f9e42dbf39279fb346f2d2ab4dbb.tar.gz
block, bfq: unconditionally plug I/O in asymmetric scenarios
bfq detects the creation of multiple bfq_queues shortly after each
other, namely a burst of queue creations in the terminology used in the
code. If the burst is large, then no queue in the burst is granted
- either I/O-dispatch plugging when the queue remains temporarily idle
  while in service;
- or weight raising, because it causes even longer plugging.

In fact, such a plugging tends to lower throughput, while these bursts
are typically due to applications or services that spawn multiple
processes, to reach a common goal as soon as possible. Examples are a
"git grep" or the booting of a system.

Unfortunately, disabling plugging may cause a loss of service guarantees
in asymmetric scenarios, i.e., if queue weights are differentiated or if
more than one group is active.

This commit addresses this issue by no longer disabling I/O-dispatch
plugging for queues in large bursts.

Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-mq-sched.h')
0 files changed, 0 insertions, 0 deletions