一种任务处理方法以及网卡技术

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

【技术实现步骤摘要】
【国外来华专利技术】一种任务处理方法以及网卡
本申请涉及通信领域,尤其涉及一种任务处理方法以及网卡。
技术介绍
以太网络中的一项业务可以包括多种任务,举例来说,传输控制协议卸载(英文:TCPoffloadengine,缩写:TOE)业务就包括接收任务以及发送任务。现有的以太网络的任务处理一般由服务器实现,服务器通过交换机接入以太网络(英文:ethernet)中,请参阅图1。其中服务器上插入有网卡,用于处理服务器与交换机之间的数据交换。网络设备在收发数据包的过程中会触发网络I/O中断,因此服务器在工作时要响应大量的I/O中断信号。例如,若网络任务以64Kbps的速率发送传输控制协议(英文:transmissioncontrolprotocol,缩写:TCP)数据,则单单将数据封装成以太网数据包以及响应网络接受确认信号,每秒钟就会在服务器和网卡间触发60多个I/O中断。大量的中断处理会占用服务器相当可观的计算资源,拉低网络的整体性能。为了解决上述问题,现阶段将协议栈的相关处理从服务器侧卸载到网卡上实现,以求解放服务器的计算资源,减少服务器和网卡之间的数据交互,进而提升网络的性能。例如现阶段的某些网卡已经能够支持融合以太网远程直接数据访问(英文:RDMAoverconvergedethernet,缩写:RoCE)功能、基于以太网的光纤通道(英文:fibrechanneloverethernet,缩写:FCoE)功能等。但是,现阶段的网卡执行任务处理的性能较低,不能满足以太网络中大量任务的处理需求。
技术实现思路
本申请提供了任务处理方法以及网卡,用于提升网卡的任务处理性能。本申请第一方面提供了一种任务处理方法,适用于网卡进行任务处理。其中,任务处理按照执行顺序分为N个阶段,依次为第一阶段、第二阶段、……第N阶段。网卡包括处理器和网卡内存。处理器中运行多个线程,该多个线程在逻辑上构成了处理器的资源池。网卡获取待处理的P个报文,并从处理器的资源池中,确定该P个报文中每个报文对应的线程。网卡通过每个报文对应的线程,对每个报文依次执行N个阶段的任务处理,得到每个报文的第N阶段的任务处理结果。本申请中仅使用一个线程对报文执行完整的任务处理,故不需要在多个线程之间拷贝阶段性的任务处理结果,且整个任务程序只提供一个完整的函数功能集即可。这样就减少了任务处理消耗的资源和时延,降低了任务处理开销,减小了程序的体量,节约了存储空间。因此,本申请提供的任务处理流程与现有技术相比,具有较好的性能。可选的,网卡内存中包括任务处理的上下文信息,该上下文信息包括与该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报文。可选的,该P个报文中包括第一报文和第二报文,第一报文对应第一线程,第二报文对应第二线程。网卡在通过第一线程执行完对第一报文的第j阶段的任务处理后,再为第二线程加载第j信息块,并通过第二线程执行对第二报文的第j阶段的任务处理。这样能够将多个线程按照阶段错开调度,避免不同的线程在访问上下文信息时出现读写冲突。可选的,在第Q线程执行第Q报文的第j阶段的任务处理时,网卡可以锁定第j信息块,使得第j信息块不能被其它线程访问,以避免其它线程与第Q线程同时访问第j信息块造成读写冲突。在第Q线程执行完第Q报文的第j阶段的任务处理后,网卡解锁第j信息块,使得第j信息块可以被其它线程访问。可选的,若网卡解锁了为第Q线程锁定的第j信息块后,j<N,则网卡继续为第Q线程锁定第j+1信息块。可选的,网卡在通过第Q线程执行完对第Q报文的第j阶段的任务处理后,可以将第Q线程挂起以节约功耗。当网卡为第Q线程加载了第j+1信息块后,网卡再唤醒第Q线程对第Q报文执行第j+1阶段的任务处理。可选的,网卡在获取了该P个报文后,还可以对该P个报文进行加速,得到加速后的P个报文。网卡在确定了该P个报文对应的线程后,将加速后的P个报文分别发送给各自对应的线程。可选的,网卡内存中还可以包括全局配置表,该全局配置表中记录了该N个信息块的地址信息。网卡可以根据该全局配置表的记录来获取第j信息块。可选的,若任务发生演进,任务处理由原本的N个阶段更新为M个新阶段,则上下文信息页对应的由N个信息块重新划分为M个新信息块。在这种场景下,网卡可以接收修改指令,该修改指令用于将该全局配置表中记录的N个信息块的地址信息修改为M个新信息块的地址信息,该M个信息块中,第k新信息块包括执行第k新阶段的任务处理所需要使用的上下文信息,1≤k≤M。可选的,任务处理的任务程序作为一个可执行文件保存在网卡内存中,该可执行文件包括有对应任务处理的N个阶段的N个程序段,分别为第一程序段、第二程序段、……第N程序段。其中第i程序段包括用于执行第i阶段的任务处理的程序指令。网卡为第Q线程加载第j程序段,并调整第Q线程的指针指向第j程序段。然后网卡通过第Q线程,根据第j信息块以及第Q报文的第j-1阶段的处理结果,执行第j程序段,即实现了执行第j阶段的任务处理。本申请第二方面提供了一种网卡,用于对网络中的报文进行任务处理。其中,网卡包括处理器和网卡内存。任务处理按照执行顺序分为N个阶段,依次为第一阶段、第二阶段、……第N阶段。处理器中运行多个线程,该多个线程在逻辑上构成了处理器的资源池。处理器通过运行内部的线程来执行网卡内存中保存的程序,以实现本申请第一方面提供的任务处理方法。本申请第三方面提供了一种任务处理方法,适用于网卡进行任务处理。其中,任务处理按照执行顺序分为N个阶段,依次为第一阶段、第二阶段、……第N阶段。网卡包括处理器、网卡内存、调度器、任务接口和总线。处理器中还运行多个线程,该多个线程在逻辑上构成了处理器的资源池。任务接口接收待处理的P个报文,调度器从处理器的资源池中,确定该P个报文对应的线程,并为该P个报文加载到对应的线程中。处理器通过每个报文对应的线程对每个报文依次执行N个阶段的任务处理,得到每个报文的第N阶段的任务处理结果。本申请中仅使用一个线程对报文执行完整的任务处理,故不需要在多个线程之间拷贝阶段性的任务处理结果,且整个任务程序只提供一个完整的函数功能集即可。这样就减少了任务处理消耗的资源和时延,降低了任务处理开销,减小了程序的体量,节约了存储空间。因此,本申请提供的网卡具有更好的使用性能。可选的,网卡内存中包括任务处理的上下文信息,该上下文信息包括与该N个阶段一一对应的N个信息块,依次为第一信息块、第二信息块、……第N信息块。其中第i信息块包括执行第i阶段的任务处理所需要使用的上下文信息,1≤i≤N。该P个报文中的第Q报文对应第Q线程,其中Q为不大于P的任意正整数。例如第一报文对应第一线程,第二报文本文档来自技高网...
一种任务处理方法以及网卡

