1
0
Fork 0
alistair23-linux/block
Jens Axboe c13660a08c blk-mq-sched: change ->dispatch_requests() to ->dispatch_request()
When we invoke dispatch_requests(), the scheduler empties everything
into the passed in list. This isn't always a good thing, since it
means that we remove items that we could have potentially merged
with.

Change the function to dispatch single requests at the time. If
we do that, we can backoff exactly at the point where the device
can't consume more IO, and leave the rest with the scheduler for
better merging and future dispatch decision making.

Signed-off-by: Jens Axboe <axboe@fb.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Tested-by: Hannes Reinecke <hare@suse.com>
2017-01-27 08:20:35 -07:00
..
partitions partitions/efi: Fix integer overflow in GPT size calculation 2017-01-17 09:02:31 -07:00
Kconfig block: hook up writeback throttling 2016-11-10 13:53:40 -07:00
Kconfig.iosched blk-mq-sched: allow setting of default IO scheduler 2017-01-17 10:04:31 -07:00
Makefile blk-mq: create debugfs directory tree 2017-01-27 08:17:44 -07:00
badblocks.c badblocks: badblocks_set/clear update unacked_exist 2016-10-21 15:45:47 -06:00
bio-integrity.c block: remove bio_is_rw 2016-10-28 08:45:17 -06:00
bio.c block: improve handling of the magic discard payload 2016-12-09 08:30:51 -07:00
blk-cgroup.c blk-cgroup: don't quiesce the queue on policy activate/deactivate 2017-01-18 15:37:27 -07:00
blk-core.c blk-mq-sched: add framework for MQ capable IO schedulers 2017-01-17 10:04:20 -07:00
blk-exec.c blk-mq-sched: add framework for MQ capable IO schedulers 2017-01-17 10:04:20 -07:00
blk-flush.c blk-mq-sched: add framework for MQ capable IO schedulers 2017-01-17 10:04:20 -07:00
blk-integrity.c block, libnvdimm, nvme: provide a built-in blk_integrity nop profile 2015-10-21 14:43:45 -06:00
blk-ioc.c blk-mq-sched: add framework for MQ capable IO schedulers 2017-01-17 10:04:20 -07:00
blk-lib.c block: improve handling of the magic discard payload 2016-12-09 08:30:51 -07:00
blk-map.c Merge branch 'for-4.10/block' of git://git.kernel.dk/linux-block 2016-12-13 10:19:16 -08:00
blk-merge.c blk-mq-sched: add framework for MQ capable IO schedulers 2017-01-17 10:04:20 -07:00
blk-mq-cpumap.c blk-mq: export blk_mq_map_queues 2016-11-08 17:30:00 -05:00
blk-mq-debugfs.c blk-mq: move hctx and ctx counters from sysfs to debugfs 2017-01-27 08:17:44 -07:00
blk-mq-pci.c blk_mq: linux/blk-mq.h does not include all the headers it depends on 2016-09-19 08:21:51 -06:00
blk-mq-sched.c blk-mq-sched: change ->dispatch_requests() to ->dispatch_request() 2017-01-27 08:20:35 -07:00
blk-mq-sched.h blk-mq-sched: fix starvation for multiple hardware queues and shared tags 2017-01-27 08:20:34 -07:00
blk-mq-sysfs.c blk-mq: move hctx and ctx counters from sysfs to debugfs 2017-01-27 08:17:44 -07:00
blk-mq-tag.c blk-mq: move tags and sched_tags info from sysfs to debugfs 2017-01-27 08:17:44 -07:00
blk-mq-tag.h blk-mq: move tags and sched_tags info from sysfs to debugfs 2017-01-27 08:17:44 -07:00
blk-mq.c blk-mq-sched: change ->dispatch_requests() to ->dispatch_request() 2017-01-27 08:20:35 -07:00
blk-mq.h blk-mq-sched: fix starvation for multiple hardware queues and shared tags 2017-01-27 08:20:34 -07:00
blk-settings.c Merge branch 'for-4.10/block' of git://git.kernel.dk/linux-block 2016-12-13 10:19:16 -08:00
blk-softirq.c This adds a new gcc plugin named "latent_entropy". It is designed to 2016-10-15 10:03:15 -07:00
blk-stat.c blk-stat: fix a few cases of missing batch flushing 2016-12-09 13:08:35 -07:00
blk-stat.h block: add scalable completion tracking of requests 2016-11-10 13:53:26 -07:00
blk-sysfs.c Merge branch 'for-4.10/block' of git://git.kernel.dk/linux-block 2016-12-13 10:19:16 -08:00
blk-tag.c blk-mq-sched: add framework for MQ capable IO schedulers 2017-01-17 10:04:20 -07:00
blk-throttle.c blk-throttle: Adjust two function calls together with a variable assignment 2017-01-23 08:32:15 -07:00
blk-timeout.c block: remove REQ_NO_TIMEOUT flag 2015-12-22 09:38:34 -07:00
blk-wbt.c block: Avoid that sparse complains about context imbalance in __wbt_wait() 2017-01-02 09:48:47 -07:00
blk-wbt.h blk-wbt: allow wbt to be enabled always through sysfs 2016-11-28 10:27:03 -07:00
blk-zoned.c block: zoned: fix harmless maybe-uninitialized warning 2016-10-24 20:51:22 -06:00
blk.h block: move rq_ioc() to blk.h 2017-01-17 10:03:42 -07:00
bounce.c Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2015-09-19 18:57:09 -07:00
bsg-lib.c SCSI misc on 20161213 2016-12-14 10:49:33 -08:00
bsg.c sg_write()/bsg_write() is not fit to be called under KERNEL_DS 2016-12-22 23:03:42 -05:00
cfq-iosched.c cfq-iosched: Adjust one function call together with a variable assignment 2017-01-23 08:32:18 -07:00
cmdline-parser.c block: remove unrelated header files and export symbol 2014-01-21 20:18:26 -08:00
compat_ioctl.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
deadline-iosched.c block: move existing elevator ops to union 2017-01-17 10:03:33 -07:00
elevator.c elevator: fix unnecessary put of elevator in failure case 2017-01-19 07:43:05 -07:00
genhd.c block: fix bdi vs gendisk lifetime mismatch 2016-08-04 14:19:16 -06:00
ioctl.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
ioprio.c block: fix use-after-free in sys_ioprio_get() 2016-07-01 08:39:24 -06:00
mq-deadline.c blk-mq-sched: change ->dispatch_requests() to ->dispatch_request() 2017-01-27 08:20:35 -07:00
noop-iosched.c block: move existing elevator ops to union 2017-01-17 10:03:33 -07:00
partition-generic.c block: Check partition alignment on zoned block devices 2016-12-01 07:56:53 -07:00
scsi_ioctl.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
t10-pi.c block: Consolidate static integrity profile properties 2015-10-21 14:42:38 -06:00