rdma-cq的创建与销毁

ibv_create_cq

struct ibv_cq *ibv_create_cq(struct ibv_context *context, int cqe, void *cq_context, struct ibv_comp_channel *channel, int comp_vector)

参数:

1:struct ibv_context *context -->来源于 ibv_open_device
2:cqe()
后3个参数是可选的,含义见描述。

返回值

成功返回一个相应的结构体,失败返回NULL。

描述

ibv_create_cq创建完成队列(CQ)。一个完成队列保存着一个完成队列条目(CQE)。每个队列对(QP)都有一个相关联的发送和接收CQ。一个CQ可以是共享用于发送和接收,以及跨多个qp共享。参数cqe定义了队列的最小大小。队列的实际大小可能大于指定的值。
参数cq_context是一个用户定义的值。如果在CQ创建期间指定,则该值将
在使用完成通道(CC)时,作为ibv_get_cq_event的参数返回。

channel参数用于指定CC。CQ只是一个没有构建的队列
通知机制。当使用轮询范式进行CQ处理时,CC是不必要的。用户只需定期轮询CQ。但是,如果您希望使用挂起范式,则需要CC。CC是一种机制,它允许通知用户CQ上有一个新的CQE。

参数comp_vector用于指定用于信号完成的完成向量事件。它必须是>=0并且< context->num_comp_vectors。

ibv_destroy_cq

int ibv_destroy_cq(struct ibv_cq *cq)

ibv_destroy_cq释放完成队列(CQ)。如果任何队列对(QP)仍然与指定的CQ相关联,则此命令将失败。

ibv_resize_cq

int ibv_resize_cq(struct ibv_cq *cq, int cqe)

ibv_resize_cq调整完成队列(CQ)的大小。参数cqe必须至少是队列中未完成条目的数量。队列的实际大小可能大于指定的值。CQ在调整大小时可能包含(也可能不包含)完整的内容,因此可以在与CQ一起工作时调整大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值