1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-24 09:13:20 -05:00
linux/block
Ming Lei 6e76871730 blk-mq: dequeue request one by one from sw queue if hctx is busy
It won't be efficient to dequeue request one by one from sw queue,
but we have to do that when queue is busy for better merge performance.

This patch takes the Exponential Weighted Moving Average(EWMA) to figure
out if queue is busy, then only dequeue request one by one from sw queue
when queue is busy.

Fixes: b347689ffb ("blk-mq-sched: improve dispatching from sw queue")
Cc: Kashyap Desai <kashyap.desai@broadcom.com>
Cc: Laurence Oberman <loberman@redhat.com>
Cc: Omar Sandoval <osandov@fb.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Hannes Reinecke <hare@suse.de>
Reported-by: Kashyap Desai <kashyap.desai@broadcom.com>
Tested-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-07-09 09:07:53 -06:00
..
partitions partitions/ldm: remove redundant pointer dgrp 2018-07-09 09:07:53 -06:00
badblocks.c
bfq-cgroup.c
bfq-iosched.c block, bfq: give a better name to bfq_bfqq_may_idle 2018-07-09 09:07:52 -06:00
bfq-iosched.h block, bfq: add/remove entity weights correctly 2018-07-09 09:07:52 -06:00
bfq-wf2q.c block, bfq: fix service being wrongly set to zero in case of preemption 2018-07-09 09:07:52 -06:00
bio-integrity.c
bio.c for-linus-20180623 2018-06-24 06:33:54 +08:00
blk-cgroup.c
blk-core.c block: Document how blk_update_request() handles RQF_SPECIAL_PAYLOAD requests 2018-07-09 09:07:52 -06:00
blk-exec.c
blk-flush.c
blk-integrity.c
blk-ioc.c
blk-lib.c
blk-map.c
blk-merge.c
blk-mq-cpumap.c
blk-mq-debugfs-zoned.c block: Make struct request_queue smaller for CONFIG_BLK_DEV_ZONED=n 2018-07-09 09:07:52 -06:00
blk-mq-debugfs.c blk-mq: dequeue request one by one from sw queue if hctx is busy 2018-07-09 09:07:53 -06:00
blk-mq-debugfs.h block: Make struct request_queue smaller for CONFIG_BLK_DEV_ZONED=n 2018-07-09 09:07:52 -06:00
blk-mq-pci.c blk-mq: code clean-up by adding an API to clear set->mq_map 2018-07-09 09:07:53 -06:00
blk-mq-rdma.c
blk-mq-sched.c blk-mq: dequeue request one by one from sw queue if hctx is busy 2018-07-09 09:07:53 -06:00
blk-mq-sched.h
blk-mq-sysfs.c
blk-mq-tag.c blk-mq: remove blk_mq_tagset_iter 2018-06-14 17:01:45 +02:00
blk-mq-tag.h
blk-mq-virtio.c
blk-mq.c blk-mq: dequeue request one by one from sw queue if hctx is busy 2018-07-09 09:07:53 -06:00
blk-mq.h blk-mq: code clean-up by adding an API to clear set->mq_map 2018-07-09 09:07:53 -06:00
blk-settings.c
blk-softirq.c block: fix timeout changes for legacy request drivers 2018-06-19 11:27:18 -06:00
blk-stat.c
blk-stat.h
blk-sysfs.c
blk-tag.c for-linus-20180616 2018-06-17 05:37:55 +09:00
blk-throttle.c Block: blk-throttle: set low_valid immediately once one cgroup has io.low configured 2018-07-09 09:07:52 -06:00
blk-timeout.c blk-mq: Fix timeout handling in case the timeout handler returns BLK_EH_DONE 2018-06-23 10:25:45 -06:00
blk-wbt.c
blk-wbt.h
blk-zoned.c block: Remove a superfluous cast from blkdev_report_zones() 2018-07-09 09:07:52 -06:00
blk.h
bounce.c
bsg-lib.c
bsg.c bsg: fix race of bsg_open and bsg_unregister 2018-06-15 08:15:37 -06:00
cfq-iosched.c
cmdline-parser.c
compat_ioctl.c
deadline-iosched.c
elevator.c
genhd.c
ioctl.c
ioprio.c
Kconfig block: Make struct request_queue smaller for CONFIG_BLK_DEV_ZONED=n 2018-07-09 09:07:52 -06:00
Kconfig.iosched
kyber-iosched.c
Makefile block: Make struct request_queue smaller for CONFIG_BLK_DEV_ZONED=n 2018-07-09 09:07:52 -06:00
mq-deadline.c
noop-iosched.c
opal_proto.h
partition-generic.c
scsi_ioctl.c
sed-opal.c block: sed-opal: Fix a couple off by one bugs 2018-06-20 12:04:06 -06:00
t10-pi.c