]> git.karo-electronics.de Git - karo-tx-linux.git/commit
dm: add full blk-mq support to request-based DM
authorMike Snitzer <snitzer@redhat.com>
Sun, 8 Mar 2015 05:51:47 +0000 (00:51 -0500)
committerMike Snitzer <snitzer@redhat.com>
Tue, 31 Mar 2015 16:06:29 +0000 (12:06 -0400)
commit75c8552721dad3b1129be36e99800138688607cb
treecd9cd1d6dfadbed031394d0cee8e4809793d9434
parent17df8523c7e81fcd1eaee72d00b92b97adc63be7
dm: add full blk-mq support to request-based DM

Commit e5863d9ad ("dm: allocate requests in target when stacking on
blk-mq devices") served as the first step toward fully utilizing blk-mq
in request-based DM -- it enabled stacking an old-style (request_fn)
request_queue ontop of the underlying blk-mq device(s).  That first step
didn't improve performance of DM multipath ontop of fast blk-mq devices
(e.g. NVMe) because the top-level old-style request_queue was severely
limited by the queue_lock.

The second step offered here enables stacking a blk-mq request_queue
ontop of the underlying blk-mq device(s).  This unlocks significant
performance gains on fast blk-mq devices, Keith Busch tested on his NVMe
testbed and offered this really positive news:

 "Just providing a performance update. All my fio tests are getting
  roughly equal performance whether accessed through the raw block
  device or the multipath device mapper (~470k IOPS). I could only push
  ~20% of the raw iops through dm before this conversion, so this latest
  tree is looking really solid from a performance standpoint."

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Tested-by: Keith Busch <keith.busch@intel.com>
drivers/md/dm-mpath.c
drivers/md/dm-table.c
drivers/md/dm.c
include/uapi/linux/dm-ioctl.h