Commit 052edaf6 authored by Alexey Marchuk's avatar Alexey Marchuk Committed by Konrad Sztyber
Browse files

accel/mlx5: Use internal PRM based mlx5 library



That gives much higher performance
Other changes
- Add API to get verbs qp from mlx5 qp - needed
for memory domain translation
- Account number of expected CQ entries to skip busy
polling of CQ
- Count number of operations submitted to QP to prevent
QP overflow
- Use mlx5 mkey_pool API

Signed-off-by: default avatarAlexey Marchuk <alexeymar@nvidia.com>
Change-Id: I42a2f3305e1d4fa876a674b5c9f572a5802e0847
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23118


Reviewed-by: default avatarBen Walker <ben@nvidia.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent ada8f469
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -219,6 +219,14 @@ int spdk_mlx5_qp_create(struct ibv_pd *pd, struct spdk_mlx5_cq *cq,
 */
int spdk_mlx5_qp_set_error_state(struct spdk_mlx5_qp *qp);

/**
 * Get original verbs qp
 *
 * \param qp mlx5 qp
 * \return Pointer to the underlying ibv_verbs qp
 */
struct ibv_qp *spdk_mlx5_qp_get_verbs_qp(struct spdk_mlx5_qp *qp);

/**
 * Destroy qpair
 *
+6 −0
Original line number Diff line number Diff line
@@ -636,3 +636,9 @@ spdk_mlx5_qp_set_error_state(struct spdk_mlx5_qp *qp)

	return ibv_modify_qp(qp->verbs_qp, &attr, IBV_QP_STATE);
}

struct ibv_qp *
spdk_mlx5_qp_get_verbs_qp(struct spdk_mlx5_qp *qp)
{
	return qp->verbs_qp;
}
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@
    spdk_mlx5_cq_destroy;
    spdk_mlx5_qp_create;
    spdk_mlx5_qp_destroy;
    spdk_mlx5_qp_get_verbs_qp;
    spdk_mlx5_qp_set_error_state;
    spdk_mlx5_qp_complete_send;
    spdk_mlx5_cq_poll_completions;
+213 −436

File changed.

Preview size limit exceeded, changes collapsed.