System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于发包描述符回收的方法、计算机设备及介质技术_技高网

用于发包描述符回收的方法、计算机设备及介质技术

技术编号:41452965 阅读:3 留言:0更新日期:2024-05-28 20:41
本申请涉及计算机技术领域并提供一种用于发包描述符回收的方法、计算机设备及介质。方法包括:通过软件,在写入当前报文的发包描述符到环形缓冲之后,执行环形缓冲中相对于当前报文的上一报文的发包描述符相关联的描述符回收操作;通过硬件,基于来自软件的当前报文对应的门铃通知和上一报文对应的门铃通知之间的时间间隔,判断是否向软件发送所述当前报文对应的中断通知,如果是,向软件发送中断通知并且设定中断状态寄存器的状态值为处理中状态。如此,提升发送流量性能,及时高性能的回收描述符,快速释放报文缓冲区。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种用于发包描述符回收的方法、计算机设备及介质


技术介绍

1、网卡和数据处理单元一般采用环形队列来构建报文发送队列,通过填充描述符到环形队列,描述符包括地址指针用于执行要发送的报文的内存物理地址以及报文长度等信息。在芯片发送报文后,更新描述符中的标识为已发送。因为环形队列的空间有限,需要及时回收已发送的报文的描述符,释放资源。现有技术中,通过中断转轮询的方式,也就是在报文发送完成后,以中断方式通知处理器以轮询方式继续回收。但是,这样不利于提升发送流量性能,难以及时高性能的回收描述符,不利于快速释放报文缓冲区。

2、为此,本申请提供了一种用于发包描述符回收的方法、计算机设备及介质,用于应对现有技术中的技术难题。


技术实现思路

1、第一方面,本申请提供了一种用于发包描述符回收的方法。所述方法包括:通过软件,在写入当前报文的发包描述符到环形缓冲之后,执行所述环形缓冲中相对于所述当前报文的上一报文的发包描述符相关联的描述符回收操作,其中,所述软件还用于:在写入所述上一报文的发包描述符到所述环形缓冲之后,发送所述上一报文对应的门铃通知到硬件,以及,在写入所述当前报文的发包描述符到所述环形缓冲之后,发送所述当前报文对应的门铃通知到所述硬件;通过所述硬件,基于来自所述软件的所述当前报文对应的门铃通知和所述上一报文对应的门铃通知之间的时间间隔,判断是否向所述软件发送所述当前报文对应的中断通知,如果是,向所述软件发送所述中断通知并且设定中断状态寄存器的状态值为处理中状态,其中,所述软件,至少在执行所述上一报文的发包描述符相关联的描述符回收操作之前,基于所述中断状态寄存器的状态值,选择按照不基于所述中断通知的第一回收方式或者基于所述中断通知的第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作。

2、通过本申请的第一方面,有效地克服了因为发包和回收同时进行而导致的资源争夺问题,有效降低了中断次数也就降低了中断通知导致的额外开销,以及避免了已发送报文长时间得不到回收,实现了提升发送流量性能,及时高性能的回收描述符,有利于快速释放报文缓冲区。

3、在本申请的第一方面的一种可能的实现方式中,当所述当前报文对应的门铃通知和所述上一报文对应的门铃通知之间的时间间隔大于时间阈值时,所述硬件判断向所述软件发送所述中断通知,当所述当前报文对应的门铃通知和所述上一报文对应的门铃通知之间的时间间隔小于所述时间阈值时,所述硬件判断不向所述软件发送所述中断通知。

4、在本申请的第一方面的一种可能的实现方式中,所述中断状态寄存器的状态值是所述处理中状态或者未上报状态,其中,所述软件,至少在执行所述上一报文的发包描述符相关联的描述符回收操作之前,基于所述中断状态寄存器的状态值,选择按照不基于所述中断通知的所述第一回收方式或者基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,包括:当所述中断状态寄存器的状态值是所述未上报状态时,所述软件按照不基于所述中断通知的所述第一回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,当所述中断状态寄存器的状态值是所述处理中状态时,所述软件按照基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作。

