Hi,

The following 5 patches convert current loop driver into blk-mq:

        - loop's throughput of read and randread can get improved much
        because of the work queue implementation, also there is opportunity
        for blk-mq to merge I/O from loop block
        - loop driver gets quite simplified with blk-mq because there is
        the whole request based framework and something like flush mechanism,
        and the conversion can be throught as cleanup

V3:
        - rebased on v3.19-rc2-next20141231
        - submit I/O via workqueue
        - don't handle write requests concurrently
        - set flag of BLK_MQ_F_SG_MERGE
        - fix failure path in patch 2/5

V2:
        - replace work queue with kthread worker because wq may cause
        regression on some fast devices(such as loop over null_blk, tmpfs
        file, ...), in these cases, loop thread becomes CPU bound actually,
        so work queue will introduce lots of unnecessary context switch, and
        decrease throughput a lot one this cases
        - introduce prepare_flush_rq_fn callback and its pair in blk-mq ops
        for setting up flush rq's pdu correctly
        - move kernel aio patches into another patchset as suggested by
        Christoph
        - no change in the other 4 patches

V1:
        - improve failure path in aio_kernel_submit()

 block/blk-mq.c         |    4 +-
 block/blk-mq.h         |    1 -
 drivers/block/loop.c   |  417 ++++++++++++++++++++++++------------------------
 drivers/block/loop.h   |   17 +-
 include/linux/blk-mq.h |    2 +
 5 files changed, 221 insertions(+), 220 deletions(-)

Thanks,
Ming Lei


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to