From: Edward Srouji <edwards@xxxxxxxxxx> Add the ability to retrieve a device's EQ number which relates to a given input vector. The query is done over DevX. Reviewed-by: Ido Kalir <idok@xxxxxxxxxx> Signed-off-by: Edward Srouji <edwards@xxxxxxxxxx> --- pyverbs/providers/mlx5/libmlx5.pxd | 1 + pyverbs/providers/mlx5/mlx5dv.pyx | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/pyverbs/providers/mlx5/libmlx5.pxd b/pyverbs/providers/mlx5/libmlx5.pxd index 66b8705..ba2c6ec 100644 --- a/pyverbs/providers/mlx5/libmlx5.pxd +++ b/pyverbs/providers/mlx5/libmlx5.pxd @@ -318,6 +318,7 @@ cdef extern from 'infiniband/mlx5dv.h': mlx5dv_devx_umem *mlx5dv_devx_umem_reg_ex(v.ibv_context *ctx, mlx5dv_devx_umem_in *umem_in) int mlx5dv_devx_umem_dereg(mlx5dv_devx_umem *umem) + int mlx5dv_devx_query_eqn(v.ibv_context *context, uint32_t vector, uint32_t *eqn) # Mkey setters void mlx5dv_wr_mkey_configure(mlx5dv_qp_ex *mqp, mlx5dv_mkey *mkey, diff --git a/pyverbs/providers/mlx5/mlx5dv.pyx b/pyverbs/providers/mlx5/mlx5dv.pyx index d16aed1..2c47cb6 100644 --- a/pyverbs/providers/mlx5/mlx5dv.pyx +++ b/pyverbs/providers/mlx5/mlx5dv.pyx @@ -262,6 +262,18 @@ cdef class Mlx5Context(Context): free(clock_info) return ns_time + def devx_query_eqn(self, vector): + """ + Query EQN for a given vector id. + :param vector: Completion vector number + :return: The device EQ number which relates to the given input vector + """ + cdef uint32_t eqn + rc = dv.mlx5dv_devx_query_eqn(self.context, vector, &eqn) + if rc: + raise PyverbsRDMAError('Failed to query EQN', rc) + return eqn + cdef add_ref(self, obj): try: Context.add_ref(self, obj) -- 1.8.3.1