• Kiyoshi Ueda's avatar
    dm mpath: change to be request based · f40c67f0
    Kiyoshi Ueda authored
    This patch converts dm-multipath target to request-based from bio-based.
    
    Basically, the patch just converts the I/O unit from struct bio
    to struct request.
    In the course of the conversion, it also changes the I/O queueing
    mechanism.  The change in the I/O queueing is described in details
    as follows.
    
    I/O queueing mechanism change
    -----------------------------
    In I/O submission, map_io(), there is no mechanism change from
    bio-based, since the clone request is ready for retry as it is.
    However, in I/O complition, do_end_io(), there is a mechanism change
    from bio-based, since the clone request is not ready for retry.
    
    In do_end_io() of bio-based, the clone bio has all needed memory
    for resubmission.  So the target driver can queue it and resubmit
    it later without memory allocations.
    The mechanism has almost no overhead.
    
    On the other hand, in do_end_io() of request-based, the clone request
    doesn't have clone bios, so the target driver can't resubmit it
    as it is.  To resu...
    f40c67f0
dm-mpath.c 36.7 KB