据我所知,IBV_CREATE_QP()和RDMA_CREATE_QP实际上做的是一样的事情。如果我首先调用了ibv_create_qp(),当我使用ibrdmacm API建立连接时,我还需要调用另一个吗?
此外,diff b/w创建QP和EP?
发布于 2020-12-17 05:27:06
ibv_create_qp()和rdma_create_qp()几乎是一回事。ibv_create_qp()返回指向创建的队列对的指针,rdma_create_qp()将创建的队列对分配给id->qp。
有Infiniband动词、IBV和RDMA动词。RDMA动词与许多Infiniband动词具有等价物。使用Infiniband谓词,您需要维护一堆单独的指针,队列对指针、指向完成队列的指针、指向保护域的指针等等。使用RDMA谓词,这些都是在id结构下收集的。查看/usr/include/rdma/rdma_cma.h,struct rdma_cm_id {}。
您仍然可以在RDMA verbs环境中使用ibv_create_qp(),但是如果您希望使用RDMA verbs或RDMA Connection Manager执行任何进一步的操作,则需要确保使用返回的队列对填充RDMA id->qp。
rdma_create_ep,RDMA Create End Point,将几个RDMA调用压缩成一个调用。其中包括rdma_create_id()、rdma_create_qp()、rdma_resolve_addr()和rdma_resolve_route()。
https://stackoverflow.com/questions/64364023
复制相似问题