5、在本申请的第一方面的一种可能的实现方式中,所述软件按照不基于所述中断通知的所述第一回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,包括:所述软件基于所述当前报文的发包描述符在所述环形缓冲中的位置来确定所述上一报文的发包描述符在所述环形缓冲中的位置,然后,判断所述上一报文的发包描述符是否为已使用,如果是,回收所述上一报文的发包描述符。

6、在本申请的第一方面的一种可能的实现方式中,所述软件按照基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,包括:所述软件基于所述中断通知的上下文确定所述当前报文的发包描述符在所述环形缓冲中的位置和所述上一报文的发包描述符在所述环形缓冲中的位置,然后,回收所述当前报文的发包描述符和所述上一报文的发包描述符。

7、在本申请的第一方面的一种可能的实现方式中,所述软件利用第一进程和第一处理器从而按照不基于所述中断通知的所述第一回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,所述软件利用第二进程和第二处理器从而按照基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作。

8、在本申请的第一方面的一种可能的实现方式中,在向所述软件发送所述中断通知并且设定所述中断状态寄存器的状态值为所述处理中状态之后,关闭所述硬件的中断使能。

9、在本申请的第一方面的一种可能的实现方式中,在按照不基于所述中断通知的所述第一回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作之后,启动所述硬件的中断使能。

10、在本申请的第一方面的一种可能的实现方式中,所述软件,在按照基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作之后,设定所述中断状态寄存器的状态值为所述未上报状态以及启动所述硬件的中断使能。

11、在本申请的第一方面的一种可能的实现方式中,所述软件通过读取所述中断状态寄存器的状态值从而避免所述第一回收方式相关联的发包回收和所述第二回收方式相关联的中断回收之间的并发冲突。

12、在本申请的第一方面的一种可能的实现方式中,当所述中断状态寄存器的状态值是所述未上报状态时,所述软件执行所述第一回收方式相关联的发包回收以及同时避免触发所述第二回收方式相关联的中断回收,并且,当所述中断状态寄存器的状态值是所述处理中状态时,所述软件执行所述第二回收方式相关联的中断回收以及同时避免触发所述第一回收方式相关联的发包回收。

13、在本申请的第一方面的一种可能的实现方式中,在执行所述第二回收方式相关联的中断回收之后,设定所述中断状态寄存器的状态值为所述未上报状态。

14、在本申请的第一方面的一种可能的实现方式中,所述硬件在发送所述上一报文之后,修改所述环形缓冲中所述上一报文的发包描述符为已使用,并且,所述硬件在发送所述当前报文之后,修改所述环形缓冲中所述当前报文的发包描述符为已使用。

15、第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。

16、第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。

17、第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可本文档来自技高网...

【技术保护点】

1.一种用于发包描述符回收的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,当所述当前报文对应的门铃通知和所述上一报文对应的门铃通知之间的时间间隔大于时间阈值时,所述硬件判断向所述软件发送所述中断通知,当所述当前报文对应的门铃通知和所述上一报文对应的门铃通知之间的时间间隔小于所述时间阈值时,所述硬件判断不向所述软件发送所述中断通知。

3.根据权利要求1所述的方法,其特征在于,所述中断状态寄存器的状态值是所述处理中状态或者未上报状态,其中,所述软件,至少在执行所述上一报文的发包描述符相关联的描述符回收操作之前,基于所述中断状态寄存器的状态值,选择按照不基于所述中断通知的所述第一回收方式或者基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,包括:

4.根据权利要求3所述的方法,其特征在于,所述软件按照不基于所述中断通知的所述第一回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,包括:所述软件基于所述当前报文的发包描述符在所述环形缓冲中的位置来确定所述上一报文的发包描述符在所述环形缓冲中的位置,然后,判断所述上一报文的发包描述符是否为已使用,如果是,回收所述上一报文的发包描述符。

5.根据权利要求4所述的方法,其特征在于,所述软件按照基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,包括:所述软件基于所述中断通知的上下文确定所述当前报文的发包描述符在所述环形缓冲中的位置和所述上一报文的发包描述符在所述环形缓冲中的位置,然后,回收所述当前报文的发包描述符和所述上一报文的发包描述符。

