• Max Gurtovoy's avatar
    RDMA/mlx5: Introduce and implement new IB_WR_REG_MR_INTEGRITY work request · 38ca87c6
    Max Gurtovoy authored
    This new WR will be used to perform PI (protection information) handover
    using the new API. Using the new API, the user will post a single WR that
    will internally perform all the needed actions to complete PI operation.
    This new WR will use a memory region that was allocated as
    IB_MR_TYPE_INTEGRITY and was mapped using ib_map_mr_sg_pi to perform the
    registration. In the old API, in order to perform a signature handover
    operation, each ULP should perform the following:
    1. Map and register the data buffers.
    2. Map and register the protection buffers.
    3. Post a special reg WR to configure the signature handover operation
       layout.
    4. Invalidate the signature memory key.
    5. Invalidate protection buffers memory key.
    6. Invalidate data buffers memory key.
    
    In the new API, the mapping of both data and protection buffers is
    performed using a single call to ib_map_mr_sg_pi function. Also the
    registration of the buffers and the configuration of the signature
    operation layout is done by a single new work request called
    IB_WR_REG_MR_INTEGRITY.
    This patch implements this operation for mlx5 devices that are capable to
    offload data integrity generation/validation while performing the actual
    buffer transfer.
    This patch will not remove the old signature API that is used by the iSER
    initiator and target drivers. This will be done in the future.
    
    In the internal implementation, for each IB_WR_REG_MR_INTEGRITY work
    request, we are using a single UMR operation to register both data and
    protection buffers using KLM's.
    Afterwards, another UMR operation will describe the strided block format.
    These will be followed by 2 SET_PSV operations to set the memory/wire
    domains initial signature parameters passed by the user.
    In the end of the whole transaction, only the signature memory key
    (the one that exposed for the RDMA operation) will be invalidated.
    Signed-off-by: default avatarMax Gurtovoy <maxg@mellanox.com>
    Signed-off-by: default avatarIsrael Rukshin <israelr@mellanox.com>
    Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    38ca87c6
qp.c 176 KB