一种利用核间中断定位不合理任务的方法和设备转让专利

申请号 : CN201410083868.2

文献号 : CN103825782B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王厚雪

申请人 : 新华三技术有限公司

摘要 :

本发明公开了一种利用核间中断定位不合理任务的方法和设备,该方法包括:数据核对数据核在控制核的消息队列中写入核间消息的过程进行监控,如果监控到数据核向控制核的消息队列中写入核间消息失败,则所述数据核通过核间中断方式触发所述控制核中断;所述控制核中断当前任务,并定位当前任务为不合理的任务。本发明实施例中,可以及时定位出不合理任务。

权利要求 :

1.一种利用核间中断定位不合理任务的方法,其特征在于,该方法包括:数据核对所述数据核在控制核的消息队列中写入核间消息的过程进行监控,如果监控到所述数据核向所述控制核的消息队列中写入核间消息失败,则所述数据核通过核间中断方式触发所述控制核中断;

所述控制核中断当前任务,并定位所述当前任务为不合理的任务。

2.如权利要求1所述的方法,其特征在于,所述数据核对所述数据核在控制核的消息队列中写入核间消息的过程进行监控,具体包括:所述数据核确定核间消息的监控粒度,并按照所述监控粒度对所述数据核在所述控制核的消息队列中写入核间消息的过程进行监控。

3.如权利要求2所述的方法,其特征在于,所述数据核确定核间消息的监控粒度的过程,具体包括:所述数据核确定所述控制核的消息队列的长度n以及所述数据核在所述控制核的消息队列中写入核间消息的频率f,并确定所述核间消息的监控粒度具体为:所述控制核的消息队列的长度n除以所述数据核在所述控制核的消息队列中写入核间消息的频率f。

4.如权利要求1所述的方法,其特征在于,

所述数据核通过核间中断方式触发所述控制核中断的过程,具体包括:所述数据核向中断控制器写入特定中断向量以及所述控制核,由所述中断控制器触发所述控制核中断;

所述控制核中断当前任务的过程,具体包括:所述控制核从中断控制器中获得所述特定中断向量,并利用所述特定中断向量在向量表中对应的中断处理程序中断当前任务;其中,所述中断处理程序用于中断当前任务,且所述向量表中预先配置有特定中断向量与中断处理程序之间的对应关系。

5.如权利要求1所述的方法,其特征在于,

所述数据核向所述控制核的消息队列中写入的核间消息具体为:用于定位控制核的不合理任务的不携带具体内容的空核间消息,或者,携带有数据的核间消息;其中,所述数据为协议数据、或业务数据流的首个数据。

6.一种多核网络设备,所述网络设备包括数据核和控制核,其特征在于,所述网络设备包括监控模块、处理模块、中断模块,所述监控模块和处理模块位于所述数据核内,所述中断模块位于所述控制核内;其中:所述监控模块,用于对所述数据核在所述控制核的消息队列中写入核间消息的过程进行监控;

所述处理模块,用于在监控到所述数据核向所述控制核的消息队列中写入核间消息失败时,通过核间中断方式触发所述控制核中断;

所述中断模块,用于中断当前任务,并定位当前任务为不合理的任务。

7.如权利要求6所述的多核网络设备,其特征在于,

所述监控模块,具体用于确定核间消息的监控粒度,并按照所述监控粒度对所述数据核在所述控制核的消息队列中写入核间消息的过程进行监控。

8.如权利要求7所述的多核网络设备,其特征在于,

所述监控模块,进一步用于确定所述控制核的消息队列的长度n以及所述数据核在所述控制核的消息队列中写入核间消息的频率f,并确定所述核间消息的监控粒度具体为:所述控制核的消息队列的长度n除以所述数据核在所述控制核的消息队列中写入核间消息的频率f。

9.如权利要求6所述的多核网络设备,其特征在于,

所述处理模块,具体用于向中断控制器中写入特定中断向量以及所述控制核,由所述中断控制器触发所述控制核中断;

所述中断模块,具体用于从中断控制器中获得所述特定中断向量,并利用所述特定中断向量在向量表中对应的中断处理程序中断当前任务;其中,所述中断处理程序用于中断当前任务,且所述向量表中预先配置有特定中断向量与中断处理程序之间的对应关系。

10.如权利要求6所述的多核网络设备,其特征在于,

所述数据核向所述控制核的消息队列中写入的核间消息具体为:用于定位控制核的不合理任务的不携带具体内容的空核间消息,或者,携带有数据的核间消息;其中,所述数据为协议数据、或业务数据流的首个数据。

说明书 :

一种利用核间中断定位不合理任务的方法和设备

技术领域

