RDMA学习笔记-编程
非原创,基于网上资料的学习和整理
Verbs API
设备管理接口
ibv_get_device_list /*用户获取可用的RDMA设备列表,会返回一组可用设备的指针*/
ibv_open_device /*打开一个可用的RDMA设备,返回其上下文指针(这个指针会在以后用来对这个设备进行各种操作)*/
ibv_query_device /*查询一个设备的属性/能力,比如其支持的最大QP,CQ数量等。返回设备的属性结构体指针,以及错误码。*/
ibv_free_device_list /* 释放ibv_get_device_list获取的RDMA设备列表*/
ibv_close_device
资源管理(PD/MR/QP/CQ…)
ibv_alloc_pd /* 申请PD。该函数会返回一个PD的指针。(PD(内存)保护域:https://blog.csdn.net/bandaoyu/article/details/112859981) */
ibv_create_cq /*创建CQ。用户传入CQ的最小深度(驱动实际申请的可能比这个值大),然后该函数返回CQ的指针。*/
ibv_create_qp /*创建QP。用户传入PD和一组属性(包括RQ和SQ绑定到的CQ、QP绑定的SRQ、QP的能力、QP类型等),向用户返回QP的指针。*/
ibv_reg_mr /* 用户应先申请好一篇buffer获取对应VA, 再调用该接口注册MR。用户传入要注册的内存的起始地址和长度,以及这个MR将要从属的PD和它的访问权限(本地读/写,远端读/写等),返回一个M

本文档是RDMA Verbs API的学习笔记,涵盖了设备管理、资源管理、中断处理、连接管理和数据面的使用。通过示例和参考资料,介绍了如何使用libibverbs和librdmacm库进行RDMA编程,包括RDMA_cm建链和WR的下发及WC的获取。
最低0.47元/天 解锁文章
1252

被折叠的 条评论
为什么被折叠?



