RDMA通信2:一张图了解 RDMA基本元素和组成 通信过程元素关系解析 视频教程

哈哈哈,今天我们把下面这张图理解了,我们的任务就完成了!

视频教程在这:1.2 RDMA基本元素和组成 通信过程元素关系解析_哔哩哔哩_bilibili

一、WQ和WQE

工作队列元素(work queue element,WQE):是软件下发给硬件的任务:软件希望硬件完成的任务,例如:远程读\写,发送\接收等,以及有关该任务的详细信息(数据所在地址、数据长度、秘钥等)。

工作队列(Work Queue, WQ):可容纳多个工作队列元素WQE,WQE是WQ中的一个元素。

二、QP和QPN

QP对(Queue Pair,QP):包含一个发送队列SQ(send queue)和一个接收队列RQ(reveive queue),其实就是两个WQ。发送队列发送请求RDMA操作的出站消息。接收队列接收传入消息或即时数据。

一次发送和接收过程中,发送端软件需将一个发送任务WQE放到SQ中。接收端软件需将一个接收任务WQE放到RQ中,这样硬件才知道接收到的数据保存到内存中的哪个位置。

QP编号(Queue Pair number,QPN):RDMA节点上每个QP对都有一个唯一的编号QPN来标识它。

在RDMA技术中,通信的主体是QP,而不是节点(每个节点可以申请和使用多个QP),本地的一个QP可以连接到一个远端的QP,如下图所示。描述一次RDAM通信“节点A发送数据给节点B”,更精确的描述是“节点A的QP2发送数据给节点B的QP0”。

三、CQ和CQN

完成队列元素(completion queue element,CQE): WQE是软件下发给硬件的任务,CQE是硬件完成任务后返回给软件的完成报告。

完成队列(completion queue,CQ):类似WQ中含有多个WQE,CQ中含有多个CQE(completion queue element,完成队列要素)。

完成队列编号(completion queue number, CQN):DMA节点上每个CQ对都有一个唯一的编号CQN来标识它。

四、WR和WC

工作请求(work request, WR):由用户发布到工作队列的请求。

工作完成(work completion, WC):提示用户工作完成。

工作队列元素WQE和完成队列元素CQE在驱动层,本身对用户并不可见。WR和WC分别是WQE和CQE在用户层的映射。WR/WC和WQE/CQE是相同概念在不同层次的体现,用户直接通过API下发的是WR和WC。

五、总结

哈哈哈,最后再看这张图!

1、用户(应用程序)下发个工作请求WR1

2、WR1在驱动层被映射为工作队列元素WQE1,放入发送队列SQ中,让硬件去完成任务。

3、硬件完成任务,返回完成队列元素CQE1,放入完成队列CQ0。

4、CQE1在用户层被映射为工作完成WC1,通知用户(应用程序)任务完成。

参考资料:

Linux高性能网络详解,从DPDP、RDMA到XDP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值