Hi, The 1st patch moves sw queue's bio merge before plugging, then the sequential I/O performance regression by blk-mq can be fixed. The 2nd patch makes the sw queue's bio merge as the default .bio_merge if no io scheduler is used or the io scheduler doesn't provide .bio_merge. This post splits the orginal one into two patches to make diff easy-read as suggested by Christoph. V2: - remove a 'goto' in patch 1, as suggested by Christoph Thanks, Ming Ming Lei (2): blk-mq: merge bio into sw queue before plugging blk-mq: make per-sw-queue bio merge as default .bio_merge block/blk-mq-sched.c | 62 ++++++++++++++++++++++++++++++++++++---- block/blk-mq-sched.h | 4 +-- block/blk-mq.c | 80 +++++++--------------------------------------------- 3 files changed, 68 insertions(+), 78 deletions(-) -- 2.9.4