一种任务处理方法以及网络设备技术

技术编号:30363316 阅读:35 留言:0更新日期:2021-10-16 17:24
本申请提供了一种任务处理方法,用于提升网络设备的任务处理性能。本申请提供的任务处理方法包括:获取待处理的P个报文,确定该P个报文对应的线程,并将该P个报文加载到对应的线程中。分别通过每个报文对应的线程,对每个报文进行N个阶段的任务处理,得到每个报文的第N阶段的任务处理结果。本申请还提供了相关的网卡。的网卡。的网卡。

【技术实现步骤摘要】
一种任务处理方法以及网络设备


[0001]本申请涉及通信领域,尤其涉及一种任务处理方法以及网络设备。

技术介绍

[0002]以太网络中的一项业务可以包括多种任务,举例来说,传输控制协议卸载(英文:TCP offload engine,缩写:TOE)业务就包括接收任务以及发送任务。现有的以太网络的任务处理一般由服务器实现,服务器通过交换机接入以太网络(英文:ethernet)中,请参阅图1。其中服务器上插入有网卡,用于处理服务器与交换机之间的数据交换。网络设备在收发数据包的过程中会触发网络I/O中断,因此服务器在工作时要响应大量的I/O中断信号。例如,若网络任务以64Kbps的速率发送传输控制协议(英文:transmission control protocol,缩写:TCP)数据,则单单将数据封装成以太网数据包以及响应网络接受确认信号,每秒钟就会在服务器和网卡间触发60多个I/O中断。大量的中断处理会占用服务器相当可观的计算资源,拉低网络的整体性能。
[0003]为了解决上述问题,现阶段将协议栈的相关处理从服务器侧卸载到网卡上实现,以求解放服务器的计算资源,减少服务器和网卡之间的数据交互,进而提升网络的性能。例如现阶段的某些网卡已经能够支持融合以太网远程直接数据访问(英文:RDMA over converged ethernet,缩写:RoCE)功能、基于以太网的光纤通道(英文:fibre channel over ethernet,缩写:FCoE)功能等。
[0004]但是,现阶段的网卡执行任务处理的性能较低,不能满足以太网络中大量任务的处理需求。

技术实现思路

[0005]本申请提供了任务处理方法以及网卡,用于提升网卡的任务处理性能。
[0006]本申请第一方面提供了一种任务处理方法,适用于网卡进行任务处理。其中,任务处理按照执行顺序分为N个阶段,依次为第一阶段、第二阶段、
……
第N阶段。网卡包括处理器和网卡内存。处理器中运行多个线程,该多个线程在逻辑上构成了处理器的资源池。网卡获取待处理的P个报文,并从处理器的资源池中,确定该P个报文中每个报文对应的线程。网卡通过每个报文对应的线程,对每个报文依次执行N个阶段的任务处理,得到每个报文的第N阶段的任务处理结果。本申请中仅使用一个线程对报文执行完整的任务处理,故不需要在多个线程之间拷贝阶段性的任务处理结果,且整个任务程序只提供一个完整的函数功能集即可。这样就减少了任务处理消耗的资源和时延,降低了任务处理开销,减小了程序的体量,节约了存储空间。因此,本申请提供的任务处理流程与现有技术相比,具有较好的性能。
[0007]可选的,网卡内存中包括任务处理的上下文信息,该上下文信息包括与该N个阶段一一对应的N个信息块,依次为第一信息块、第二信息块、
……
第N信息块。其中第i信息块包括执行第i阶段的任务处理所需要使用的上下文信息,1≤i≤N。该P个报文中的第Q报文对应第Q线程,其中Q为不大于P的任意正整数。例如第一报文对应第一线程,第二报文对应第
二线程。在第Q线程对第Q报文执行第j阶段的任务处理时,网卡为第Q线程加载第j信息块,并通过该第Q线程,根据第j信息块以及第Q报文的第j

