Skip to content
  • Israel Rukshin's avatar
    RDMA/rw: Use IB_WR_REG_MR_INTEGRITY for PI handover · e9a53e73
    Israel Rukshin authored
    
    
    Replace the old signature handover API with the new one. The new API
    simplifes PI handover code complexity for ULPs and improve performance.
    For RW API it will reduce the maximum number of work requests per task
    and the need of dealing with multiple MRs (and their registrations and
    invalidations) per task. All the mappings and registration of the data
    and the protection buffers is done by the LLD using a single WR and a
    special MR type (IB_MR_TYPE_INTEGRITY) for the PI handover operation.
    
    The setup of the tested benchmark (using iSER ULP):
     - 2 servers with 24 cores (1 initiator and 1 target)
     - ConnectX-4/ConnectX-5 adapters
     - 24 target sessions with 1 LUN each
     - ramdisk backstore
     - PI active
    
    Performance results running fio (24 jobs, 128 iodepth) using
    write_generate=1 and read_verify=1 (w/w.o patch):
    
    bs      IOPS(read)        IOPS(write)
    ----    ----------        ----------
    512   1243.3K/1182.3K    1725.1K/1680.2K
    4k    571233/528835      743293/748259
    32k   72388/71086        71789/93573
    
    Using write_generate=0 and read_verify=0 (w/w.o patch):
    bs      IOPS(read)        IOPS(write)
    ----    ----------        ----------
    512   1572.1K/1427.2K    1823.5K/1724.3K
    4k    921992/916194      753772/768267
    32k   75052/73960        73180/95484
    
    There is a performance degradation when writing big block sizes.
    Degradation is caused by the complexity of combining multiple
    indirections and perform RDMA READ operation from it. This will be
    fixed in the following patches by reducing the indirections if
    possible.
    
    Signed-off-by: default avatarIsrael Rukshin <israelr@mellanox.com>
    Reviewed-by: default avatarMax Gurtovoy <maxg@mellanox.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    e9a53e73