6.根据权利要求5所述的方法,其特征在于,所述软件利用第一进程和第一处理器从而按照不基于所述中断通知的所述第一回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,所述软件利用第二进程和第二处理器从而按照基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作。

7.根据权利要求5所述的方法,其特征在于,所述硬件,在向所述软件发送所述中断通知并且设定所述中断状态寄存器的状态值为所述处理中状态之后,关闭所述硬件的中断使能。

8.根据权利要求7所述的方法,其特征在于,所述软件,在按照不基于所述中断通知的所述第一回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作之后,启动所述硬件的中断使能。

9.根据权利要求7所述的方法,其特征在于,所述软件,在按照基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作之后,设定所述中断状态寄存器的状态值为所述未上报状态以及启动所述硬件的中断使能。

10.根据权利要求3所述的方法,其特征在于,所述软件通过读取所述中断状态寄存器的状态值从而避免所述第一回收方式相关联的发包回收和所述第二回收方式相关联的中断回收之间的并发冲突。

11.根据权利要求10所述的方法,其特征在于,当所述中断状态寄存器的状态值是所述未上报状态时,所述软件执行所述第一回收方式相关联的发包回收以及同时避免触发所述第二回收方式相关联的中断回收,并且,当所述中断状态寄存器的状态值是所述处理中状态时,所述软件执行所述第二回收方式相关联的中断回收以及同时避免触发所述第一回收方式相关联的发包回收。

12.根据权利要求11所述的方法,其特征在于,所述软件,在执行所述第二回收方式相关联的中断回收之后,设定所述中断状态寄存器的状态值为所述未上报状态。

13.根据权利要求1所述的方法,其特征在于,所述硬件在发送所述上一报文之后,修改所述环形缓冲中所述上一报文的发包描述符为已使用,并且,所述硬件在发送所述当前报文之后,修改所述环形缓冲中所述当前报文的发包描述符为已使用。

14.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至13中任一项所述的方法。

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至13中任一项所述的方法。

...

【技术特征摘要】

1.一种用于发包描述符回收的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,当所述当前报文对应的门铃通知和所述上一报文对应的门铃通知之间的时间间隔大于时间阈值时,所述硬件判断向所述软件发送所述中断通知,当所述当前报文对应的门铃通知和所述上一报文对应的门铃通知之间的时间间隔小于所述时间阈值时,所述硬件判断不向所述软件发送所述中断通知。

3.根据权利要求1所述的方法,其特征在于,所述中断状态寄存器的状态值是所述处理中状态或者未上报状态,其中,所述软件,至少在执行所述上一报文的发包描述符相关联的描述符回收操作之前,基于所述中断状态寄存器的状态值,选择按照不基于所述中断通知的所述第一回收方式或者基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,包括:

4.根据权利要求3所述的方法,其特征在于,所述软件按照不基于所述中断通知的所述第一回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,包括:所述软件基于所述当前报文的发包描述符在所述环形缓冲中的位置来确定所述上一报文的发包描述符在所述环形缓冲中的位置,然后,判断所述上一报文的发包描述符是否为已使用,如果是,回收所述上一报文的发包描述符。

5.根据权利要求4所述的方法,其特征在于,所述软件按照基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,包括:所述软件基于所述中断通知的上下文确定所述当前报文的发包描述符在所述环形缓冲中的位置和所述上一报文的发包描述符在所述环形缓冲中的位置,然后,回收所述当前报文的发包描述符和所述上一报文的发包描述符。

6.根据权利要求5所述的方法,其特征在于,所述软件利用第一进程和第一处理器从而按照不基于所述中断通知的所述第一回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作,所述软件利用第二进程和第二处理器从而按照基于所述中断通知的所述第二回收方式来执行所述上一报文的发包描述符相关联的描述符回收操作。

7.根据权利要求5所述的方法,其特征在于,所述硬件,在向所述软件发送所...

【专利技术属性】
技术研发人员:王旭
申请(专利权)人:珠海星云智联科技有限公司
类型:发明
国别省市:

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

1