RDMA事件管理方法、设备及存储介质技术

技术编号:36461598 阅读:13 留言:0更新日期:2023-01-25 23:01
本申请实施例提供一种RDMA事件管理方法、设备及存储介质。在本申请实施例中,在RDMA应用与RDMA设备之间增设用于事件通知的用户态事件管理实例,基于该用户态事件管理实例,在针对RDMA应用进行事件通知过程中,可使用于向RDMA应用进行完成事件通知的CPU硬件资源在低功耗状态等待完成事件发生,以节约功耗,在完成事件发生的情况下,可使RDMA设备在用户态将该CPU硬件资源“唤醒”,CPU硬件资源被唤醒后可直接通知RDMA应用有完成事件发生,整个过程无需经过内核态,也就不用在内核态和用户态之间进行上下文切换,缩短了事件通知的路径和周期,降低了RDMA应用的网络通信延迟,提高RDMA的应用性能。的应用性能。的应用性能。

【技术实现步骤摘要】
RDMA事件管理方法、设备及存储介质


[0001]本申请涉及基于RDMA的网络通信
,尤其涉及一种RDMA事件管理方法、设备及存储介质。

技术介绍

[0002]远程内存访问(Remote Direct Memory Access,RDMA)协议,凭借其旁路内核的特性,允许应用与网卡之间的直接数据读写,可以将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入,规避了传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)协议的限制,能有效降低通讯的时延以及CPU的占用率,在互联网数据中心(Internet Data Center,简称IDC)中,高性能计算(High Performance Computing,HPC)应用或人工智能(Artificial Intelligence,AI)应用等领域得到广泛应用。
[0003]为了使用RDMA进行数据收发,业内提供了用于RDMA的计算机网络通信标准,例如,无线带宽(InfiniBand,IB)。为了开发RDMA应用,提供了用于RDMA应用的编程接口规范,例如Verbs,其是由RDMA/IB规范所描述的一组抽象定义。一方面可基于该接口规范编程实现RDMA应用,另一方面可基于该接口规范实现用于RDMA应用的传输接口,例如Verbs API。RDMA应用可通过传输接口Verbs API调用RDMA硬件进行数据收发,在数据收发过程中,RDMA应用需要了解RDMA硬件在数据收发过程中是否发生相关完成事件(Completion Event,CE),以便及时进行响应和处理。
[0004]常见的RDMA应用的事件通知方式是将轮询(Polling)方式与事件通知(Event Notification)方式结合:在没有完成事件发生时用于事件通知的进程进入睡眠状态以释放CPU资源,在有完成事件发生时唤醒进程,然后再采用轮询方式,无需不断唤醒进程,降低唤醒开销。然而,目前RDMA硬件实现中,使用硬件中断通知和一个事件队列(Event Queue,EQ)来实现事件通知机制,硬件中断上报给操作系统(Operating System,OS)的内核态,经过内核态的一系列代码处理逻辑后再通知用户态的RDMA应用,这存在内核态和用户态的上下文切换,以及事件通知路径较长,周期较长的问题。

技术实现思路

