|author||Dan Williams <email@example.com>||2011-07-23 20:44:25 +0200|
|committer||Jens Axboe <firstname.lastname@example.org>||2011-07-23 20:44:25 +0200|
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 <email@example.com> Cc: Roland Dreier <firstname.lastname@example.org> Tested-by: Dave Jiang <email@example.com> Signed-off-by: Dan Williams <firstname.lastname@example.org> Signed-off-by: Jens Axboe <email@example.com>
Diffstat (limited to 'Documentation')
1 files changed, 7 insertions, 3 deletions
diff --git a/Documentation/block/queue-sysfs.txt b/Documentation/block/queue-sysfs.txt
index f65274081c8d..d8147b336c35 100644
@@ -45,9 +45,13 @@ device.
-If this option is enabled, the block layer will migrate request completions
-to the CPU that originally submitted the request. For some workloads
-this provides a significant reduction in CPU cycles due to caching effects.
+If this option is '1', the block layer will migrate request completions to the
+cpu "group" that originally submitted the request. For some workloads this
+provides a significant reduction in CPU cycles due to caching effects.
+For storage configurations that need to maximize distribution of completion
+processing setting this option to '2' forces the completion to run on the
+requesting cpu (bypassing the "group" aggregation logic).