1
0
Fork 0
alistair23-linux/block
Jens Axboe 95f0968499 blk-mq: allow non-softirq completions
Right now we export two ways of completing a request:

1) blk_mq_complete_request(). This uses an IPI (if needed) and
   completes through q->softirq_done_fn(). It also works with
   timeouts.

2) blk_mq_end_io(). This completes inline, and ignores any timeout
   state of the request.

Let blk_mq_complete_request() handle non-softirq_done_fn completions
as well, by just completing inline. If a driver has enough completion
ports to place completions correctly, it need not define a
mq_ops->complete() and we can avoid an indirect function call by
doing the completion inline.

Signed-off-by: Jens Axboe <axboe@fb.com>
2014-05-27 17:46:48 -06:00
..
partitions block: Use macros from compiler.h instead of __attribute__((...)) 2014-02-18 12:20:01 -08:00
Kconfig block: change config option name for cmdline partition parsing 2013-09-30 14:31:02 -07:00
Kconfig.iosched blkcg: make CONFIG_BLK_CGROUP bool 2012-03-06 21:27:21 +01:00
Makefile block: move mm/bounce.c to block/ 2014-05-19 20:01:52 -06:00
bio-integrity.c block: move bio.c and bio-integrity.c from fs/ to block/ 2014-05-19 08:34:46 -06:00
bio.c block: move bio.c and bio-integrity.c from fs/ to block/ 2014-05-19 08:34:46 -06:00
blk-cgroup.c Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2014-04-03 13:05:42 -07:00
blk-cgroup.h Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2014-04-03 13:05:42 -07:00
blk-core.c block: only allocate/free mq_usage_counter in blk-mq 2014-05-27 09:37:08 -06:00
blk-exec.c blk-mq: merge blk_mq_insert_request and blk_mq_run_request 2014-03-21 08:57:37 -06:00
blk-flush.c blk-mq: rename mq_flush_work struct request member 2014-04-16 14:15:25 -06:00
blk-integrity.c bio-integrity: Convert to bvec_iter 2013-11-23 22:33:50 -08:00
blk-ioc.c block: Substitute rcu_access_pointer() for rcu_dereference_raw() 2014-02-18 12:21:26 -08:00
blk-iopoll.c block/blk-iopoll.c: use iop instead of iopoll 2014-05-02 11:37:41 -06:00
blk-lib.c block/blk-lib.c: make __blkdev_issue_zeroout static 2014-05-26 17:39:09 -06:00
blk-map.c block: remove struct request buffer member 2014-04-15 14:03:02 -06:00
blk-merge.c block: Explicitly handle discard/write same segments 2014-02-07 13:54:08 -07:00
blk-mq-cpu.c blk-mq: allow the hctx cpu hotplug notifier to return errors 2014-05-21 13:59:08 -06:00
blk-mq-cpumap.c blk-mq: pass in suggested NUMA node to ->alloc_hctx() 2014-05-27 12:06:53 -06:00
blk-mq-sysfs.c blk-mq: improve support for shared tags maps 2014-05-13 15:10:52 -06:00
blk-mq-tag.c blk-mq: export blk_mq_tag_busy_iter 2014-05-23 13:30:16 -06:00
blk-mq-tag.h blk-mq: export blk_mq_tag_busy_iter 2014-05-23 13:30:16 -06:00
blk-mq.c blk-mq: allow non-softirq completions 2014-05-27 17:46:48 -06:00
blk-mq.h blk-mq: pass in suggested NUMA node to ->alloc_hctx() 2014-05-27 12:06:53 -06:00
blk-settings.c bcache/md: Use raid stripe size 2014-01-08 13:05:09 -08:00
blk-softirq.c block: fix regression with block enabled tagging 2014-04-09 21:54:06 -06:00
blk-sysfs.c block: only allocate/free mq_usage_counter in blk-mq 2014-05-27 09:37:08 -06:00
blk-tag.c block: Reserve only one queue tag for sync IO if only 3 tags are available 2013-06-28 21:32:27 +02:00
blk-throttle.c block/blk-throttle.c: fix return of 0/1 with return type bool 2014-05-02 11:38:03 -06:00
blk-timeout.c blk-mq: improve support for shared tags maps 2014-05-13 15:10:52 -06:00
blk.h blk-mq: allow changing of queue depth through sysfs 2014-05-20 11:49:02 -06:00
bounce.c block: move mm/bounce.c to block/ 2014-05-19 20:01:52 -06:00
bsg-lib.c bsg: Remove unused function bsg_goose_queue() 2012-12-06 14:33:02 +01:00
bsg.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
cfq-iosched.c block: Fix format string mismatch in cfq-iosched.c 2014-04-30 15:56:10 -06:00
cmdline-parser.c block: remove unrelated header files and export symbol 2014-01-21 20:18:26 -08:00
compat_ioctl.c kernel-wide: fix missing validations on __get/__put/__copy_to/__copy_from_user() 2013-09-11 15:58:18 -07:00
deadline-iosched.c block: Stop abusing csd.list for fifo_time 2014-02-24 14:46:32 -08:00
elevator.c block: fix regression with block enabled tagging 2014-04-09 21:54:06 -06:00
genhd.c block: Convert kmalloc_node(...GFP_ZERO...) to kzalloc_node(...) 2013-09-11 13:22:03 -06:00
ioctl.c block: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO 2013-11-08 09:05:31 -07:00
ioprio.c block: move ioprio.c from fs/ to block/ 2014-05-19 11:02:18 -06:00
noop-iosched.c elevator: Fix a race in elevator switching 2013-07-03 13:25:24 +02:00
partition-generic.c Revert "loop: cleanup partitions when detaching loop device" 2013-04-08 10:12:11 +02:00
scsi_ioctl.c block: Fix memory leak in rw_copy_check_uvector() handling 2014-01-21 20:36:17 -08:00