block: strict rq_affinity
commit5757a6d76cdf6dda2a492c09b985c015e86779b1
authorDan Williams <dan.j.williams@intel.com>
Sat, 23 Jul 2011 18:44:25 +0000 (23 20:44 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Sat, 23 Jul 2011 18:44:25 +0000 (23 20:44 +0200)
tree6356a6353639eb473dd917a1b2062f9e7e20de22
parentef3230880abd36553ab442363d3c9a0661f00769
block: strict rq_affinity

Some systems benefit from completions always being steered to the strict
requester cpu rather than the looser "per-socket" steering that
blk_cpu_to_group() attempts by default. This is because the first
CPU in the group mask ends up being completely overloaded with work,
while the others (including the original submitter) has power left
to spare.

Allow the strict mode to be set by writing '2' to the sysfs control
file. This is identical to the scheme used for the nomerges file,
where '2' is a more aggressive setting than just being turned on.

echo 2 > /sys/block/<bdev>/queue/rq_affinity

Cc: Christoph Hellwig <hch@infradead.org>
Cc: Roland Dreier <roland@purestorage.com>
Tested-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Documentation/block/queue-sysfs.txt
block/blk-core.c
block/blk-softirq.c
block/blk-sysfs.c
include/linux/blkdev.h