• Mike Snitzer's avatar
    dm: add full blk-mq support to request-based DM · bfebd1cd
    Mike Snitzer authored
    Commit e5863d9a ("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: default avatarMike Snitzer <snitzer@redhat.com>
    Tested-by: default avatarKeith Busch <keith.busch@intel.com>
    bfebd1cd
dm-mpath.c 41 KB