]> git.baikalelectronics.ru Git - kernel.git/commit
blk-mq: respect rq_affinity
authorChristoph Hellwig <hch@lst.de>
Fri, 25 Apr 2014 09:32:53 +0000 (02:32 -0700)
committerJens Axboe <axboe@fb.com>
Fri, 25 Apr 2014 14:24:07 +0000 (08:24 -0600)
commitacfaac5dc637548925fe3e893a34d4bdef0a7d32
treead94c4a3d3d7e1b47f2721ac36ab1698349e208d
parent33877ce4e854c63078e027e9e771cd72cecdf475
blk-mq: respect rq_affinity

The blk-mq code is using it's own version of the I/O completion affinity
tunables, which causes a few issues:

 - the rq_affinity sysfs file doesn't work for blk-mq devices, even if it
   still is present, thus breaking existing tuning setups.
 - the rq_affinity = 1 mode, which is the defauly for legacy request based
   drivers isn't implemented at all.
 - blk-mq drivers don't implement any completion affinity with the default
   flag settings.

This patches removes the blk-mq ipi_redirect flag and sysfs file, as well
as the internal BLK_MQ_F_SHOULD_IPI flag and replaces it with code that
respects the queue-wide rq_affinity flags and also implements the
rq_affinity = 1 mode.

This means I/O completion affinity can now only be tuned block-queue wide
instead of per context, which seems more sensible to me anyway.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq-sysfs.c
block/blk-mq.c
block/blk-mq.h
include/linux/blk-mq.h