• Bob Liu's avatar
    xen/block: add multi-page ring support · 86839c56
    Bob Liu authored
    Extend xen/block to support multi-page ring, so that more requests can be
    issued by using more than one pages as the request ring between blkfront
    and backend.
    As a result, the performance can get improved significantly.
    
    We got some impressive improvements on our highend iscsi storage cluster
    backend. If using 64 pages as the ring, the IOPS increased about 15 times
    for the throughput testing and above doubled for the latency testing.
    
    The reason was the limit on outstanding requests is 32 if use only one-page
    ring, but in our case the iscsi lun was spread across about 100 physical
    drives, 32 was really not enough to keep them busy.
    
    Changes in v2:
     - Rebased to 4.0-rc6.
     - Document on how multi-page ring feature working to linux io/blkif.h.
    
    Changes in v3:
     - Remove changes to linux io/blkif.h and follow the protocol defined
       in io/blkif.h of XEN tree.
     - Rebased to 4.1-rc3
    
    Changes in v4:
     - Turn to use 'ring-page-order' and 'max-ring-page-order'.
     - A few comments from Roger.
    
    Changes in v5:
     - Clarify with 4k granularity to comment
     - Address more comments from Roger
    Signed-off-by: default avatarBob Liu <bob.liu@oracle.com>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    86839c56
blkback.c 41.8 KB