【技术保护点】
一种任务处理方法,用于网卡对网络中的报文执行任务处理,其特征在于,所述任务处理按照执行顺序分为N个阶段,所述网卡的处理器运行多个线程,所述N为正整数,所述方法包括:获取待处理的P个报文,所述P为正整数;分别确定所述P个报文中每个报文对应的线程,并将所述P个报文加载到对应的线程,其中,每个报文对应一个线程;通过所述每个报文对应的线程对所述每个报文依次执行所述N个阶段的任务处理,得到所述每个报文的第N阶段的任务处理结果。

【技术特征摘要】
【国外来华专利技术】1.一种任务处理方法,用于网卡对网络中的报文执行任务处理,其特征在于,所述任务处理按照执行顺序分为N个阶段,所述网卡的处理器运行多个线程,所述N为正整数,所述方法包括:获取待处理的P个报文,所述P为正整数;分别确定所述P个报文中每个报文对应的线程,并将所述P个报文加载到对应的线程,其中,每个报文对应一个线程;通过所述每个报文对应的线程对所述每个报文依次执行所述N个阶段的任务处理,得到所述每个报文的第N阶段的任务处理结果。2.根据权利要求1所述的任务处理方法,其特征在于,所述网卡的网卡内存中包括所述任务处理的上下文信息,所述上下文信息包括N个信息块,其中第i信息块包括执行第i阶段的任务处理所需要使用的上下文信息;所述P个报文中的第Q报文对应第Q线程,所述Q为不大于所述P的任意正整数;在对所述第Q报文执行第j阶段的任务处理时,为所述第Q线程加载第j信息块,通过所述第Q线程,根据所述第j信息块以及所述第Q报文的第j-1阶段的处理结果,对所述第Q报文执行第j阶段的任务处理,得到所述第Q报文的第j阶段的处理结果,1≤j≤N,其中,所述第Q报文的第0阶段的处理结果为所述第Q报文。3.根据权利要求1或2所述的任务处理方法,其特征在于,所述P个报文中包括第一报文以及第二报文,所述第一报文对应第一线程,所述第二报文对应第二线程;所述方法还包括:待所述第一线程执行完对所述第一报文的第j阶段的任务处理后,再为所述第二线程加载所述第j信息块。4.根据权利要求2或3所述的任务处理方法,其特征在于,所述方法还包括:在通过所述第Q线程对所述第Q报文执行第j阶段的任务处理时,为所述第Q线程锁定所述第j信息块;在通过所述第Q线程执行完对所述第Q报文的第j阶段的任务处理后,解锁所述第j信息块。5.根据权利要求4所述的任务处理方法,其特征在于,所述方法在所述解锁所述第j信息块后还包括:若当前j<N,则为所述第Q线程锁定第j+1信息块。6.根据权利要求1至5中任一项所述的任务处理方法,其特征在于,所述方法还包括:在通过所述第Q线程执行完对所述第Q报文的第j阶段的任务处理后,将所述第Q线程挂起,并在为所述第Q线程加载了所述第j+1信息块后唤醒所述第Q线程。7.根据权利要求1至6中任一项所述的任务处理方法,其特征在于,所述方法在所述获取待处理的P个报文之后还包括:对所述P个报文进行加速处理,得到加速后的P个报文;所述确定所述P个报文中每个报文对应的线程,并将所述P个报文发送给对应的线程包括:确定所述P个报文中每个报文对应的线程,并将所述加速后的P个报文分别发送给所述P个报文对应的线程。8.根据权利要求2至7中任一项所述的任务处理方法,其特征在于,所述网卡内存中还包括全局配置表,所述全局配置表用于记录所述N个信息块的地址信息;所述为所述第Q线程加载第j信息块包括:根据所述全局配置表中第j信息块的地址信息,为所述第Q线程加载所述第j信息块。9.根据权利要求8所述的任务处理方法,其特征在于,所述方法还包括:若所述任务处理由所述N个阶段更新为M个新阶段,则接收修改指令,所述修改指令用于将所述全局配置表中记录的所述N个信息块的地址信息修改为M个新信息块的地址信息,所述M个新信息块中,第k新信息块包括执行第k新阶段的任务处理所需要使用的上下文信息,1≤k≤M。10.根据权利要1至9中任一项所述的任务处理方法,其特征在于,所述网卡内存中还保存有所述任务处理的可执行文件,所述可执行文件包括N个程序段,其中第i程序段包括用于执行所述第i阶段的任务处理的程序指令;所述方法还包括:在通过所述第Q线程对所述第Q报文执行第j阶段的任务处理之前,为所述第Q线程加载第j程序段,并调整所述第Q线程的指针指向所述第j程序段;所述根据所述第j信息块以及所述第Q报文的第j-1阶段的处理结果,对所述第Q报文执行第j阶段的任务处理包括:根据所述第j信息块以及所述第Q报文的第j-1阶段的处理结果,执行所述第j程序段,以对所述第Q报文进行第j阶段的任务处理。11.一种网卡,用于对网络...

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

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

1