On 11/1/18 3:27 AM, Hannes Reinecke wrote: > On 10/30/18 7:32 PM, Jens Axboe wrote: >> We call blk_mq_map_queue() a lot, at least two times for each >> request per IO, sometimes more. Since we now have an indirect >> call as well in that function. cache the mapping so we don't >> have to re-call blk_mq_map_queue() for the same request >> multiple times. >> >> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> >> --- >> block/blk-flush.c | 12 ++++-------- >> block/blk-mq-debugfs.c | 4 +--- >> block/blk-mq-sched.c | 6 ++---- >> block/blk-mq-tag.c | 9 +-------- >> block/blk-mq.c | 22 +++++++++------------- >> block/blk-mq.h | 5 +---- >> include/linux/blkdev.h | 1 + >> 7 files changed, 19 insertions(+), 40 deletions(-) >> > Hehe. > I had been wondering about this since the original mq implementation, > but was told not to worry :-) To be fair, it was just an array index. Now it's got an indirect call, so it's more expensive. > Reviewed-by: Hannes Reinecke <hare@xxxxxxxx> Thanks! -- Jens Axboe