This patchset is the result of working through the report that request-based DM (via dm-multipath) performance suffers on very fast storage. The last patch is this set introduces a new per-device sysfs parameter (rq_based_queue_deadline) that can be set to throttle how aggressively a request is allowed to remain on the queue to promote merging. Netapp found that for their filer with an SSD backend and 4 paths they needed to set this to 10us -- performance jumped nearly 100% (from 280 to 503 MB/s) for their multi-threaded sequential IO workload. This new parameter is clearly beneficial but yet unfortunate because: it requires users with really fast multipath storage configs to test/set this parameter based on running their sequential IO workload on their specific hardware config. While I'd love it if we could autodetect the proper value for _any_ storage I really don't think that autotuning belongs in the kernel. Not to mention: getting that algorithm 1) correct 2) efficient across all storage is difficult. But I'm open to any suggestions for how to autotune this parameter in-kernel without impacting slower setups that have no need to be bothered with this parameter. Mike Snitzer (8): dm: remove unnecessary wrapper around blk_lld_busy dm: remove request-based DM queue's lld_busy_fn hook dm: remove request-based logic from make_request_fn wrapper dm: only run the queue on completion if congested or no requests pending dm: don't schedule delayed run of the queue if nothing to do dm: don't start current request if it would've merged with the previous dm sysfs: introduce ability to add writable attributes dm: impose configurable deadline for dm_request_fn's merge heuristic block/blk-core.c | 5 +- drivers/md/dm-mpath.c | 2 +- drivers/md/dm-sysfs.c | 34 +++++++++-- drivers/md/dm-table.c | 14 ----- drivers/md/dm.c | 128 +++++++++++++++++++++++++++--------------- drivers/md/dm.h | 5 +- include/linux/blkdev.h | 2 - include/linux/device-mapper.h | 5 -- 8 files changed, 121 insertions(+), 74 deletions(-) -- 1.9.3 (Apple Git-50) -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel