1
0
Fork 0
alistair23-linux/block
Jens Axboe c7c22e4d5c block: add support for IO CPU affinity
This patch adds support for controlling the IO completion CPU of
either all requests on a queue, or on a per-request basis. We export
a sysfs variable (rq_affinity) which, if set, migrates completions
of requests to the CPU that originally submitted it. A bio helper
(bio_set_completion_cpu()) is also added, so that queuers can ask
for completion on that specific CPU.

In testing, this has been show to cut the system time by as much
as 20-40% on synthetic workloads where CPU affinity is desired.

This requires a little help from the architecture, so it'll only
work as designed for archs that are using the new generic smp
helper infrastructure.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-10-09 08:56:09 +02:00
..
Kconfig block: Block layer data integrity support 2008-07-03 13:21:13 +02:00
Kconfig.iosched update I/O sched Kconfig help texts - CFQ is now default, not AS. 2007-02-17 20:08:22 +01:00
Makefile block: split softirq handling into blk-softirq.c 2008-10-09 08:56:09 +02:00
as-iosched.c block: make kblockd_schedule_work() take the queue as parameter 2008-10-09 08:56:09 +02:00
blk-barrier.c Allow elevators to sort/merge discard requests 2008-10-09 08:56:02 +02:00
blk-core.c block: add support for IO CPU affinity 2008-10-09 08:56:09 +02:00
blk-exec.c Add some block/ source files to the kernel-api docbook. Fix kernel-doc notation in them as needed. Fix changed function parameter names. Fix typos/spellos. In comments, change REQ_SPECIAL to REQ_TYPE_SPECIAL and REQ_BLOCK_PC to REQ_TYPE_BLOCK_PC. 2008-10-09 08:56:03 +02:00
blk-integrity.c block: implement and use {disk|part}_to_dev() 2008-10-09 08:56:07 +02:00
blk-ioc.c cfq-iosched: fix RCU race in the cfq io_context destructor handling 2008-05-07 09:28:57 +02:00
blk-map.c Add some block/ source files to the kernel-api docbook. Fix kernel-doc notation in them as needed. Fix changed function parameter names. Fix typos/spellos. In comments, change REQ_SPECIAL to REQ_TYPE_SPECIAL and REQ_BLOCK_PC to REQ_TYPE_BLOCK_PC. 2008-10-09 08:56:03 +02:00
blk-merge.c block: move stats from disk to part0 2008-10-09 08:56:08 +02:00
blk-settings.c block: add support for IO CPU affinity 2008-10-09 08:56:09 +02:00
blk-softirq.c block: add support for IO CPU affinity 2008-10-09 08:56:09 +02:00
blk-sysfs.c block: add support for IO CPU affinity 2008-10-09 08:56:09 +02:00
blk-tag.c Add some block/ source files to the kernel-api docbook. Fix kernel-doc notation in them as needed. Fix changed function parameter names. Fix typos/spellos. In comments, change REQ_SPECIAL to REQ_TYPE_SPECIAL and REQ_BLOCK_PC to REQ_TYPE_BLOCK_PC. 2008-10-09 08:56:03 +02:00
blk.h block: add support for IO CPU affinity 2008-10-09 08:56:09 +02:00
blktrace.c blktrace: simplify flags handling in __blk_add_trace 2008-10-09 08:56:01 +02:00
bsg.c block: move cmdfilter from gendisk to request_queue 2008-08-27 09:50:19 +02:00
cfq-iosched.c block: make kblockd_schedule_work() take the queue as parameter 2008-10-09 08:56:09 +02:00
cmd-filter.c block: move holder_dir from disk to part0 2008-10-09 08:56:08 +02:00
compat_ioctl.c Add BLKDISCARD ioctl to allow userspace to discard sectors 2008-10-09 08:56:02 +02:00
deadline-iosched.c deadline-iosched: non-functional fixes 2008-10-09 08:56:03 +02:00
elevator.c block: use linux/uaccess.h in elevator.c instead of asm variant 2008-10-09 08:56:09 +02:00
genhd.c block: allow disk to have extended device number 2008-10-09 08:56:08 +02:00
ioctl.c block: make partition array dynamic 2008-10-09 08:56:08 +02:00
noop-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
scsi_ioctl.c SG_IO block filter whitelist missing MMC SET READ AHEAD command 2008-10-09 08:56:00 +02:00