基于多核的数据处理方法及装置制造方法及图纸

技术编号:32470703 阅读:8 留言:0更新日期:2022-03-02 09:30
本申请公开了一种基于多核的数据处理方法及装置,涉及计算机领域,该方法可以避免在多核场景下,提交WQE的处理核和处理该WQE对应的CQE的处理核不一致的问题。该方法应用于包括至少两个处理核的处理器,该至少两个处理核与至少一个完成队列CQ对应,该至少一个CQ包括第一CQ。该方法包括:访问第一CQ,该第一CQ中包括至少一个完成队列条目CQE,该至少一个CQE中包括第一CQE,该第一CQE包括用于指示至少两个处理核中的一个处理核的指示信息;基于该指示信息处理第一CQE。信息处理第一CQE。信息处理第一CQE。

【技术实现步骤摘要】
基于多核的数据处理方法及装置


[0001]本申请涉及计算机领域,尤其涉及一种基于多核的数据处理方法及装置。

技术介绍

[0002]远程直接内存访问(remote direct memory access,RDMA)是传输层网络协议,使用队列对(queue pair,QP)进行消费者(consumer)数据的网络发送和接收。如图1所示,QP包含1个发送队列(send queue,SQ)和1个接收队列(receive queue,RQ)。其中SQ负责请求端的RDMA操作,RQ负责响应端的RDMA消息处理。QP与完成队列(completion queue,CQ)队列关联。
[0003]在RDMA操作的请求端,处理器根据consumer进程提交的工作请求(work request,WR),在其对应的SQ中提交工作队列元素(work queue element,WQE)后,网卡将WQE指示的RDMA操作,以及该RDMA操作对应的数据封装成报文并通过端口发送到网络。当网卡执行完成1个WQE指示的RDMA操作后,则在该SQ关联的CQ中写入1个完成队列条目(completion queue entry,CQE),以使处理器处理到该CQE时,通知consumer其提交的某个WR已完成RDMA操作处理。
[0004]在现有技术中,若处理器包括多个处理核(例如包括处理核0和处理核1),且该多个处理核对应一个QP。这样的话,当处理核0轮询与该QP关联的CQ中的CQE时,可能会将处理核1所提交的WQE对应的CQE轮询到并处理。即出现了提交WQE的处理核和处理该WQE对应的CQE的处理核不一致的问题。这样的话,为了处理该CQE对应的业务,处理核0和处理核1需要进行上下文同步。这样,会导致计算机系统的开销增大,从而降低了计算机系统的处理性能。

技术实现思路