[0001] 本发明涉及通信技术领域,尤其是涉及一种在将转发和控制相分离的多核网络设备上,利用核间中断定位不合理任务的方法和设备。

背景技术

[0002] 在多核网络设备上,通常将转发和控制相分离,分别称为数据平面和控制平面。在此情况下,多核网络设备至少包括数据核和控制核,该数据核可以为一个或者多个,该控制核可以为一个。其中,数据核负责数据平面的相关任务,如数据核根据控制核下发的表项对数据进行转发,即数据核只有1个任务,其负责数据转发。控制核负责控制平面的相关任务,如控制核负责处理协议、流程管理、系统管理、表项建立和管理、消息队列处理等工作,即控制核有多个任务,每个任务负责上述一项工作;基于此,控制核可以采用任务调度的方式对多个任务进行处理;进一步的,为了对多个任务进行处理,控制核上可以维护任务队列,并将需要控制核处理的任务存储在任务队列中,由控制核依次处理任务队列中的任务。例如:控制核包括有用于处理消息队列的任务,该用于处理消息队列的任务一直驻留在控制核的任务队列中,并且会被控制核轮转调度,该用于处理消息队列的任务被调度时,如果发现消息队列中有消息,则对消息进行处理,否则退出任务等待下次被调度。
[0003] 针对数据转发流程,数据核在收到数据后,对数据进行解析。如果转发表项中有相关记录,数据核根据转发表项的内容对数据进行转发。如果转发表项中没有相关记录,数据核向控制核的消息队列中写入携带有该数据的核间消息。控制核依次调度任务队列中的任务时,如果任务队列中的各任务未出现不合理,则控制核能够正常及时调度任务,并及时处理消息队列,即从消息队列中读取核间消息,并对核间消息中携带的数据进行处理。但是,如果任务队列中有任务不合理(假设某任务长时间占用控制核的CPU(Central Processing Unit,中央处理器)资源),则控制核无法及时调度需要读取消息队列的任务,从而导致消息队列中的核间消息得不到处理,在消息队列被写满时,数据核无法继续向控制核的消息队列中核间消息,从而造成数据丢失。
[0004] 进一步的,数据核向控制核的消息队列中写入的核间消息中携带的数据都是比较重要的数据,如协议数据等,因此数据的丢失对系统会造成很大影响,比如协议震荡、转发不通等。
[0005] 综上所述,在控制核依次处理任务队列中的任务的过程中,如果有任务出现不合理,则控制核无法知道出现不合理的任务,继而不能够对任务进行修复,也就无法及时处理需要读取消息队列的任务,从而导致数据核无法及时向控制核的消息队列中写入携带有数据的核间消息,并造成数据丢失。

发明内容