1阶段的处理结果,对第Q报文执行第j阶段的任务处理,得到第Q报文的第j阶段的处理结果,其中j依次遍历[1,N]中的整数。其中,第Q报文的第0阶段的处理结果即为第Q报文。
[0008]可选的,该P个报文中包括第一报文和第二报文,第一报文对应第一线程,第二报文对应第二线程。网卡在通过第一线程执行完对第一报文的第j阶段的任务处理后,再为第二线程加载第j信息块,并通过第二线程执行对第二报文的第j阶段的任务处理。这样能够将多个线程按照阶段错开调度,避免不同的线程在访问上下文信息时出现读写冲突。
[0009]可选的,在第Q线程执行第Q报文的第j阶段的任务处理时,网卡可以锁定第j信息块,使得第j信息块不能被其它线程访问,以避免其它线程与第Q线程同时访问第j信息块造成读写冲突。在第Q线程执行完第Q报文的第j阶段的任务处理后,网卡解锁第j信息块,使得第j信息块可以被其它线程访问。
[0010]可选的,若网卡解锁了为第Q线程锁定的第j信息块后,j<N,则网卡继续为第Q线程锁定第j+1信息块。
[0011]可选的,网卡在通过第Q线程执行完对第Q报文的第j阶段的任务处理后,可以将第Q线程挂起以节约功耗。当网卡为第Q线程加载了第j+1信息块后,网卡再唤醒第Q线程对第Q报文执行第j+1阶段的任务处理。
[0012]可选的,网卡在获取了该P个报文后,还可以对该P个报文进行加速,得到加速后的P个报文。网卡在确定了该P个报文对应的线程后,将加速后的P个报文分别发送给各自对应的线程。
[0013]可选的,网卡内存中还可以包括全局配置表,该全局配置表中记录了该N个信息块的地址信息。网卡可以根据该全局配置表的记录来获取第j信息块。
[0014]可选的,若任务发生演进,任务处理由原本的N个阶段更新为M个新阶段,则上下文信息页对应的由N个信息块重新划分为M个新信息块。在这种场景下,网卡可以接收修改指令,该修改指令用于将该全局配置表中记录的N个信息块的地址信息修改为M个新信息块的地址信息,该M个信息块中,第k新信息块包括执行第k新阶段的任务处理所需要使用的上下文信息,1≤k≤M。
[0015]可选的,任务处理的任务程序作为一个可执行文件保存在网卡内存中,该可执行文件包括有对应任务处理的N个阶段的N个程序段,分别为第一程序段、第二程序段、
……
第N程序段。其中第i程序段包括用于执行第i阶段的任务处理的程序指令。网卡为第Q线程加载第j程序段,并调整第Q线程的指针指向第j程序段。然后网卡通过第Q线程,根据第j信息块以及第Q报文的第j

1阶段的处理结果,执行第j程序段,即实现了执行第j阶段的任务处理。
[0016]本申请第二方面提供了一种网卡,用于对网络中的报文进行任务处理。其中,网卡包括处理器和网卡内存。任务处理按照执行顺序分为N个阶段,依次为第一阶段、第二阶段、
……
第N阶段。处理器中运行多个线程,该多个线程在逻辑上构成了处理器的资源池。处理器通过运行内部的线程来执行网卡内存中保存的程序,以实现本申请第一方面提供的任务处理方法。
[0017]本申请第三方面提供了一种任务处理方法,适用于网卡进行任务处理。其中,任务
check,缩写:CRC)、IP校验和(英文:checksum)、数据包解析(英文:packet parse)、数据包编辑(英文:packet edit)、查表等操作中的一项或多项。
[0025]可选的,网卡内存中还可以包括全局配置表,该全局配置表中记录了该N个信息块的地址信息。调度器可以根据该全局配置表的记录,来为第Q线程加载第j信息块。
[0026]可选的,若任务发生演进,任务处理由原本的N个阶段更新本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务处理方法,其特征在于,所述方法包括:获取第一报文,确定用于处理所述第一报文的第一线程,所述第一线程用于处理所述第一报文中的多个第一子任务;获取第二报文,确定用于处理所述第二报文的第二线程,所述第二线程用于处理所述第二报文中的多个第二子任务;所述多个第一子任务与所述多个第二子任务是有状态的子任务;以流水线pipeline机制通过所述第一线程和所述第二线程,依次执行所述第一子任务和所述第二子任务,得到所述第一报文的任务处理结果和所述第二报文的任务处理结果。2.根据权利要求1所述的任务处理方法,其特征在于,所述方法还包括:所述第一子任务与所述第二子任务错开调度。3.根据权利要求1所述的任务处理方法,其特征在于,所述网络设备中包括上下文信息,所述上下文信息包括N个信息块;所述方法还包括:待所述第一线程执行完对所述第一报文的第j子任务的任务处理后,再为所述第二线程加载所述第j信息块;其中,第j信息块包括执行第j子任务的任务处理所需要使用的上下文信息,N为正整数,j为正整数,且1≤j≤N。4.根据权利要求3所述的任务处理方法,其特征在于,所述方法还包括:在对所述第一报文执行第j子任务的任务处理时,为所述第一线程加载第j信息块,通过所述第一线程,根据所述第j信息块以及所述第一报文的第j

1子任务的处理结果,对所述第一报文执行第j子任务的任务处理,得到所述第一报文的第j子任务的处理结果。...

【专利技术属性】
技术研发人员:吉辛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1