[0005]本申请提供了一种基于多核的数据处理方法及装置,可以避免了在多核场景下,提交WQE的处理核和处理该WQE对应的CQE的处理核不一致的问题,从而减少了系统开销,并提高了系统的处理性能。
[0006]为达上述目的,本申请提供如下技术方案:
[0007]第一方面,本申请提供一种数据处理方法,该方法应用于包括至少两个处理核的处理器,该至少两个处理核与至少一个完成队列CQ对应,该至少一个CQ包括第一CQ。方法包括:访问第一CQ,该第一CQ中包括至少一个完成队列条目CQE,该至少一个CQE中包括第一CQE,该第一CQE包括指示信息,该指示信息用于指示至少两个处理核中的一个处理核。基于该指示信息处理第一CQE。
[0008]通过本申请提供的基于多核的数据处理方法,处理器中的处理核可以根据CQE中指示某个处理核的指示信息,处理该CQE。这样,能够使得当CQE用于指示RNIC请求端已执行完成一个RDMA操作时,提交该CQE对应的WQE的处理核,和处理该CQE的处理核是同一个处理核。这样,处理核在处理该CQE的业务时,无需与其他处理核同步上下文,从而可以节省计算
机系统的开销,并提高计算机系统的性能。进一步的,由于本申请所提供的基于多核的数据处理方法的应用场景,为计算机设备中的多个处理核共享一个QP的场景,这样的话,本申请所提供的基于多核的数据处理方法在节省计算机系统的开销,提高计算机系统的性能的同时,还不影响该计算机设备的组网规模。
[0009]在一种可能的设计方式中,第一CQE是第一CQ的头部CQE。
[0010]在一种可能的设计方式中,上述“基于该指示信息处理第一CQE”包括:如果该指示信息是至少两个处理核中任一个处理核的身份标识ID,则通过任一个处理核处理第一CQE。
[0011]在另一种可能的设计方式中,上述处理器和远程直接内存访问网络接口卡RNIC连接通信。如果上述的第一CQE用于指示该RNIC作为请求端已执行完成一个远程直接内存访问RDMA操作,则上述的指示信息是至少两个处理核中任一个处理核的ID。其中,该任一个处理核是提交与第一CQE对应的工作队列元素WQE的处理核,该WQE用于指示待RNIC执行的RDMA操作。
[0012]在另一种可能的设计方式中,上述RDMA操作包括发送操作、带立即数的发送操作、带远端内存失效指示的发送操作、读操作、写操作、带立即数的写操作或原子ATOMIC操作中的任一个。
[0013]通过该几种可能的设计,可以保证当CQE用于指示RNIC请求端已执行完成一个RDMA操作时,提交该CQE对应的WQE的处理核,和处理该CQE的处理核是同一个处理核。这样,处理核在处理该CQE的业务时,无需与其他处理核同步上下文,从而可以节省计算机系统的开销,并提高计算机系统的性能。
[0014]在另一种可能的设计方式中,上述RNIC包括至少一个队列对QP,该至少一个QP中的第一QP与上述第一CQ关联,该第一QP包括第一发送队列SQ。在上述“访问第一CQ”之前,上述方法还包括:在第一SQ中提交第一WQE,该第一WQE包括上述的任一个处理核的ID,该第一WQE用于RNIC生成第一CQE;该第一CQE中的指示信息是该任一个处理核的ID。
[0015]通过该可能的设计,RNIC可以基于处理器提交的WQE中携带的处理核的ID,生成包括指示信息的CQE,这样的话,能够使得当CQE用于指示RNIC请求端已执行完成一个RDMA操作时,提交该CQE对应的WQE的处理核,和处理该CQE的处理核是同一个处理核。这样,处理核在处理该CQE的业务时,无需与其他处理核同步上下文,从而可以节省计算机系统的开销,并提高计算机系统的性能。
[0016]在另一种可能的设计方式中,上述“基于该指示信息处理第一CQE”包括:如果该指示信息是预设信息,则通过上述至少两个处理核中的任一个处理核处理第一CQE。
[0017]在另一种可能的设计方式中,如果第一CQE用于指示RNIC作为响应端已接收完成一个RDMA消息,则上述指示信息是预设信息。其中,该RDMA消息包括send消息、带立即数的send消息、带远端内存失效指示的send消息、或带立即数的write消息中的任一个。
[0018]第二方面,本申请提供一种基于多核的数据处理方法,该方法应用于网络接口卡NIC,该NIC与包括至少两个处理核的处理器连接通信,该至少两个处理核与至少一个完成队列CQ对应。该方法包括:生成第一完成队列条目CQE。在至少一个CQ中的第一CQ写入该第一CQE。其中,第一CQE包括用于指示至少两个处理核中的一个处理核的指示信息,第一CQE用于当上述至少两个处理核中任一个处理核在访问到第一CQE时,基于该指示信息处理第一CQE。
[0019]通过本申请提供的基于多核的数据处理方法,NIC通过将生成的包括有指示某个处理核的指示信息的CQE写入CQ,这样的话,处理器中的处理核即可根据该CQE中的指示信息,处理该CQE。这样,能够使得当CQE用于指示RNIC请求端已执行完成一个RDMA操作时,提交该CQE对应的WQE的处理核,和处理该CQE的处理核本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多核的数据处理方法,其特征在于,应用于处理器,所述处理器包括至少两个处理核,所述至少两个处理核与至少一个完成队列CQ对应,所述至少一个CQ包括第一CQ;所述方法包括:访问所述第一CQ,所述第一CQ中包括至少一个完成队列条目CQE;所述至少一个CQE中包括第一CQE,所述第一CQE包括指示信息,所述指示信息用于指示所述至少两个处理核中的一个处理核;基于所述指示信息处理所述第一CQE。2.根据权利要求1所述的方法,其特征在于,所述第一CQE是所述第一CQ的头部CQE。3.根据权利要求1或2所述的方法,其特征在于,所述基于所述指示信息处理所述第一CQE,包括:如果所述指示信息是所述至少两个处理核中任一个处理核的身份标识ID,则通过所述任一个处理核处理所述第一CQE。4.根据权利要求1-3中任一项所述的方法,其特征在于,所述处理器和远程直接内存访问网络接口卡RNIC连接通信;如果所述第一CQE用于指示所述RNIC作为请求端已执行完成一个远程直接内存访问RDMA操作,则所述指示信息是所述至少两个处理核中任一个处理核的ID;其中,所述任一个处理核是提交与所述第一CQE对应的工作队列元素WQE的处理核,所述WQE用于指示待所述RNIC执行的RDMA操作。5.根据权利要求4所述的方法,其特征在于,所述RDMA操作包括发送操作、带立即数的发送操作、带远端内存失效指示的发送操作、读操作、写操作、带立即数的写操作或原子ATOMIC操作中的任一个。6.根据权利要求4或5所述的方法,其特征在于,所述RNIC包括至少一个队列对QP,所述至少一个QP中的第一QP与所述第一CQ关联;所述第一QP包括第一发送队列SQ;在所述访问所述第一CQ之前,所述方法还包括:在所述第一SQ中提交第一WQE,所述第一WQE包括所述任一个处理核的ID,所述第一WQE用于所述RNIC生成所述第一CQE;所述第一CQE中的指示信息是所述任一个处理核的ID。7.根据权利要求1或2所述的方法,其特征在于,所述基于所述指示信息处理所述第一CQE,包括:如果所述指示信息是预设信息,则通过所述至少两个处理核中的任一个处理核处理所述第一CQE。8.根据权利要求7所述的方法,其特征在于,如果所述第一CQE用于指示所述RNIC作为响应端已接收完成一个RDMA消息,则所述指示信息是所述预设信息;其中,所述RDMA消息包括send消息、带立即数的send消息、带远端内存失效指示的send消息、或带立即数的write消息中的任一个。9.一种基于多核的数据处理方法,其特征在于,应用于网络接口卡NIC;所述NIC与处理器连接通信,所述处理器包括至少两个处理核,所述至少两个处理核与至少一个完成队列CQ对应;所述方法包括:生成第一完成队列条目CQE;在所述至少一个CQ中的第一CQ写入所述第一CQE;
其中,所述第一CQE包括指示信息,所述指示信息用于指示所述至少两个处理核中的一个处理核;所述第一CQE用于当所述至少两个处理核中任一个处理核在访问到所述第一CQE时,基于所述指示信息处理所述第一CQE。10.根据权利要求9所述的方法,其特征在于,所述NIC是远程直接内存访问网络接口卡RNIC。11.根据权利要求10所述的方法,其特征在于,如果所述第一CQE用于指示所述RNIC作为请求端已执行完成一个远程直接内存访问RDMA操作,则所述指示信息是所述至少两个处理核中任一个处理核的ID;其中,所述任一个处理核是提交与所述第一CQE对应的工作队列元素WQE的处理核,所述WQE用于指示待所述RNIC执行的RDMA操作。12.根据权利要求11所述的方法,其特征在于,所述RDMA操作包括发送操作、带立即数的发送操作、带远端内存失效指示的发送操作、读操作、写操作、带立即数的写操作或原子ATOMIC操作中的任一个。13.根据权利要求11或12所述的方法,其特征在于,所述NIC包括至少一个队列对QP,所述至少一个QP中的第一QP与所述第一CQ关联;所述第一QP包括第一发送队列SQ;所述生成第一完成队列条目CQE,包括:基于所述第一SQ中的第一WQE,生成所述第一CQE;其中,所述第一WQE是所述至少两个处理核中的第一处理核在所述第一SQ中提交的WQE,所述第一WQE包括所述第一处理核的ID;所述第一CQE中的指示信息是所述第一处理核的ID。14.根据权利要求10所述的方法,其特征在于,如果所述第一CQE用于指示所述RNIC作为响应端已接收完成一个RDMA消息,则所述指示信息是预设信息;其中,所述RDMA消息包括send消息、带立即数的send消息、带远端内存失效指示的send消息、或带立即数的write消息中的任一个。15.一种基于多核的数据处理装置,其特征在于,应用于处理器,所述处理器包括至少两个处理核,所述至少两个处理核与至少一个完成队列CQ对应,所述至少一个CQ包括第一CQ;所述装置包括:访问单元,用于访问所述第一CQ,所述第一CQ中包括至少一个完成队列条目CQE;所述至少一个CQE中包括第一CQE,所述第...

【专利技术属性】
技术研发人员:韩兆皎颜业峰张刚
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1