[0005]本申请的多个方面提供一种RDMA事件管理方法、设备及存储介质,用以缩短RDMA应用的事件通知路径和周期,解决内核态和用户态来回切换的问题,降低RDMA应用的网络通信延迟,提高RDMA的应用性能。
[0006]本申请实施例提供一种RDMA事件管理方法,应用于用户态事件管理实例,用户态事件管理实例位于RDMA应用与RDMA设备之间,该方法包括:响应RDMA应用发起的完成事件等待请求,确定RDMA应用对应的用户态内存区域,用户态内存区域用于供RDMA设备在RDMA应用对应的至少一个CQ队列中有完成事件发生时写入通知信息;控制第一CPU硬件资源以低功耗状态监测用户态内存区域中是否发生通知信息的写入事件,第一CPU硬件资源是分
配给RDMA应用用于向其进行完成事件通知的CPU硬件资源;在用户态内存区域发生写入事件的情况下,将第一CPU硬件资源唤醒,并控制第一CPU硬件资源向RDMA应用上报与通知信息对应的目标CQ标识信息,以通知RDMA应用目标CQ标识信息对应的目标CQ队列中发生了完成事件。
[0007]本申请实施例还提供一种RDMA事件管理方法,应用于RDMA设备,该方法包括:在为RDMA应用进行数据传输过程中,监测RDMA应用对应的至少一个CQ队列中是否有完成事件发生;在监测到目标CQ队列中有完成事件发生时,向RDMA应用对应的用户态内存区域中写入通知信息,以使用户态事件管理实例将第一CPU硬件资源唤醒并控制所述第一CPU硬件资源向RDMA应用上报与通知信息对应的目标CQ标识信息;其中,第一CPU硬件资源是分配给RDMA应用用于向其进行完成事件通知的CPU硬件资源,且在所述用户态管理实例的控制下以低功耗状态监测用户态内存区域中是否发生通知信息的写入事件,直至监测到发生写入事件时被唤醒。
[0008]本申请实施例还提供一种计算机设备,包括:存储器、处理器和RDMA设备,存储器中存储有用户态事件管理实例和RDMA应用对应的程序代码,用户态事件管理实例位于RDMA应用与RDMA设备之间,处理器与存储器耦合,用于执行用户态事件管理实例对应的程序代码,以用于实现本申请实施例提供的RDMA事件管理方法中的步骤。
[0009]本申请实施例还提供一种RDMA设备,包括:监测模块,用于在为RDMA应用进行数据传输过程中,监测RDMA应用对应的至少一个CQ队列中是否有完成事件发生;写入模块,用于在监测模块监测到目标CQ队列中有完成事件发生时,向RDMA应用对应的用户态内存区域中写入通知信息,以使用户态事件管理实例将第一CPU硬件资源唤醒并控制所述第一CPU硬件资源向RDMA应用上报与通知信息对应的目标CQ标识信息;其中,第一CPU硬件资源是分配给RDMA应用用于向其进行完成事件通知的CPU硬件资源,且在所述用户态管理实例的控制下以低功耗状态监测用户态内存区域中是否发生通知信息的写入事件,直至监测到发生写入事件时被唤醒。
[0010]本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器能够实现本申请实施例提供的RDMA事件管理方法中的步骤。
[0011]在本申请实施例中,在RDMA应用与RDMA设备之间增设用于事件通知的用户态事件管理实例,基于该用户态事件管理实例,在针对RDMA应用进行事件通知过程中,可使用于向RDMA应用进行完成事件通知的CPU硬件资源在低功耗状态等待完成事件发生,以节约功耗,在完成事件发生的情况下,可使RDMA设备在用户态将该CPU硬件资源“唤醒”,CPU硬件资源被唤醒后可直接通知RDMA应用有完成事件发生,整个过程无需经过内核态,也就不用在内核态和用户态之间进行上下文切换,减少了内核态的代码处理逻辑,缩短了完成事件从RDMA设备向RDMA应用进行通知的路径和周期,降低了RDMA应用的网络通信延迟,提高RDMA的应用性能。
附图说明
[0012]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0013]图1为目前RDMA硬件实现中使用硬件中断通知和一个事件队列实现事件通知的流程示意图;
[0014]图2a为本申请示例性实施例提供的一种计算机设备的结构示意图;
[0015]图2b为本申请示例性实施例提供的一种事件通知的流程示意图;
[0016]图2c为本申请示例性实施例提供的另一种事件通知的流程示意图;
[0017]图3a为本申请示例性实施例提供的一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种RDMA事件管理方法,其特征在于,应用于用户态事件管理实例,所述用户态事件管理实例位于RDMA应用与RDMA设备之间,所述方法包括:响应RDMA应用发起的完成事件等待请求,确定所述RDMA应用对应的用户态内存区域,所述用户态内存区域用于供所述RDMA设备在所述RDMA应用对应的至少一个CQ队列中有完成事件发生时写入通知信息;控制第一CPU硬件资源以低功耗状态监测所述用户态内存区域中是否发生所述通知信息的写入事件,所述第一CPU硬件资源是分配给所述RDMA应用用于向其进行完成事件通知的CPU硬件资源;在所述用户态内存区域发生所述写入事件的情况下,将所述第一CPU硬件资源唤醒,并控制所述第一CPU硬件资源向所述RDMA应用上报与所述通知信息对应的目标CQ标识信息,以通知所述RDMA应用所述目标CQ标识信息对应的目标CQ队列中发生了完成事件。2.根据权利要求1所述的方法,其特征在于,所述控制第一CPU硬件资源以低功耗状态监测所述用户态内存区域中是否发生所述通知信息的写入事件,包括:控制所述第一CUP硬件资源执行一条或多条用户态控制指令,以控制所述第一CPU硬件资源以低功耗状态监测所述用户态内存区域中是否发生所述通知信息的写入事件;其中,所述一条或多条用户态控制指令中包含所述用户态内存区域的描述信息,以使所述第一CPU资源确定需要监测的所述用户态内存区域。3.根据权利要求2所述的方法,其特征在于,所述控制所述第一CUP硬件资源执行多条用户态控制指令,以控制所述第一CPU硬件资源以低功耗状态监测所述用户态内存区域中是否发生所述通知信息的写入事件,包括:控制所述第一CUP硬件资源执行第一用户态控制指令,所述第一用户态控制指令中包括所述用户态内存区域的描述信息,以供所述第一CPU硬件资源确定需要监测的所述用户态内存区域;控制所述第一CPU硬件资源执行第二用户态控制指令,以控制所述第一CPU硬件资源进入低功耗状态,并在低功耗状态下监测所述用户态内存区域中是否发生所述通知信息的写入事件。4.根据权利要求1所述的方法,其特征在于,所述控制所述第一CPU硬件资源向所述RDMA应用上报与所述通知信息对应的目标CQ标识信息,包括:根据所述通知信息的写入位置,控制所述第一CPU硬件资源从所述用户态内存区域中或所述用户态内存区域关联的队列缓冲区中,读取所述目标CQ标识信息,并向所述RDMA应用上报所述目标CQ标识信息。5.根据权利要求4所述的方法,其特征在于,还包括:响应RDMA应用发起的RDMA资源初始化请求,至少为所述RDMA应用创建至少一个CQ队列和用户态内存区域,以供所述RDMA设备在所述至少一个CQ队列中有完成事件发生时写入通知信息。6.根据权利要求5所述的方法,其特征在于,所述用户态内存区域的数量为至少一个,且所述至少一个用户态内存区域与所述至少一个CQ队列一一对应;相应地,根据所述通知信息的写入位置,控制所述第一CPU硬件资源从所述用户态内存区域中或所述用户态内存区域关联的队列缓冲区中,读取所述目标CQ标识信息,包括:
根据所述通知信息的写入位置,确定所述至少一个用户态内存区域中被写入所述通知信息的目标用户态内存区域;控制所述第一CPU硬件资源从所述目标用户态内存区域中读取所述目标CQ标识信息,所述目标CQ标识信息标识所述目标用户态内存区域对应的目标CQ队列中发生了完成事件。7.根据权利要求5所述的方法,其特征在于,还包括:响应RDMA应用发起的RDMA资源初始化请求,为所述RDMA应用创建队列缓冲区,并将所述用户态内存区域与所述队列缓冲区进行关联;所述队列缓冲区用于供所述RDMA设备在所述至少一个CQ队列中有完成事件发生时写入发生完成事件的CQ队列对应的CQ标识信息;相应地,根据所述通知信息的写入位置,控制所述第一CPU硬件资源从...

【专利技术属性】
技术研发人员:杨航李金虎徐成
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1