CN117956054B - 在rdma中实现定时器处理的方法、系统、芯片及存储介质 - Google Patents
在rdma中实现定时器处理的方法、系统、芯片及存储介质 Download PDFInfo
- Publication number
- CN117956054B CN117956054B CN202410355510.4A CN202410355510A CN117956054B CN 117956054 B CN117956054 B CN 117956054B CN 202410355510 A CN202410355510 A CN 202410355510A CN 117956054 B CN117956054 B CN 117956054B
- Authority
- CN
- China
- Prior art keywords
- node
- time
- overtime
- rdma
- timeout
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013461 design Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 13
- 238000007726 management method Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种在RDMA中实现定时器处理的方法,其包括步骤:接收主机所生成的RDMA报文并生成超时时间节点,在其超时时间未超出预先设定的阈值时,为其确定共享时间轮组中对应的时间轮以及对应的超时时间刻度;判断共享时间轮组对应的存储单元中是否存在空闲节点;如存在,申请一个空闲节点以存储超时时间节点的节点内容,并链入至所确定的链表中,由RDMA引擎进行超时判断;在超时时间超出预先设定的阈值,或存储单元中不存在空闲节点时,将超时时间节点以事件队列的方式告知主机。本申请还提供了相应的系统、芯片及存储介质。实施本申请,可以减少片上资源,简化了芯片设计,同时能扩大RDMA引擎支持的超时值范围。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及一种在RDMA中实现定时器处理的方法、系统、芯片及存储介质。
背景技术
在远程直接数据存取(Remote Direct Memory Acess,RDMA)技术的应用中,各功能(Function)中每个队列对(Queue Pair,QP)均会挂载时间节点(time node),用于计时唤醒RDMA装置进行相应的收发处理。在一些例子中,RDMA引擎可以为每个QP提供涉及两类定时器的时间节点,分别是响应类型(Acknowledge,Ack)定时器和接收侧未准备好类型(Receiver not ready,Rnr)定时器。
一般地,通过时间轮来实现上述时间节点的定时功能,以响应类型(Ack)定时器为例,在一个应用场景中,RDMA引擎提供多个时间轮(如4个),每个时间轮能够表示的时长分别为2ms/32ms/512ms/8s,每个时间轮包含16个刻度,每个时间轮的刻度表示的时长分别为128us/2ms/32ms/512ms。由于RDMA引擎支持的QP数很多,通常为M(兆)级别,因此RDMA引擎最大需要提供1M个ACK类型的时间节点,RDMA引擎采用链表的方式管理时间节点,RDMA引擎为每个时间轮刻度提供一个链表,当某个时间轮刻度超时到时,RDMA引擎会读取该刻度对应链表里面所有的时间节点供RDMA引擎用于超时判断。在极端情况下,会产生1M个时间节点并链入同一个时间轮的同一个刻度对应的链表内。由于考虑功耗性能面积(Powerperformance area,PPA)的原因,片上通常不会提供很大的资源来存储这1M个链表节点,因此片上存储不下的链表节点会溢出到主机(Host)的DDR存储器里面,即RDMA引擎提供片上和片外同一条链表来管理一个时间轮刻度的所有时间节点。
现有技术中有两种方法,第一种是共用四个时间轮,其存在的缺点是当RDMA引擎需要支持虚拟化时,由于一个时间轮刻度对应链表的节点可能属于不同的功能(Function),因此在片外没办法只提供同一条链表来存储不同Function的时间节点,当芯片内部的空闲空间不够时,需要将定时节点链接到Host的链表中,这很容易引起Function干扰的问题。另一种方法为为每个Function都提供一套时间轮,这样每个Function的每个时间轮刻度都有独立的链表来管理各自的时间节点,即不会出现不同Function的时间节点链入一条链表的情况。
如图1所示,示出了现有技术中提供的支持多个Function时间节点虚化管理的原理示意图;从中可以看出,一套时间轮组(共4个时间轮)需要管理64条链表,其占用PPA较大,当RDMA引擎支持虚拟化时,RDMA引擎为每个Function都提供一套时间轮,由于虚拟化时支持的Function数量很大,通常是K级别;RDMA引擎共实现了n*4个时间轮,实现和管理片内n*4*64个链表,同时还需要管理链表在片外的部分,因此RDMA引擎为定时器付出的资源很大,会影响PPA;
另外由于时间轮采用的链表分片内和片外两部分,让整体设计变得复杂。再次,RDMA引擎实现的时间轮只能提供最大8s的超时,当RDMA引擎超时时长超过8s时,比如支持长距离的RDMA引擎需要支持更大的超时时间,那RDMA引擎需要增加时间轮来达到目的,这在增加PPA(powerperformancearea)同时,也使整体架构缺乏灵活性。
发明内容
本申请所要解决的技术问题在于,提供一种在RDMA中实现定时器处理的方法、系统、芯片及存储介质。可以减少片上资源,简化了芯片设计,同时能扩大RDMA引擎所支持的超时值范围,提高灵活性。
为解决上述技术问题,作为本申请的一方面,提供一种在RDMA中实现定时器处理的方法,应用于RDMA引擎中,其至少包括如下步骤:
接收主机所生成的RDMA报文,为该报文生成一对应的超时时间节点,在其超时时间未超出预先设定的阈值时,为所述超时时间节点确定共享时间轮组中对应的时间轮以及超时时间在所述时间轮中对应的超时时间刻度;
判断共享时间轮组对应的存储单元中是否存在空闲节点;
在所述存储单元中存在空闲节点时,申请一个空闲节点以存储所述超时时间节点的节点内容,并链入至所确定的超时时间刻度对应的链表中,由RDMA引擎进行超时判断;
在所述超时时间超出预先设定的阈值,或所述存储单元中不存在空闲节点时,将超时时间节点以事件队列的方式告知主机,由主机管理所述超时时间。
其中,进一步包括:在RDMA引擎中配置一个共享时间轮组,所述时间轮组包括预定第一数目个不同类别的时间轮,每个时间轮对应预定第二数目个刻度值,每个刻度值关联有一链表。
其中,在所述存储单元中存在空闲节点时,申请一个空闲节点存储所述超时时间节点的节点内容,并链入至所确定的超时时间刻度对应的链表中,进一步包括:
在存储单元中存在空闲节点时,进行空闲节点申请,获得一空闲的存储地址;
将所述RDMA报文的Function ID 和QPN写入至所述空闲的存储地址对应的存储空间中;
在所确定的超时时间刻度对应的链表中建立与所述空闲的存储地址之间的关联。
其中,由RDMA引擎进行超时判断,进一步包括:
当时间轮刻度到期时,遍历对应的链表,取出所述链表的所有超时时间节点;
将所取出的超时时间节点发送给RDMA引擎进行超时判断,并执行相应超时时间节点中的任务。
其中,在存储单元中不存在空闲节点时,将所述超时时间节点以事件队列的方式告知主机,由主机管理所述超时,进一步包括:
在所述超时时间超出预先设定的阈值,或存储单元中不存在空闲节点时,将所述超时时间节点对应的RDMA的Function ID和QPN信息通过该Function对应的事件队列通知主机。
相应地,本申请的另一方面,还提供一种在RDMA中实现定时器处理的系统,其至少包括:
RDMA报文接收处理,用于接收主机所生成的RDMA报文,为该报文生成一对应的超时时间节点,在其超时时间未超出预先设定的阈值时,为所述超时时间节点确定共享时间轮组中对应的时间轮以及超时时间在所述时间轮中对应的超时时间刻度
条件判断单元,用于判断共享时间轮组对应的存储单元中是否存在空闲节点;
第一处理单元,用于在所述存储单元中存在空闲节点时,申请一个空闲节点以存储所述超时时间节点的节点内容,并链入至所确定的超时时间刻度对应的链表中,由RDMA引擎进行超时判断;
第二处理单元,用于在所述超时时间超出预先设定的阈值,或所述存储单元中不存在空闲节点时,将超时时间节点以事件队列的方式告知主机,由主机管理所述超时时间。
其中,进一步包括:
配置单元,用于在RDMA引擎中配置一个共享时间轮组,所述时间轮组包括预定第一数目个不同类别的时间轮,每个时间轮对应预定第二数目个刻度值,每个刻度值关联有一链表。
其中,第一处理单元进一步包括:
空闲节点申请单元,用于在存储单元中存在空闲节点时,进行空闲节点申请,获得一空闲的存储地址;
写入单元,用于将所述RDMA报文的Function ID 和QPN写入至所述空闲的存储地址对应的存储空间中;
链接单元,用于在所确定的超时时间刻度对应的链表中建立与所述空闲的存储地址之间的关联;
遍历处理单元,用于当时间轮刻度到期时,遍历对应的链表,取出所述链表的所有超时时间节点;
第一超时处理单元,用于将所取出的超时时间节点发送给RDMA引擎进行超时判断,并执行相应超时时间节点中的任务。
其中,第二处理单元进一步包括:
通知单元,用于在所述超时时间超出预先设定的阈值,或存储单元中不存在空闲节点时,将所述超时时间节点对应的RDMA的Function ID和QPN信息通过该Function对应的事件队列通知主机。
相应地,本申请的又一方面,还提供一种芯片,其部署有如前述的系统。
相应地,本申请的再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如前述的方法的步骤。
实施本申请实施例,具有如下有益效果:
本申请提供了一种在RDMA中实现定时器处理的方法、系统、芯片及存储介质。通过软硬结合的方式实现RDMA引擎虚拟化定时器,片上只保留典型在线流的时间节点,大部分场景下由于时间节点需求不大并不需要驱动干涉,当发生片上时间节点不够时或者定时器超时值很大时,通过事件队列通知主机,由主机驱动利用系统提供的定时器来实现定时功能。
本技术方案可以让RDMA引擎在支持虚拟化时,无需要增加额外的资源来实现定时器,节省了芯片的PPA,同时简化了芯片设计,另外由于将超时时间比较大的定时器,直接送往主机驱动由系统定时器来实现,可以让RDMA引擎支持的超时值范围更广,从而提高了架构的灵活性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本申请的范畴。
图1为现有技术中提供的支持多个Function时间节点虚化管理的原理示意图;
图2为本申请提供的一种在RDMA中实现定时器处理的方法的一个实施例的主流程示意图;
图3为申请涉及的应用环境示意图;
图4为本申请提供的方法中时间节点虚化管理的原理示意图;
图5为本申请提供的一种在RDMA中实现定时器处理的系统的一个实施例的结构示意图;
图6为图5中第一处理单元的结构示意图;
图7为图5中第二处理单元的结构示意。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。
如图1所示,示出了本申请提供的一种在RDMA中实现定时器处理的方法的一个实施例的主流程示意图。一并结合图2至图4所示,在本实施例中,所述方法应用于RDMA通信系统中,一般地,如图2所示,在一个RDMA通信系统中,至少包括位于本端的本端主机、本端外部存储空间(DDR)、本端RDMA引擎、本端PCIe设备,以及位于远端的远端PCIe设备、远端RDMA引擎、远端主机、远端外部存储空间(DDR)。其中,本端PCIe设备和远端PCIe设备可以是诸如:网络适配器、存储控制器、加速卡、硬件加密卡等。
具体如图1所示,在本申请实施例中,所述在RDMA中实现定时器处理的方法应用于本端RDMA中,具体地,所述方法进一步包括如下的步骤:
步骤S10,接收主机所生成的RDMA报文,为该报文生成一对应的超时时间节点,判断其超时时间是否超过一设定的超时时间阈值;在其超时时间未超出预先设定的阈值时,为所述超时时间节点确定共享时间轮组中对应的时间轮以及超时时间在所述时间轮中对应的超时时间刻度;
可以理解的是,在本申请的实施例中,需预先包括如下步骤:
在RDMA引擎中配置一个共享时间轮组,所述时间轮组包括预定第一数目个不同类别的时间轮,每个时间轮对应预定第二数目个刻度值,每个刻度值对应有一个链表;如图4所示,在本申请的实施例中,RDMA引擎只实现1个时间轮组,内部提供和典型在线流个数相当的时间节点。具体地,在一个例子中,所述第一数目为4,所述第二类目为16。故在图4的例子中, RDMA引擎共实现了4个时间轮,实现和管理4*64个片上链表,且链表无需设置片外部分,在具体的例子中,采用一个存储单元对所述共享时间轮组的链表进行存储和管理。
在一个例子中,假设超时时间为2s,设定的超时时间阈值为8s,由于2s小于8s,没有超过阈值,那么根据超时时间2s选择对应的时间轮(假设对应的时间轮组中的四个时间轮分别为16s(时间轮0)、16*16s(时间轮1)、256*16s(时间轮2)、256*16*16s(时间轮3)),则选择时间轮0,假设时间轮0当前所在的刻度为刻度5,那么得出超时时间刻度为5+2=7,即时间轮0中的刻度7为超时时间刻度。
步骤S11,对所述超时时间及当前共享时间轮组的空闲空间进行判断,判断共享时间轮组对应的存储单元中是否存在空闲节点;
步骤S12,如果判断结果为在所述存储单元中存在空闲节点,则申请一个空闲节点以存储所述超时时间节点的节点内容,并链入至所确定的超时时间刻度对应的链表中,由RDMA引擎进行超时判断;
在具体的例子中,所述步骤S12进一步包括:
在存储单元中存在空闲节点时,进行空闲节点申请,获得一空闲的存储地址;
将所述RDMA报文的Function ID 和QPN写入至所述空闲的存储地址对应的存储空间中;
在所确定的超时时间刻度对应的链表中建立与所述空闲的存储地址之间的关联;在具体的例子中,可以利用链表或者bitmap来管理空闲节点,每个时间刻度都对应一条链表,通过对每一条链表的首、尾指针来实现对链表的管理;
当时间轮刻度到期时,遍历对应的链表,取出所述链表的所有超时时间节点;
将所取出的超时时间节点发送给RDMA引擎进行超时判断,并执行相应超时时间节点中的任务。
步骤S13,在判断结果为所述超时时间超出预先设定的阈值,或在存储单元中不存在空闲节点时,将所述超时时间节点以事件队列的方式告知主机,由主机管理所述超时。
在具体的例子中,所述步骤S13进一步包括:
在所述超时时间超出预先设定的阈值,或存储单元中不存在空闲节点时,将所述超时时间节点对应的RDMA的Function ID和QPN信息通过该Function对应的事件队列通知主机。
在具体的例子中,主机侧会利用其系统定时器来为每一接收到的时间节点提供定时功能;
当系统定时器到达时,主机通过doorbell告知RDMA引擎,以对相应的时间节点进行超时判断,并执行相应时间节点中的任务。
结合图4所示,以一个具体的例子进行说明。在本实施例中,RDMA引擎只实现1个时间轮组,内部提供和典型在线流个数相当的时间节点,当时间节点资源耗尽时,或者定时器的超时值超过配置时,RDMA引擎通过每个function的事件队列告诉HOST侧驱动,由驱动利用系统提供的定时器来实现定时功能,当系统定时器超时,HOST侧驱动通过doorbell告诉RDMA引擎供RDMA引擎用于超时判断。RDMA引擎共实现了4个时间轮,实现和管理4*64个片上链表,链表无需设置片外部分。
本方案中RDMA引擎使用定时器的过程如下:
步骤1,RDMA引擎发送一个报文出去,需要监控报文在某个时间内是否完成,因此在其定时器管理模块中启动一个定时器,定时器管理模块根据定时器的超时值来确定时间轮和时间轮内的刻度。
步骤2,定时器管理模块从共享时间节点资源内分配时间节点。
步骤3,定时器管理模块将时间节点链入到对应的时间轮刻度链表里面。
步骤4,当时间轮刻度到期时,定时器管理模块会遍历对应的链表将时间节点都取出来并送给RDMA引擎用于超时判断,对于超时的时间节点,则执行时间节点中所携带的任务。
步骤5,当共享时间节点资源不足时,或者定时器超时值超过预定阈值时,将时间节点通过该时间节点对应的Function的事件队列通知给主机侧(如主机驱动)。
步骤6,主机驱动利用系统提供的定时器来为RDMA引擎提供定时功能。
步骤7,当系统定时器超时,主机驱动通过doorbell的方式通知RDMA引擎用于超时判断。
可以理解的是,实施本申请提供的方法,通过软硬结合的方式实现RDMA引擎虚拟化定时器,片上只保留典型在线流的时间节点,大部分场景下由于时间节点需求不大并不需要驱动干涉,当发生片上时间节点不够时或者定时器超时值很大时,通过事件队列通知主机,由主机驱动利用系统提供的定时器来实现定时功能。
本技术方案可以让RDMA引擎在支持虚拟化时,无需要增加额外的资源来实现定时器,节省了芯片的PPA,同时简化了芯片设计,另外由于将超时时间比较大的定时器,直接送往主机驱动由系统定时器来实现,可以让RDMA引擎支持的超时值范围更广。
如图5所示,示出了本申请提供的一种在RDMA中实现定时器处理的系统的一个实施例的结构示意图,其在如图3的应用环境中实现。一并结合图6至图7所示,在本实施例中,所述这系统1至少包括:
RDMA报文接收处理单元10,用于接收主机所生成的RDMA报文,为该报文生成一对应的超时时间节点,在其超时时间未超出预先设定的阈值时,为所述超时时间节点确定共享时间轮组中对应的时间轮以及超时时间在所述时间轮中对应的超时时间刻度;
条件判断单元11,用于判断共享时间轮组对应的存储单元中是否存在空闲节点;
第一处理单元12,用于在所述存储单元中存在空闲节点时,申请一个空闲节点以存储所述超时时间节点的节点内容,并链入至所确定的超时时间刻度对应的链表中,由RDMA引擎进行超时判断;
第二处理单元13,用于在所述超时时间超出预先设定的阈值,或所述存储单元中不存在空闲节点时,将超时时间节点以事件队列的方式告知主机,由主机管理所述超时时间;
配置单元14,用于在RDMA引擎中配置一个共享时间轮组,所述时间轮组包括预定第一数目个不同类别的时间轮,每个时间轮对应预定第二数目个刻度值,每个刻度值关联有一链表;
如图6所示,在具体的例子中,所述第一处理单元12进一步包括:
空闲节点申请单元120,用于在存储单元中存在空闲节点时,进行空闲节点申请,获得一空闲的存储地址;
写入单元121,用于将所述RDMA报文的Function ID 和QPN写入至所述空闲的存储地址对应的存储空间中;
链接单元122,用于在所确定的超时时间刻度对应的链表中建立与所述空闲的存储地址之间的关联;
遍历处理单元123,用于当时间轮刻度到期时,遍历对应的链表,取出所述链表的所有超时时间节点;
第一超时处理单元124,用于将所取出的超时时间节点发送给RDMA引擎进行超时判断,并执行相应超时时间节点中的任务。
如图7所示,在具体的例子中,所述第二处理单元13进一步包括:
通知单元130,用在所述超时时间超出预先设定的阈值,或存储单元中不存在空闲节点时,将所述超时时间节点对应的RDMA的Function ID和QPN信息通过该Function对应的事件队列通知主机。
相应地,本申请的又一方面,还提供一种芯片,其部署有如前述图5至图7所描述的系统。更多细节,请一并参考并结合前述对图5至图7的描述,在此不进行赘述。
相应地,本申请的再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如前述图2至图4所描述的方法的步骤。更多细节,请一并参考并结合前述对图2至图4的描述,在此不进行赘述。
实施本申请实施例,具有如下有益效果:
本申请提供了一种在RDMA中实现定时器处理的方法、系统、芯片及存储介质。通过软硬结合的方式实现RDMA引擎虚拟化定时器,片上只保留典型在线流的时间节点,大部分场景下由于时间节点需求不大并不需要驱动干涉,当发生片上时间节点不够时或者定时器超时值很大时,通过事件队列通知主机,由主机驱动利用系统提供的定时器来实现定时功能。
本技术方案可以让RDMA引擎在支持虚拟化时,无需要增加额外的资源来实现定时器,节省了芯片的PPA,同时简化了芯片设计,另外由于将超时时间比较大的定时器,直接送往主机驱动由系统定时器来实现,可以让RDMA引擎支持的超时值范围更广,从而提高了架构的灵活性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (11)
1.一种在RDMA中实现定时器处理的方法,应用于RDMA引擎中,其特征在于,至少包括如下步骤:
接收主机所生成的RDMA报文,为该报文生成一对应的超时时间节点,在其超时时间未超出预先设定的阈值时,为所述超时时间节点确定共享时间轮组中对应的时间轮以及超时时间在所述时间轮中对应的超时时间刻度;
判断共享时间轮组对应的存储单元中是否存在空闲节点;
在所述存储单元中存在空闲节点时,申请一个空闲节点以存储所述超时时间节点的节点内容,并链入至所确定的超时时间刻度对应的链表中,由RDMA引擎进行超时判断;
在所述超时时间超出预先设定的阈值,或所述存储单元中不存在空闲节点时,将超时时间节点以事件队列的方式告知主机。
2.如权利要求1所述的方法,其特征在于,进一步包括:
在RDMA引擎中配置一个共享时间轮组,所述时间轮组包括预定第一数目个不同类别的时间轮,每个时间轮对应预定第二数目个刻度值,每个刻度值关联有一链表。
3.如权利要求2所述的方法,其特征在于,在所述存储单元中存在空闲节点时,申请一个空闲节点存储所述超时时间节点的节点内容,并链入至所确定的超时时间刻度对应的链表中,进一步包括:
在存储单元中存在空闲节点时,进行空闲节点申请,获得一空闲的存储地址;
将所述RDMA报文的Function ID 和QPN写入至所述空闲的存储地址对应的存储空间中;
在所确定的超时时间刻度对应的链表中建立与所述空闲的存储地址之间的关联。
4.如权利要求3所述的方法,其特征在于,由RDMA引擎进行超时判断,进一步包括:
当时间轮刻度到期时,遍历对应的链表,取出所述链表的所有超时时间节点;
将所取出的超时时间节点发送给RDMA引擎进行超时判断,并执行相应超时时间节点中的任务。
5.如权利要求4所述的方法,其特征在于,在所述超时时间超出预先设定的阈值,或存储单元中不存在空闲节点时,将所述超时时间节点以事件队列的方式告知主机,由主机管理所述超时时间,进一步包括:
在所述超时时间超出预先设定的阈值,或存储单元中不存在空闲节点时,将所述超时时间节点对应的RDMA的Function ID和QPN信息通过该Function对应的事件队列通知主机。
6.一种在RDMA中实现定时器处理的系统,其特征在于,至少包括:
RDMA报文接收处理,用于接收主机所生成的RDMA报文,为该报文生成一对应的超时时间节点,在其超时时间未超出预先设定的阈值时,为所述超时时间节点确定共享时间轮组中对应的时间轮以及超时时间在所述时间轮中对应的超时时间刻度;
条件判断单元,用于判断共享时间轮组对应的存储单元中是否存在空闲节点;
第一处理单元,用于在所述存储单元中存在空闲节点时,申请一个空闲节点以存储所述超时时间节点的节点内容,并链入至所确定的超时时间刻度对应的链表中,由RDMA引擎进行超时判断;
第二处理单元,用于在所述超时时间超出预先设定的阈值,或所述存储单元中不存在空闲节点时,将超时时间节点以事件队列的方式告知主机。
7.如权利要求6所述的系统,其特征在于,进一步包括:
配置单元,用于在RDMA引擎中配置一个共享时间轮组,所述时间轮组包括预定第一数目个不同类别的时间轮,每个时间轮对应预定第二数目个刻度值,每个刻度值关联有一链表。
8.如权利要求7所述的系统,其特征在于,第一处理单元进一步包括:
空闲节点申请单元,用于在存储单元中存在空闲节点时,进行空闲节点申请,获得一空闲的存储地址;
写入单元,用于将所述RDMA报文的Function ID 和QPN写入至所述空闲的存储地址对应的存储空间中;
链接单元,用于在所确定的超时时间刻度对应的链表中建立与所述空闲的存储地址之间的关联;
遍历处理单元,用于当时间轮刻度到期时,遍历对应的链表,取出所述链表的所有超时时间节点;
第一超时处理单元,用于将所取出的超时时间节点发送给RDMA引擎进行超时判断,并执行相应超时时间节点中的任务。
9.如权利要求8所述的系统,其特征在于,第二处理单元进一步包括:
通知单元,用于在所述超时时间超出预先设定的阈值,或存储单元中不存在空闲节点时,将所述超时时间节点对应的RDMA的Function ID和QPN信息通过该Function对应的事件队列通知主机。
10.一种芯片,其特征在于,其部署有如权利要求6至9任一项所述的系统。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410355510.4A CN117956054B (zh) | 2024-03-26 | 2024-03-26 | 在rdma中实现定时器处理的方法、系统、芯片及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410355510.4A CN117956054B (zh) | 2024-03-26 | 2024-03-26 | 在rdma中实现定时器处理的方法、系统、芯片及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117956054A CN117956054A (zh) | 2024-04-30 |
CN117956054B true CN117956054B (zh) | 2024-06-11 |
Family
ID=90794741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410355510.4A Active CN117956054B (zh) | 2024-03-26 | 2024-03-26 | 在rdma中实现定时器处理的方法、系统、芯片及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117956054B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR940017549A (ko) * | 1992-12-29 | 1994-07-26 | 양승택 | 전전자교환기의 신호단말망에 접속된 신호버스정합보드에서의 메시지 송신 방법 |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
WO2017067215A1 (zh) * | 2015-10-21 | 2017-04-27 | 深圳市中兴微电子技术有限公司 | 众核网络处理器及其微引擎的报文调度方法、系统、存储介质 |
CN114328153A (zh) * | 2021-12-23 | 2022-04-12 | 浪潮电子信息产业股份有限公司 | 一种rdma性能测试系统、方法、装置及介质 |
CN114416332A (zh) * | 2021-12-03 | 2022-04-29 | 湖北科技学院 | 一种水资源监测数据接入平台双时间轮连接管理算法 |
CN115865830A (zh) * | 2022-11-22 | 2023-03-28 | 珠海星云智联科技有限公司 | 基于连接管理的减少rdma网络开销的方法、装置 |
CN116225686A (zh) * | 2022-12-14 | 2023-06-06 | 华南师范大学 | 面向混合内存架构的cpu调度方法和系统 |
CN116932273A (zh) * | 2023-09-18 | 2023-10-24 | 深圳云豹智能有限公司 | 一种用于rdma中的功能级复位处理方法、装置及存储介质 |
CN117714324A (zh) * | 2023-12-26 | 2024-03-15 | 海光信息技术股份有限公司 | 一种rdma请求超时的监控方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7653828B2 (en) * | 2004-05-28 | 2010-01-26 | Sap Ag | Timeout manager |
US8190698B2 (en) * | 2006-06-30 | 2012-05-29 | Microsoft Corporation | Efficiently polling to determine completion of a DMA copy operation |
-
2024
- 2024-03-26 CN CN202410355510.4A patent/CN117956054B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR940017549A (ko) * | 1992-12-29 | 1994-07-26 | 양승택 | 전전자교환기의 신호단말망에 접속된 신호버스정합보드에서의 메시지 송신 방법 |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
WO2017067215A1 (zh) * | 2015-10-21 | 2017-04-27 | 深圳市中兴微电子技术有限公司 | 众核网络处理器及其微引擎的报文调度方法、系统、存储介质 |
CN114416332A (zh) * | 2021-12-03 | 2022-04-29 | 湖北科技学院 | 一种水资源监测数据接入平台双时间轮连接管理算法 |
CN114328153A (zh) * | 2021-12-23 | 2022-04-12 | 浪潮电子信息产业股份有限公司 | 一种rdma性能测试系统、方法、装置及介质 |
CN115865830A (zh) * | 2022-11-22 | 2023-03-28 | 珠海星云智联科技有限公司 | 基于连接管理的减少rdma网络开销的方法、装置 |
CN116225686A (zh) * | 2022-12-14 | 2023-06-06 | 华南师范大学 | 面向混合内存架构的cpu调度方法和系统 |
CN116932273A (zh) * | 2023-09-18 | 2023-10-24 | 深圳云豹智能有限公司 | 一种用于rdma中的功能级复位处理方法、装置及存储介质 |
CN117714324A (zh) * | 2023-12-26 | 2024-03-15 | 海光信息技术股份有限公司 | 一种rdma请求超时的监控方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117956054A (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
CN101616083B (zh) | 一种报文转发方法和装置 | |
CN110313163A (zh) | 分布式计算系统中的负载平衡 | |
US20070283355A1 (en) | Computer System, Servers Constituting the Same, and Job Execution Control Method and Program | |
CN110764963B (zh) | 一种服务异常处理方法、装置及设备 | |
US20100186018A1 (en) | Off-loading of processing from a processor bade to storage blades | |
CN108833191B (zh) | 网关设备配置方法及装置 | |
CN109510878B (zh) | 一种长连接会话保持方法和装置 | |
CN109783573A (zh) | 多路推送的数据同步方法及终端 | |
WO2023160568A1 (zh) | 通信方法、装置、系统及存储介质 | |
CN116339954A (zh) | 进程迁移方法、装置、存储介质及电子设备 | |
CN113971138A (zh) | 一种数据访问方法及相关设备 | |
CN117956054B (zh) | 在rdma中实现定时器处理的方法、系统、芯片及存储介质 | |
CN106933646B (zh) | 一种创建虚拟机的方法及装置 | |
US20150281197A1 (en) | System and method for managing logins in a network interface | |
CN105406989B (zh) | 处理报文的方法、网卡及系统、更新信息的方法及主机 | |
CN115378885B (zh) | 超融合架构下的虚拟机业务网络带宽管理方法及装置 | |
CN111277514A (zh) | 一种报文队列分配方法、报文转发方法及相关装置 | |
CN110351319B (zh) | 一种请求消息传输方法、装置及传输设备 | |
CN115509644A (zh) | 算力卸载方法、装置、电子设备和存储介质 | |
CN113938428B (zh) | 跨芯片的数据流转发方法及装置 | |
CN111131066A (zh) | 一种流量整形方法及装置 | |
CN107273082A (zh) | 图像的显示方法、装置、终端及存储介质 | |
CN111240867A (zh) | 一种信息通讯系统及方法 | |
CN109862044A (zh) | 一种转换装置、网络设备及数据传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |