RDMA/bnxt_re: Add resize_cq support

Add resize_cq verb support for user space CQs. Resize operation for
kernel CQs are not supported now.

Driver should free the current CQ only after user library polls
for all the completions and switch to new CQ. So after the resize_cq
is returned from the driver, user library polls for existing completions
and store it as temporary data. Once library reaps all completions in the
current CQ, it invokes the ibv_cmd_poll_cq to inform the driver about
the resize_cq completion. Adding a check for user CQs in driver's
poll_cq and complete the resize operation for user CQs.
Updating uverbs_cmd_mask with poll_cq to support this.

Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Link: https://lore.kernel.org/r/1678868215-23626-1-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
Selvin Xavier
2023-03-15 01:16:55 -07:00
committed by Leon Romanovsky
parent d649c638dc
commit d54bd5abf4
6 changed files with 167 additions and 0 deletions

View File

@@ -96,6 +96,10 @@ struct bnxt_re_cq_resp {
__u32 rsvd;
};
struct bnxt_re_resize_cq_req {
__aligned_u64 cq_va;
};
struct bnxt_re_qp_req {
__aligned_u64 qpsva;
__aligned_u64 qprva;