kernel_samsung_a53x/block
Paolo Valente 8eb5a42575 block, bfq: always inject I/O of queues blocked by wakers
Suppose that I/O dispatch is plugged, to wait for new I/O for the
in-service bfq-queue, say bfqq.  Suppose then that there is a further
bfq_queue woken by bfqq, and that this woken queue has pending I/O. A
woken queue does not steal bandwidth from bfqq, because it remains
soon without I/O if bfqq is not served. So there is virtually no risk
of loss of bandwidth for bfqq if this woken queue has I/O dispatched
while bfqq is waiting for new I/O. In contrast, this extra I/O
injection boosts throughput. This commit performs this extra
injection.

Tested-by: Jan Kara <jack@suse.cz>
Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Link: https://lore.kernel.org/r/20210304174627.161-2-paolo.valente@linaro.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
(cherry picked from commit 2ec5a5c48373d4bc2f0699f86507a65bf0b9df35)
(cherry picked from commit 0750db9767232fc2e4850868e526f4b02ecfb247)
(cherry picked from commit 8676f43249bbb0478a8b18bd87703da59902dbfd)
(cherry picked from commit df655d250f253a2f8a6792569108f30a04b7b894)
(cherry picked from commit d76168c1c3805a2c948e7ff60c8eb341e2ff0013)
(cherry picked from commit f213ae4e575f8ed67ae065fe80d06dc957f0b068)
(cherry picked from commit eb1ff3ab6d66081fbaf007c6cfc1a5e841719c0c)
2024-11-19 17:41:42 +01:00
..
partitions Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
badblocks.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bfq-cgroup.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bfq-iosched.c block, bfq: always inject I/O of queues blocked by wakers 2024-11-19 17:41:42 +01:00
bfq-iosched.h bfq: Provide helper to generate bfqq name 2024-11-19 17:41:18 +01:00
bfq-wf2q.c block, bfq: always inject I/O of queues blocked by wakers 2024-11-19 17:41:42 +01:00
bio-integrity.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bio.c block: prevent an integer overflow in bvec_try_merge_hw_page 2024-11-18 12:13:14 +01:00
blk-cgroup-rwstat.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-cgroup-rwstat.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-cgroup.c cgroup: rstat: punt root-level optimization to individual controllers 2024-11-19 17:40:21 +01:00
blk-core.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-crypto-fallback.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-crypto-internal.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-crypto.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-exec.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-flush.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-integrity.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-ioc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-iocost.c blk-iocost: avoid out of bounds shift 2024-11-19 11:32:44 +01:00
blk-iolatency.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-ioprio.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-ioprio.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-lib.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-map.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-merge.c blk: Fix lock inversion between ioc lock and bfqd lock 2024-11-19 17:40:26 +01:00
blk-mq-cpumap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq-debugfs-zoned.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq-debugfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq-debugfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq-pci.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq-rdma.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq-sched.c blk: Fix lock inversion between ioc lock and bfqd lock 2024-11-19 17:40:26 +01:00
blk-mq-sched.h blk: Fix lock inversion between ioc lock and bfqd lock 2024-11-19 17:40:26 +01:00
blk-mq-sysfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq-tag.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq-tag.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq-virtio.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-mq.c blk-mq: fix IO hang from sbitmap wakeup race 2024-11-18 12:13:20 +01:00
blk-mq.h blk: Fix lock inversion between ioc lock and bfqd lock 2024-11-19 17:40:26 +01:00
blk-pm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-pm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-rq-qos.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-rq-qos.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-sec-stats.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-settings.c block: Clear zone limits for a non-zoned stacked queue 2024-11-19 09:22:16 +01:00
blk-stat.c block: prevent division by zero in blk_rq_stat_sum() 2024-11-19 09:23:14 +01:00
blk-stat.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-sysfs.c mm: apply init protection 2024-11-19 17:39:06 +01:00
blk-throttle.c blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!" 2024-11-18 12:11:56 +01:00
blk-timeout.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-wbt.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-wbt.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk-zoned.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blk.h blk: Fix lock inversion between ioc lock and bfqd lock 2024-11-19 17:40:26 +01:00
bounce.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bsg-lib.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bsg.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cmdline-parser.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
elevator.c blk: Fix lock inversion between ioc lock and bfqd lock 2024-11-19 17:40:26 +01:00
genhd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ioctl.c block/ioctl: prefer different overflow check 2024-11-19 14:19:06 +01:00
ioprio.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig.iosched Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
keyslot-manager.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kyber-iosched.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mq-deadline-cgroup.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mq-deadline-cgroup.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mq-deadline-main.c blk: Fix lock inversion between ioc lock and bfqd lock 2024-11-19 17:40:26 +01:00
opal_proto.h block: sed-opal: handle empty atoms when parsing response 2024-11-19 08:44:36 +01:00
scsi_ioctl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sed-opal.c block: sed-opal: handle empty atoms when parsing response 2024-11-19 08:44:36 +01:00
ssg-cgroup.c ssg: Set max available ratio to 25 2024-11-17 17:41:50 +01:00
ssg-cgroup.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ssg-iosched.c block: ssg-iosched: adapt to new patches 2024-11-19 17:40:09 +01:00
t10-pi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00