]> git.baikalelectronics.ru Git - kernel.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>
Wed, 15 Apr 2015 16:10:16 +0000 (12:10 -0400)
commit75f401f6db39991eca4618d0b584779162281118
treec4ca9675ad22a45eb6e36b130db0d65d574dd2b3
parentefc5f0f6e68fade5fb0e65f52de50495823cb2ae
dm: add full blk-mq support to request-based DM

Commit 2520e2d8a ("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