linux/block
Jens Axboe 0d2602ca30 blk-mq: improve support for shared tags maps
This adds support for active queue tracking, meaning that the
blk-mq tagging maintains a count of active users of a tag set.
This allows us to maintain a notion of fairness between users,
so that we can distribute the tag depth evenly without starving
some users while allowing others to try unfair deep queues.

If sharing of a tag set is detected, each hardware queue will
track the depth of its own queue. And if this exceeds the total
depth divided by the number of active queues, the user is actively
throttled down.

The active queue count is done lazily to avoid bouncing that data
between submitter and completer. Each hardware queue gets marked
active when it allocates its first tag, and gets marked inactive
when 1) the last tag is cleared, and 2) the queue timeout grace
period has passed.

Signed-off-by: Jens Axboe <axboe@fb.com>
2014-05-13 15:10:52 -06:00
..
partitions block: Use macros from compiler.h instead of __attribute__((...)) 2014-02-18 12:20:01 -08: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: export blk_finish_request 2014-04-16 14:15:25 -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: add cond_resched() to potentially long running ioctl discard loop 2014-02-12 09:36:37 -07: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 rt,blk,mq: Make blk_mq_cpu_notify_lock a raw spinlock 2014-03-21 08:57:56 -06:00
blk-mq-cpumap.c blk-mq: split out tag initialization, support shared tags 2014-04-15 14:18:02 -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: improve support for shared tags maps 2014-05-13 15:10:52 -06:00
blk-mq-tag.h blk-mq: improve support for shared tags maps 2014-05-13 15:10:52 -06:00
blk-mq.c blk-mq: improve support for shared tags maps 2014-05-13 15:10:52 -06:00
blk-mq.h blk-mq: implement new and more efficient tagging scheme 2014-05-09 09:36:49 -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 blk-mq: rework flush sequencing logic 2014-02-10 09:29:00 -07: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: improve support for shared tags maps 2014-05-13 15:10:52 -06:00
bsg-lib.c
bsg.c
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
Kconfig block: change config option name for cmdline partition parsing 2013-09-30 14:31:02 -07:00
Kconfig.iosched
Makefile blk-mq: new multi-queue block IO queueing mechanism 2013-10-25 11:56:00 +01: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