[0006] 本发明实施例提供一种利用核间中断定位不合理任务的方法和设备,从而及时的定位出不合理的任务。
[0007] 为达到上述目的,本发明实施例提供一种利用核间中断定位不合理任务的方法,该方法包括:
[0008] 数据核对所述数据核在控制核的消息队列中写入核间消息的过程进行监控,如果监控到所述数据核向所述控制核的消息队列中写入核间消息失败,则所述数据核通过核间中断方式触发所述控制核中断;
[0009] 所述控制核中断当前任务,并定位所述当前任务为不合理的任务。
[0010] 所述数据核对所述数据核在控制核的消息队列中写入核间消息的过程进行监控,具体包括:数据核确定核间消息的监控粒度,按照所述监控粒度对所述数据核在所述控制核的消息队列中写入核间消息的过程进行监控。
[0011] 所述数据核确定核间消息的监控粒度的过程,具体包括:所述数据核确定所述控制核的消息队列的长度n以及所述数据核在所述控制核的消息队列中写入核间消息的频率f,并确定所述核间消息的监控粒度具体为:所述控制核的消息队列的长度n除以所述数据核在所述控制核的消息队列中写入核间消息的频率f。
[0012] 所述数据核通过核间中断方式触发所述控制核中断的过程,具体包括:所述数据核向中断控制器写入特定中断向量以及所述控制核,由所述中断控制器触发所述控制核中断;
[0013] 所述控制核中断当前任务的过程,具体包括:所述控制核从中断控制器中获得所述特定中断向量,并利用所述特定中断向量在向量表中对应的中断处理程序中断当前任务;其中,所述中断处理程序用于中断当前任务,且所述向量表中预先配置有特定中断向量与中断处理程序之间的对应关系。
[0014] 所述数据核向所述控制核的消息队列中写入的核间消息具体为:用于定位控制核的不合理任务的不携带具体内容的空核间消息,或者,携带有数据的核间消息;其中,所述数据为协议数据、或业务数据流的首个数据。
[0015] 本发明实施例提供一种网络设备,所述网络设备包括数据核和控制核,所述网络设备包括监控模块、处理模块、中断模块,所述监控模块和处理模块位于所述数据核内,所述中断模块位于所述控制核内;其中:
[0016] 所述监控模块,用于对所述数据核在所述控制核的消息队列中写入核间消息的过程进行监控;
[0017] 所述处理模块,用于在监控到所述数据核向所述控制核的消息队列中写入核间消息失败时,通过核间中断方式触发所述控制核中断;
[0018] 所述中断模块,用于中断当前任务,并定位当前任务为不合理的任务。
[0019] 所述监控模块,具体用于确定核间消息的监控粒度,并按照所述监控粒度对所述数据核在所述控制核的消息队列中写入核间消息的过程进行监控。
[0020] 所述监控模块,进一步用于确定所述控制核的消息队列的长度n以及所述数据核在所述控制核的消息队列中写入核间消息的频率f,并确定所述核间消息的监控粒度具体为:所述控制核的消息队列的长度n除以所述数据核在所述控制核的消息队列中写入核间消息的频率f。
[0021] 所述处理模块,具体用于向中断控制器中写入特定中断向量以及所述控制核,由所述中断控制器触发所述控制核中断;
[0022] 所述中断模块,具体用于从中断控制器中获得所述特定中断向量,并利用所述特定中断向量在向量表中对应的中断处理程序中断当前任务;其中,所述中断处理程序用于中断当前任务,且所述向量表中预先配置有特定中断向量与中断处理程序之间的对应关系。
[0023] 所述数据核向所述控制核的消息队列中写入的核间消息具体为:用于定位控制核的不合理任务的不携带具体内容的空核间消息,或者,携带有数据的核间消息;其中,所述数据为协议数据、或业务数据流的首个数据。
[0024] 与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,通过对数据核在控制核的消息队列中写入核间消息的过程进行监控,以在数据核向控制核的消息队列中写入核间消息失败时,通过核间中断方式触发控制核中断,由控制核定位当前任务为不合理的任务,从而定位出发生不合理的任务。进一步的,在定位出发生不合理的任务之后,还可以对不合理的任务进行修复,从而优化系统处理效率,并使得数据核能够向控制核的消息队列中写入携带有数据的核间消息,避免造成数据丢失。

附图说明

[0025] 图1是本发明一实施例提供的一种利用核间中断定位不合理任务的方法流程示意图;
[0026] 图2是本发明另一实施例提供的一种网络设备的结构示意图。

具体实施方式

