CN102073572B - 用于多核处理器的监控方法及系统 - Google Patents

用于多核处理器的监控方法及系统 Download PDF

Info

Publication number
CN102073572B
CN102073572B CN200910246453.1A CN200910246453A CN102073572B CN 102073572 B CN102073572 B CN 102073572B CN 200910246453 A CN200910246453 A CN 200910246453A CN 102073572 B CN102073572 B CN 102073572B
Authority
CN
China
Prior art keywords
vcpu
monitored
monitoring
normal operation
operation mark
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910246453.1A
Other languages
English (en)
Other versions
CN102073572A (zh
Inventor
许荣
刘铁罗
宋连坡
吴永航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN200910246453.1A priority Critical patent/CN102073572B/zh
Publication of CN102073572A publication Critical patent/CN102073572A/zh
Application granted granted Critical
Publication of CN102073572B publication Critical patent/CN102073572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种用于多核处理器的监控方法及系统,其中,该方法包括:监控VCPU定期通知多个被监控VCPU修改运行正常标志;监控VCPU定期轮询多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行。根据本发明,能够简捷、清晰地实现多核处理器的监控,并节约了系统资源。

Description

用于多核处理器的监控方法及系统
技术领域
本发明涉及通讯领域,尤其涉及一种用于多核处理器的监控方法及系统。
背景技术
目前,硬件看门狗是常用的CPU运行异常监控手段,需要软件周期发给看门狗一个信号(称作喂狗),一旦超过规定时间没有提供喂狗信号,看门狗就会复位整个系统;但对于多核处理器,多个核是同时独立运行的,硬件上不可能给每个核都配备一个看门狗芯片,可能某个核工作异常停止运行了,而别的核还在正常工作。硬件上不可能给每个核都配备一个看门狗芯片,这就需要软件监控来辅助保证每个工作的核都在正常运行。
图1示出了一种多核处理器架构,它采用多线程技术(Multi-thread)实现,每个线程相当于一个CPU,各自可独立运行;四个线程共享一级指令高速缓冲(I-Cache)和数据高速缓冲(D-Cache),并组成一个核(Core),一个处理器可包含多个核。本文把该处理器的线程称作VCPU(Virtual CPU,虚拟CPU)。
在多核处理器的工作场景中,如果某一工作VCPU发生程序跑飞等异常而导致无法正常工作,整个系统都可能会瘫痪,因此需要快速捕捉到发生异常的VCPU,进行错误处理并恢复系统。用软件模拟看门狗功能是一个基本解决思路,如图2所示,在某个VCPU(VCPUm,即监控VCPU)上驻留一段监控代码,扫描其它的工作VCPU(VCPU1,VCPU2…VCPUn,即被监控VCPU),若发现某个VCPU运行异常,则进行相应的处理,而“监控VCPU”本身可以由硬件看门狗来监视。
目前,软件模拟看门狗的实现方法通常有以下两种:
一、给每个VCPU配备一个硬件定时器,当发生定时中断时,VCPU置某些标志,相当于喂狗;由监控VCPU上驻留的监控任务来扫描这些标志,若发现一定时间内某个VCPU的标志未改变,则认为该VCPU异常,便进行相应的处理。
二、每个VCPU的程序中增加一喂狗任务,依靠软件延时来定时置某些标志;监控VCPU上驻留的监控任务循环扫描这些标志,若发现一定时间内某个VCPU的标志未改变,则认为该VCPU异常,便进行相应的处理。
上述两种方法各有其不足:对于方法一,动作准确、CPU开销小,但每个VCPU需要一个额外硬件定时器资源来支持,增加了硬件开销;对于方法二,多任务的操作系统环境下,喂狗任务会因被中断或高优先级的任务抢占而错过喂狗时机,控制准确性差,还存在严重的VCPU处理能力浪费问题,原因是延时期间VCPU在做无用功。
因此,针对上述的多核处理器中VCPU监控开销大或者控制性差的问题,现有技术中尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种用于多核处理器的监控方法及系统,以解决现有技术中监控开销大或者控制性差的问题。
本发明提供一种用于多核处理器的监控方法,该多核处理器包括一个监控虚拟CPU VCPU和多个被监控VCPU,该方法包括:
监控VCPU定期通知多个被监控VCPU修改运行正常标志;监控VCPU定期轮询多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行。其中,所述监控功能由一个空闲的监控VCPU或非空闲的业务VCPU来完成,具体为:
若所述多核处理器中有空闲的监控VCPU,则由所述空闲的监控VCPU由指定被监控VCPU唤醒后进行监控;
若没有空闲的监控VCPU,则由业务VCPU进行监控;
为所述监控VCPU分配一个栈空间,用于各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
优选地,监控VCPU采用以下方式之一通知多个被监控VCPU修改运行正常标志:中断方式、消息方式。
优选地,在监控VCPU通知多个被监控VCPU修改运行正常标志之后,方法进一步包括:多个被监控VCPU分别根据该通知执行修改运行正常标志的处理。
优选地,监控VCPU由预先设置的硬件看门狗监控其是否正常运行。
本发明还提供一种用于多核处理器的监控系统,包括:一个监控VCPU和多个被监控VCPU,其中,所述系统包括:所述监控VCPU,用于定期通知多个被监控VCPU修改运行正常标志;所述监控VCPU,还用于定期轮询多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行;
其中,所述监控功能由一个空闲的监控VCPU或非空闲的业务VCPU来完成,具体为:
若所述多核处理器中有空闲的监控VCPU,则由所述空闲的监控VCPU由指定被监控VCPU唤醒后进行监控;
若没有空闲的监控VCPU,则由业务VCPU进行监控;
为所述监控VCPU分配一个栈空间,用于各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
优选地,监控VCPU采用以下方式之一通知多个被监控VCPU修改运行正常标志:中断方式、消息方式。
优选地,多个被监控VCPU,用于接收来自监控VCPU的修改运行正常标志的通知,并根据该通知修改运行正常标志。
优选地,该系统进一步包括:硬件看门狗,用于监控监控VCPU是否正常运行。
根据本发明实施例的技术方案,通过监控VCPU通知多个被监控VCPU修改运行正常标志,轮询多个被监控VCPU的运行正常标志,并根据轮询结果判断被监控VCPU是否正常运行,能够简捷、清晰地实现多核处理器的监控,在不需要额外硬件资源支持的情况下,达到了最佳的监控效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的多核处理器架构图;
图2是根据现有技术的VCPU监控模型的示意图;
图3是根据本发明实施例的监控方法的流程图;
图4是根据本发明实施例的采用VCPU间中断通知方式的监控方法的流程图;
图5是根据本发明实施例的采用VCPU间消息通知方式的监控方法的流程图;
图6是根据本发明实施例的监控系统的结构框图。
具体实施方式
本发明的主要思想主要在于,本发明主要应用在某通讯系统中,该系统采用多核处理器,每个工作VCPU运行一套多任务操作系统。若处理器还有空闲未用的VCPU,则使用该空闲的VCPU专门进行监控处理。监控VCPU初始化完毕后进入休眠等待状态,当所有被监控VCPU都运行起来后,由其中指定的被监控VCPU(可以任意指定)唤醒该监控VCPU,监控VCPU退出休眠,进行监控处理;若处理器无空闲VCPU时,则由某个业务VCPU(非空闲)来进行监控处理,该业务VCPU可以直接运行监控程序。另外,需要为监控VCPU专门分配一块程序运行的栈空间,各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明作进一步地详细说明。
根据本发明的实施例,提出了一种用于多核处理器的监控方法。
图3是根据本发明实施例的监控方法的流程图,如图3所示,该方法包括:
步骤S302,监控VCPU定期通知多个被监控VCPU修改运行正常标志;
步骤S304,监控VCPU定期轮询多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行。
在实际应用中,监控功能可以用由一个空闲的监控VCPU或业务VCPU(非空闲)来完成。若由空闲的监控VCPU来完成,指定的被监控VCPU需要唤醒该监控VCPU,并通知监控VCPU监控程序的地址以及给它分配的栈空间地址,监控VCPU才能设置程序栈空间并运行监控程序(参考步骤S302和步骤S304);若VCPU都要运行业务而无空闲VCPU时,也可由某个业务VCPU(非空闲)来完成,这就不需要分配堆栈和唤醒,该业务VCPU可以直接运行监控程序。
在步骤S302之后并且在步骤S304之前,多个被监控VCPU接收到修改运行正常标志的通知后,分别根据该通知执行修改运行正常标志的处理。其中,监控VCPU采用以下方式之一通知多个被监控VCPU修改运行正常标志:中断方式、消息方式。
需要说明,运行正常标志是保存在共享空间的变量,每个被监控VCPU独有自己的标志,被监控VCPU接收到来自监控VCPU的通知后,可以将该标志的值加一;监控VCPU在通知完被监控VCPU修改标志后,等待一段时间,再查看每个被监控VCPU的标志的值是否改变,如果改变,则认为相应的被监控VCPU工作正常,否则即发生异常。
此外,监控VCPU由预先设置的硬件看门狗进行监控,以监控该监控VCPU是否正常运行。
区别于现有技术,本发明实施例由监控VCPU周期性主动通知所有被监控VCPU喂狗,就像是一个定时器,定时要求被监控VCPU修改运行正常标志。被监控VCPU只有在收到这个通知后,才进入分支处理程序完成标志修改操作;监控VCPU在通知完所有被监控VCPU后开始循环扫描各个VCPU的运行正常标志,若是在设定时间内,有某个VCPU的标志还没有改变,可以认为该VCPU运行发生异常,需要进行异常错误处理。被监控VCPU只需要增加一个收到通知后的分支处理程序,来完成运行标志修改,平时就不用运行专门任务来进行喂狗。另外监控VCPU还负责给硬件看门狗提供喂狗信号,以监控自身的运行是否正常。
本发明能够应用在某移动通讯系统的核心控制板的软件监控,该控制板采用多核处理器,对各工作VCPU功能作了划分,预留有空闲的VCPU用于软件监控。根据本发明实施例,监控VCPU可以采用以下的方式通知被监控VCPU进行修改运行正常标志:VCPU间中断方式或VCPU间消息方式,下面结合图4和图5分别进行描述。
图4是根据本发明实施例的采用VCPU间中断通知方式的监控方法的流程图,如图4所示,包括:
步骤S402,指定的VCPU将监控程序和栈地址发给监控VCPU并唤醒该监控VCPU;
步骤S404,监控VCPU设置程序栈空间,执行监控程序。
步骤S406,监控VCPU定时给被监控VCPU发中断,通知监控VCPU修改运行正常标志(喂狗)。
步骤S408,被监控VCPU收到中断后,执行标志修改中断处理程序。
步骤S410,监控VCPU轮询被监控VCPU运行正常标志是否修改,根据轮询结果判断被监控VCPU是否正常运行。监控VCPU给硬件看门狗喂狗,以监控该监控VCPU是否正常运行。
通过VCPU间中断的通知方式,使得被监控VCPU响应更加及时,提高了监控效率。
图5是根据本发明实施例的采用VCPU间消息通知方式的监控方法的流程图,如图5所示,包括:
步骤S502,指定的VCPU将监控程序和栈地址发给监控VCPU并唤醒该监控VCPU;
步骤S504,监控VCPU设置程序栈空间,执行监控程序。
步骤S506,监控VCPU定时给被监控VCPU发消息,通知监控VCPU修改运行正常标志(喂狗)。
步骤S508,被监控VCPU收到消息后,解析消息进标志修改分支处理程序。
步骤S510,监控VCPU轮询被监控VCPU运行正常标志是否修改,根据轮询结果判断被监控VCPU是否正常运行。监控VCPU给硬件看门狗喂狗,以监控该监控VCPU是否正常运行。
通过VCPU间消息的通知方式,能够在消息中包含复杂的信息,便于今后功能扩展。
系统实施例
根据本发明的实施例,还提供了一种用于多核处理器的监控系统。
图6是根据本发明实施例的多核处理器的结构框图,如图6所示,该多核处理器包括:一个监控VCPU 10和多个被监控VCPU 20,其中:
监控VCPU 10,包括:通知模块,用于定期通知多个被监控VCPU 20修改运行正常标志;轮询模块,用于轮询多个被监控VCPU 20的运行正常标志,根据轮询结果判断被监控VCPU 20是否正常运行。监控VCPU 10采用以下方式之一通知多个被监控VCPU 20修改运行正常标志:中断方式、消息方式。
需要说明的是,在实际应用中,该监控VCPU可以为空闲的监控VCPU或业务VCPU(非空闲),若该监控VCPU为空闲的监控VCPU,指定的被监控VCPU需要唤醒该监控VCPU,并通知监控VCPU监控程序的地址以及给它分配的栈空间地址,监控VCPU才能设置程序栈空间并运行监控程序;若该监控VCPU为业务VCPU,则不需要分配堆栈和唤醒,该业务VCPU可以直接进行监控处理。
多个被监控VCPU 20,用于接收来自监控VCPU 10的修改运行正常标志的通知,并根据该通知修改运行正常标志。
并且,该监控系统还包括:硬件看门狗,用于监控监控VCPU 10是否正常运行。
综上所示,根据本发明实施例的监控方法及系统,在不需要额外硬件资源支持的情况下,达到了最佳的监控效果,简捷、清晰,且易于实现,可以作为多核处理器场景下的通用监控方法,进行广泛应用。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (8)

1.一种用于多核处理器的监控方法,所述多核处理器包括一个监控虚拟CPU VCPU和多个被监控VCPU,其特征在于,所述方法包括:
所述监控VCPU定期通知所述多个被监控VCPU修改运行正常标志;
所述监控VCPU定期轮询所述多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行;
若所述多核处理器中有空闲的VCPU,则由所述空闲的VCPU由指定被监控VCPU唤醒后进行监控;
若没有空闲的VCPU,则由业务VCPU进行监控;
为所述监控VCPU分配一个栈空间,用于各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
2.根据权利要求1所述的方法,其特征在于,所述监控VCPU采用以下方式之一通知所述多个被监控VCPU修改运行正常标志:
中断方式、消息方式。
3.根据权利要求1所述的方法,其特征在于,在所述监控VCPU通知所述多个被监控VCPU修改运行正常标志之后,所述方法进一步包括:
所述多个被监控VCPU分别根据该通知执行修改运行正常标志的处理。
4.根据权利要求1所述的方法,其特征在于,所述监控VCPU由预先设置的硬件看门狗监控其是否正常运行。
5.一种用于多核处理器的监控系统,所述多核处理器包括一个监控VCPU和多个被监控VCPU,其特征在于,所述系统包括:
第一模块,用于使所述监控VCPU定期通知所述多个被监控VCPU修改运行正常标志;
第二模块,用于使所述监控VCPU定期轮询所述多个被监控VCPU的运行正常标志,根据轮询结果判断所述被监控VCPU是否正常运行;
第三模块,用于若所述多核处理器中有空闲的VCPU,则由所述空闲的VCPU由指定被监控VCPU唤醒后进行监控;
若没有空闲的VCPU,则由业务VCPU进行监控;
第四模块,用于为所述监控VCPU分配一个栈空间,其用于各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
6.根据权利要求5所述的系统,其特征在于,
所述第一模块是用于,使所述监控VCPU采用以下方式之一通知所述多个被监控VCPU修改运行正常标志:
中断方式、消息方式。
7.根据权利要求5所述的系统,其特征在于,还包括:
第五模块,使所述多个被监控VCPU接收来自所述监控VCPU的修改运行正常标志的通知,并根据该通知修改运行正常标志。
8.根据权利要求5所述的系统,其特征在于,还包括:
第六模块,用于设置硬件看门狗来监控所述监控VCPU是否正常运行。
CN200910246453.1A 2009-11-24 2009-11-24 用于多核处理器的监控方法及系统 Active CN102073572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910246453.1A CN102073572B (zh) 2009-11-24 2009-11-24 用于多核处理器的监控方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910246453.1A CN102073572B (zh) 2009-11-24 2009-11-24 用于多核处理器的监控方法及系统

Publications (2)

Publication Number Publication Date
CN102073572A CN102073572A (zh) 2011-05-25
CN102073572B true CN102073572B (zh) 2015-10-21

Family

ID=44032118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910246453.1A Active CN102073572B (zh) 2009-11-24 2009-11-24 用于多核处理器的监控方法及系统

Country Status (1)

Country Link
CN (1) CN102073572B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069377A (zh) * 2018-01-22 2019-07-30 中兴通讯股份有限公司 一种多核处理器的监测方法、终端及计算机存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101534974B1 (ko) * 2013-12-19 2015-07-08 현대자동차주식회사 다중 마이크로 코어 감시 장치 및 방법
CN103870350A (zh) * 2014-03-27 2014-06-18 浪潮电子信息产业股份有限公司 一种基于watchdog的微处理器多核加固方法
CN105204977A (zh) * 2014-06-30 2015-12-30 中兴通讯股份有限公司 一种系统异常的捕获方法、主系统、影子系统及智能设备
CN107526646A (zh) * 2016-06-20 2017-12-29 中兴通讯股份有限公司 监控方法、装置及看门狗系统
CN106407032A (zh) * 2016-09-18 2017-02-15 深圳震有科技股份有限公司 一种基于多核系统的硬件看门狗控制方法及系统
CN107577571B (zh) * 2017-09-22 2021-04-30 迈普通信技术股份有限公司 问题定位方法及多核处理器
CN110990328B (zh) * 2019-10-23 2022-06-17 武汉光庭信息技术股份有限公司 一种TBox的双处理器间可靠通信的方法及系统
CN111026573B (zh) * 2019-11-19 2023-08-18 中国航空工业集团公司西安航空计算技术研究所 一种多核处理系统的看门狗系统及控制方法
CN111143127B (zh) * 2019-12-23 2023-09-26 杭州迪普科技股份有限公司 监管网络设备的方法、装置、存储介质及设备
CN112631872B (zh) * 2020-12-30 2024-02-23 上海金卓科技有限公司 一种多核系统的异常处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1595368A (zh) * 2003-09-13 2005-03-16 华为技术有限公司 多任务系统的异常监控装置及其方法
CN1855067A (zh) * 2005-04-28 2006-11-01 华为技术有限公司 一种实时操作系统中任务挂起状态监控方法
CN1916858A (zh) * 2006-09-19 2007-02-21 杭州华为三康技术有限公司 多核系统中的监控方法、监控装置以及多核系统
CN101458640A (zh) * 2007-12-14 2009-06-17 环达电脑(上海)有限公司 可监控多线程状态的系统及其监控方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1595368A (zh) * 2003-09-13 2005-03-16 华为技术有限公司 多任务系统的异常监控装置及其方法
CN1855067A (zh) * 2005-04-28 2006-11-01 华为技术有限公司 一种实时操作系统中任务挂起状态监控方法
CN1916858A (zh) * 2006-09-19 2007-02-21 杭州华为三康技术有限公司 多核系统中的监控方法、监控装置以及多核系统
CN101458640A (zh) * 2007-12-14 2009-06-17 环达电脑(上海)有限公司 可监控多线程状态的系统及其监控方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069377A (zh) * 2018-01-22 2019-07-30 中兴通讯股份有限公司 一种多核处理器的监测方法、终端及计算机存储介质

Also Published As

Publication number Publication date
CN102073572A (zh) 2011-05-25

Similar Documents

Publication Publication Date Title
CN102073572B (zh) 用于多核处理器的监控方法及系统
CN101464811B (zh) 多任务监控管理系统
US10983585B2 (en) Platform and processor power management
US20160378570A1 (en) Techniques for Offloading Computational Tasks between Nodes
CN100489788C (zh) 一种线程唤醒控制方法和系统
CN108536531B (zh) 一种基于单片机的任务调度和电源管理方法
US20100162014A1 (en) Low power polling techniques
KR20140057371A (ko) 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템
CN101694633A (zh) 计算机作业调度设备、方法及系统
CN105159769A (zh) 一种适用于计算能力异构集群的分布式作业调度方法
CN104572290A (zh) 消息处理线程的控制方法及装置
US10168751B2 (en) Method of executing an application on a distributed computer system, a resource manager and a distributed computer system
CN103092682A (zh) 异步网络应用程序处理方法
CN101510165B (zh) 看门狗电路的喂狗方法、装置和单板
JPWO2009150815A1 (ja) マルチプロセッサシステム
CN105204857A (zh) 一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法
CN104216795A (zh) 一种多进程保护系统及其实现方法
US20100269114A1 (en) Instant messenger and method for dispatching task with instant messenger
CN111429033A (zh) 一种工作流任务调度系统、方法及服务终端
CN112948088A (zh) 一种云计算平台中的云工作流智能管理与调度系统
CA2767782C (en) Suspendable interrupts for processor idle management
CN105700949A (zh) 一种多核处理器下的数据处理方法及装置
CN104360913B (zh) 用于计算机操作系统的监控模块
JP2013084169A (ja) コントローラ、およびタスクとラダーの処理方法
CN102647344B (zh) 嵌入式分布式系统中报文发送方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant