mlx5dv_devx_alloc_msi_vector(3) mlx5 Programmer’s Manual mlx5dv_devx_alloc_msi_vector(3)

mlx5dv_devx_alloc_msi_vector - Allocate an msi vector to be used for creating an EQ.

mlx5dv_devx_free_msi_vector - Release an msi vector.

#include <infiniband/mlx5dv.h>
struct mlx5dv_devx_msi_vector *
mlx5dv_devx_alloc_msi_vector(struct ibv_context *ibctx);
int mlx5dv_devx_free_msi_vector(struct mlx5dv_devx_msi_vector *msi);

Allocate or free an msi vector to be used for creating an EQ.

The allocate API exposes a mlx5dv_devx_msi_vector object, which includes an msi vector and a fd. The vector can be used as the “eqc.intr” field when creating an EQ, while the fd (created as non-blocking) can be polled to see once there is some data on that EQ.

RDMA device context to create the action on.
The msi vector object to work on.

struct mlx5dv_devx_msi_vector {

int vector;
int fd; };
The vector to be used when creating the EQ over the device specification.
The FD that will be used for polling.

Upon success mlx5dv_devx_alloc_msi_vector will return a new struct mlx5dv_devx_msi_vector; On error NULL will be returned and errno will be set.

Upon success mlx5dv_devx_free_msi_vector will return 0, on error errno will be returned.

Mark Zhang <>

2022-01-12 mlx5