summaryrefslogtreecommitdiff
path: root/COPYING
diff options
context:
space:
mode:
authorPaolo Valente <paolo.valente@linaro.org>2019-06-25 08:12:43 +0300
committerJens Axboe <axboe@kernel.dk>2019-06-25 18:07:34 +0300
commit766d61412ef840295f55e98e2c5fb0fc110c6ca4 (patch)
treeea7dbe88b5b57fc57616afb65b4786f24209f968 /COPYING
parent6b2c8e522c8980fedfd24f3d1e69c3bccdb9414d (diff)
downloadlinux-766d61412ef840295f55e98e2c5fb0fc110c6ca4.tar.xz
block, bfq: reset inject limit when think-time state changes
Until the base value of the request service times gets finally computed for a bfq_queue, the inject limit does depend on the think-time state (short|long). The limit must be 0 or 1 if the think time is deemed, respectively, as short or long. However, such a check and possible limit update is performed only periodically, once per second. So, to make the injection mechanism much more reactive, this commit performs the update also every time the think-time state changes. In addition, in the following special case, this commit lets the inject limit of a bfq_queue bfqq remain equal to 1 even if bfqq's think time is short: bfqq's I/O is synchronized with that of some other queue, i.e., bfqq may receive new I/O only after the I/O of the other queue is completed. Keeping the inject limit to 1 allows the blocking I/O to be served while bfqq is in service. And this is very convenient both for bfqq and for the total throughput, as explained in detail in the comments in bfq_update_has_short_ttime(). Reported-by: Srivatsa S. Bhat (VMware) <srivatsa@csail.mit.edu> Tested-by: Srivatsa S. Bhat (VMware) <srivatsa@csail.mit.edu> Signed-off-by: Paolo Valente <paolo.valente@linaro.org> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'COPYING')
0 files changed, 0 insertions, 0 deletions