[0027] 针对现有技术中存在的问题,本发明实施例提供一种利用核间中断定位不合理任务(不合理任务可以如:一个任务进行了无谓的等待,浪费了CPU资源)的方法,该方法应用于包括数据核和控制核的网络设备中。在网络设备上,将转发和控制相分离,分别称为数据平面和控制平面。其中,数据核可以为一个或者多个,并负责数据平面的相关任务,如:数据核根据控制核下发的表项对数据进行转发。控制核可以为一个,并负责控制平面的相关任务,如:控制核负责处理协议、流程管理、系统管理、表项建立和管理、消息队列处理等工作;此外,控制核上可以维护任务队列,并将需要由控制核进行处理的任务存储在任务队列中,由控制核依次处理任务队列中的任务。
[0028] 如图1所示,本发明实施例利用核间中断定位不合理任务的方法可以包括以下步骤:
[0029] 步骤101,数据核对数据核在控制核的消息队列中写入核间消息的过程进行监控。数据核向控制核的消息队列中写入的核间消息具体为:用于定位控制核的不合理任务的不携带具体内容的空核间消息,或者,携带有数据的核间消息;其中,该数据可以为协议数据、或业务数据流的首个数据。本实施例以数据核向控制核的消息队列中写入的核间消息为携带有数据的核间消息为例进行后续说明。
[0030] 具体的,针对数据转发流程,数据核在收到数据(如:协议数据或者业务数据流)后,对数据进行解析。如果转发表项中有相关记录(此时数据为业务数据流,且不是业务数据流的首个数据),则数据核根据该转发表项的内容对数据进行转发,该转发过程在此不再赘述。如果转发表项中没有相关记录(此时数据为协议数据或者业务数据流的首个数据),则数据核向控制核的消息队列中写入携带有该数据的核间消息。基于此,本发明实施例中,数据核对数据核在控制核的消息队列中写入核间消息的过程进行监控。
[0031] 本发明实施例中,数据核对数据核在控制核的消息队列中写入核间消息的过程进行监控,具体包括:数据核确定核间消息的监控粒度,并按照该监控粒度对数据核在控制核的消息队列中写入核间消息的过程进行监控。例如,在监控粒度为5s时,则数据核每隔5s便对数据核在控制核的消息队列中写入核间消息的过程进行监控。进一步的,数据核确定核间消息的监控粒度的过程,具体包括:数据核确定控制核的消息队列的长度n以及数据核在控制核的消息队列中写入核间消息的频率f,并确定核间消息的监控粒度具体为:控制核的消息队列的长度n除以数据核在控制核的消息队列中写入核间消息的频率f。进一步的,通过调节控制核的消息队列的长度n和/或数据核在控制核的消息队列中写入核间消息的频率f,即可以调整核间消息的监控粒度。
[0032] 步骤102,在监控过程中,如果监控到数据核向控制核的消息队列中写入核间消息失败,则数据核通过核间中断方式触发控制核中断。
[0033] 具体的,在控制核依次调度任务队列中的任务时,如果任务队列中的各任务未出现不合理,则控制核能够正常及时调度任务,并及时处理消息队列,即从消息队列中读取核间消息,并对核间消息中携带的数据进行处理;在此情况下,数据核不会监控到数据核向控制核的消息队列中写入核间消息失败。如果任务队列中有任务出现不合理,则控制核无法及时调度需要读取消息队列的任务,从而导致消息队列中的核间消息得不到处理,在消息队列被写满时,数据核无法继续向控制核的消息队列中写入核间消息;在此情况下,数据核将监控到数据核向控制核的消息队列中写入核间消息失败,即到达核间消息的监控粒度(长度n/频率f)时,数据核将监控到数据核向控制核的消息队列中写入核间消息失败,从而触发控制核中断。
[0034] 步骤103,控制核中断当前任务,并定位当前任务为不合理的任务。
[0035] 基于上述处理,在任务队列中有任务出现不合理时,控制核能够及时中断当前任务,并定位当前任务为不合理的任务,并能够确定出当前任务对应的处理函数发生问题。进一步的,控制核在定位出发生不合理的任务之后,通过及时对不合理任务进行修复,从而优化系统处理效率,使得数据核能够向控制核的消息队列中写入核间消息,避免造成数据丢失。
[0036] 本发明实施例中,在控制核的向量表中可以预先配置特定中断向量(其为新注册的中断向量,如INT_IPI)与中断处理程序之间的对应关系,该中断处理程序用于中断当前任务,且中断处理程序为实现该特定中断向量的处理函数。
[0037] 在此基础上,数据核通过核间中断方式触发控制核中断的过程,具体包括:数据核向中断控制器写入特定中断向量(如INT_IPI)以及控制核(如控制核的标识),由中断控制器触发控制核中断。控制核中断当前任务的过程,具体包括:控制核从中断控制器中获得特定中断向量,并利用特定中断向量在向量表中对应的中断处理程序中断当前任务。
[0038] 基于与上述方法同样的发明构思,本发明另一实施例提供了一种网络设备,所述网络设备包括数据核和控制核,如图2所示,所述网络设备包括监控模块11、处理模块12、中断模块13,所述监控模块11和处理模块12位于所述数据核内,所述中断模块13位于所述控制核内;其中:所述监控模块11,用于对所述数据核在所述控制核的消息队列中写入核间消息的过程进行监控;所述处理模块12,用于在监控到所述数据核向所述控制核的消息队列中写入核间消息失败时,通过核间中断方式触发所述控制核中断;所述中断模块13,用于中断当前任务,定位当前任务为不合理的任务。
[0039] 所述监控模块11,具体用于确定核间消息的监控粒度,并按照所述监控粒度对所述数据核在所述控制核的消息队列中写入核间消息的过程进行监控。所述监控模块11,进一步用于确定所述控制核的消息队列的长度n以及所述数据核在所述控制核的消息队列中写入核间消息的频率f,并确定所述核间消息的监控粒度具体为:所述控制核的消息队列的长度n除以所述数据核在所述控制核的消息队列中写入核间消息的频率f。
[0040] 所述处理模块12,具体用于向中断控制器中写入特定中断向量以及所述控制核,由所述中断控制器触发所述控制核中断;
[0041] 所述中断模块13,具体用于从中断控制器中获得所述特定中断向量,并利用所述特定中断向量在向量表中对应的中断处理程序中断当前任务;其中,所述中断处理程序用于中断当前任务,且所述向量表中预先配置有特定中断向量与中断处理程序之间的对应关系。
[0042] 所述数据核向所述控制核的消息队列中写入的核间消息具体为:用于定位控制核的不合理任务的不携带具体内容的空核间消息,或者,携带有数据的核间消息;其中,所述数据为协议数据、或业务数据流的首个数据。
[0043] 其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0044] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0045] 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0046] 本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0047] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0048] 以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。