Ming Lei
923218f616
blk-mq: don't allocate driver tag upfront for flush rq
...
The idea behind it is simple:
1) for none scheduler, driver tag has to be borrowed for flush rq,
otherwise we may run out of tag, and that causes an IO hang. And
get/put driver tag is actually noop for none, so reordering tags
isn't necessary at all.
2) for a real I/O scheduler, we need not allocate a driver tag upfront
for flush rq. It works just fine to follow the same approach as
normal requests: allocate driver tag for each rq just before calling
->queue_rq().
One driver visible change is that the driver tag isn't shared in the
flush request sequence. That won't be a problem, since we always do that
in legacy path.
Then flush rq need not be treated specially wrt. get/put driver tag.
This cleans up the code - for instance, reorder_tags_to_front() can be
removed, and we needn't worry about request ordering in dispatch list
for avoiding I/O deadlock.
Also we have to put the driver tag before requeueing.
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2017-11-04 12:40:13 -06:00
..
partitions
badblocks.c
bfq-cgroup.c
bfq: Declare local functions static
2017-09-01 13:56:37 -06:00
bfq-iosched.c
block, bfq: fix unbalanced decrements of burst size
2017-10-09 09:54:58 -06:00
bfq-iosched.h
Merge branch 'for-4.14/block' of git://git.kernel.dk/linux-block
2017-09-07 11:59:42 -07:00
bfq-wf2q.c
block, bfq: guarantee update_next_in_service always returns an eligible entity
2017-08-31 08:20:31 -06:00
bio-integrity.c
block: remove unnecessary NULL checks in bioset_integrity_free()
2017-10-06 13:03:12 -06:00
bio.c
block: fix Sphinx kernel-doc warning
2017-10-16 13:00:12 -06:00
blk-cgroup.c
blkcg: add sanity check for blkcg policy operations
2017-11-04 12:31:15 -06:00
blk-core.c
block: pass 'run_queue' to blk_mq_request_bypass_insert
2017-11-04 12:38:40 -06:00
blk-exec.c
blk-flush.c
blk-mq: don't allocate driver tag upfront for flush rq
2017-11-04 12:40:13 -06:00
blk-integrity.c
blk-ioc.c
blk-lib.c
block: cope with WRITE ZEROES failing in blkdev_issue_zeroout()
2017-10-25 12:28:23 -06:00
blk-map.c
blk-merge.c
blk-mq-cpumap.c
blk-mq-debugfs.c
block: remove QUEUE_FLAG_STACKABLE
2017-10-05 15:22:59 -06:00
blk-mq-debugfs.h
blk-mq-pci.c
blk-mq-rdma.c
blk-mq-sched.c
blk-mq: don't allocate driver tag upfront for flush rq
2017-11-04 12:40:13 -06:00
blk-mq-sched.h
blk-mq: don't restart queue when .get_budget returns BLK_STS_RESOURCE
2017-11-01 08:20:34 -06:00
blk-mq-sysfs.c
blk-mq-tag.c
block: remove blk_mq_reinit_tagset
2017-10-18 19:27:49 +02:00
blk-mq-tag.h
blk-mq-tag: kill unused tag enums
2017-10-01 01:26:21 -06:00
blk-mq-virtio.c
blk-mq.c
blk-mq: don't allocate driver tag upfront for flush rq
2017-11-04 12:40:13 -06:00
blk-mq.h
blk-mq: move blk_mq_put_driver_tag*() into blk-mq.h
2017-11-04 12:39:57 -06:00
blk-settings.c
blk-softirq.c
blk-stat.c
blk-stat: delete useless code
2017-10-10 13:48:14 -06:00
blk-stat.h
blk-sysfs.c
blk-tag.c
blk-throttle.c
blk-throttle: fix null pointer dereference while throttling writeback IOs
2017-10-10 13:09:34 -06:00
blk-timeout.c
block: Fix a race between blk_cleanup_queue() and timeout handling
2017-10-30 13:28:10 -06:00
blk-wbt.c
block,bfq: Disable writeback throttling
2017-10-09 08:29:21 -06:00
blk-wbt.h
blk-zoned.c
blk.h
blk-mq: document the need to have STARTED and COMPLETED share a byte
2017-10-04 11:22:24 -06:00
bounce.c
bsg-lib.c
bsg-lib: don't free job in bsg_prepare_job
2017-09-25 08:56:05 -06:00
bsg.c
bsg: remove #if 0'ed code
2017-08-29 10:50:30 -06:00
cfq-iosched.c
block/cfq: cache rightmost rb_node
2017-09-08 18:26:49 -07:00
cmdline-parser.c
compat_ioctl.c
compat_hdio_ioctl: Fix a declaration
2017-08-31 17:32:41 -04:00
deadline-iosched.c
elevator.c
elevator: allow name aliases
2017-10-25 12:36:50 -06:00
genhd.c
block: introduce GENHD_FL_HIDDEN
2017-11-03 10:31:48 -06:00
ioctl.c
block: move CAP_SYS_ADMIN check in blkdev_roset()
2017-10-25 12:25:00 -06:00
ioprio.c
Kconfig
Kconfig.iosched
kyber-iosched.c
block: kyber: check if there are requests in ctx in kyber_has_work()
2017-11-01 08:20:02 -06:00
Makefile
mq-deadline.c
mq-deadline: add 'deadline' as a name alias
2017-10-25 12:36:55 -06:00
noop-iosched.c
opal_proto.h
block: sed-opal: Set MBRDone on S3 resume path if TPER is MBREnabled
2017-09-11 09:45:52 -06:00
partition-generic.c
block: fix a crash caused by wrong API
2017-09-25 08:56:05 -06:00
scsi_ioctl.c
sed-opal.c
block: sed-opal: Set MBRDone on S3 resume path if TPER is MBREnabled
2017-09-11 09:45:52 -06:00
t10-pi.c