linux_dsm_epyc7002/drivers/infiniband/hw/mlx5
Max Gurtovoy 38ca87c6f1 RDMA/mlx5: Introduce and implement new IB_WR_REG_MR_INTEGRITY work request
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: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Israel Rukshin <israelr@mellanox.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-06-24 11:49:27 -03:00
..
ah.c RDMA: Handle AH allocations by IB/core 2019-04-08 13:05:25 -03:00
cmd.c IB/mlx5: Add steering SW ICM device memory type 2019-05-06 12:51:51 -03:00
cmd.h IB/mlx5: Add steering SW ICM device memory type 2019-05-06 12:51:51 -03:00
cong.c infiniband: mlx5: no need to check return value of debugfs_create functions 2019-01-24 09:22:29 -07:00
cq.c RDMA: Check umem pointer validity prior to release 2019-06-20 15:17:59 -04:00
devx.c IB/mlx5: Verify DEVX general object type correctly 2019-05-14 10:22:09 -03:00
doorbell.c IB/{core,hw}: Have ib_umem_get extract the ib_ucontext from ib_udata 2019-01-10 17:07:45 -07:00
flow.c RDMA/mlx5: Allow DEVX and raw creation flow on reps 2019-04-22 15:24:05 -03:00
gsi.c RDMA, core and ULPs: Declare ib_post_send() and ib_post_recv() arguments const 2018-07-30 20:09:34 -06:00
ib_rep.c {IB,net}/mlx5: Constify rep ops functions pointers 2019-05-31 12:28:14 -07:00
ib_rep.h {IB,net}/mlx5: Constify rep ops functions pointers 2019-05-31 12:28:14 -07:00
ib_virt.c IB/mlx5: Restore IB guid/policy for virtual functions 2017-07-24 10:34:28 -04:00
Kconfig IB/{core,uverbs}: Move ib_umem_xxx functions from ib_core to ib_uverbs 2019-01-10 17:06:44 -07:00
mad.c RDMA/mad: Reduce MAD scope to mlx5_ib only 2019-01-15 10:02:29 +02:00
main.c RDMA/mlx5: Add attr for max number page list length for PI operation 2019-06-24 11:49:26 -03:00
Makefile net/mlx5: Move SRQ functions to RDMA part 2018-12-04 09:14:30 +02:00
mem.c RDMA/umem: Move page_shift from ib_umem to ib_odp_umem 2019-05-21 15:23:24 -03:00
mlx5_ib.h RDMA/mlx5: Implement mlx5_ib_map_mr_sg_pi and mlx5_ib_alloc_mr_integrity 2019-06-24 11:49:26 -03:00
mr.c RDMA/mlx5: Implement mlx5_ib_map_mr_sg_pi and mlx5_ib_alloc_mr_integrity 2019-06-24 11:49:26 -03:00
odp.c Merge remote-tracking branch 'mlx5-next/mlx5-next' into HEAD 2019-06-18 22:44:36 -04:00
qp.c RDMA/mlx5: Introduce and implement new IB_WR_REG_MR_INTEGRITY work request 2019-06-24 11:49:27 -03:00
srq_cmd.c RDMA: Handle SRQ allocations by IB/core 2019-04-08 13:05:25 -03:00
srq.c RDMA: Handle SRQ allocations by IB/core 2019-04-08 13:05:25 -03:00
srq.h RDMA: Handle SRQ allocations by IB/core 2019-04-08 13:05:25 -03:00