一种避免CPU被耗尽导致看门狗重启的方法技术

技术编号:12670227 阅读:687 留言:0更新日期:2016-01-07 14:51
本发明专利技术涉及EOC局端设备流量报文处理领域,尤其是一种避免CPU被耗尽导致看门狗重启的方法。本发明专利技术针对现有技术中存在的问题,本发明专利技术提供了一种避免CPU被耗尽导致看门狗重启的方法,内核转发模块与看门狗内核程序交互作用,很好地解决前面场景出现的问题。本发明专利技术技术方式当出现用户态看门狗程序没有正常喂狗时候,内核转发模块进入检测状态,在检测时间内统计报文个数,如果报文个数超过定义阀值,则系统进入了CPU被内核转发耗尽的状态,内核转发模块代替用户态看门狗程序执行内核喂狗,避免看门狗重启系统。而报文个数未超过定义阀值,则不属于CPU被转发耗尽状态,而是系统出现了异常,看门狗重启系统。

【技术实现步骤摘要】

本专利技术涉及EOC局端设备流量报文处理领域,尤其是一种避免CPU被耗尽导致看门狗重启的方法
技术介绍
EOC原文是“Ethernet over Coax”,也就是以太网信号在同轴电缆上的一种传输技术。EOC分为EOC局端设备和EOC终端设备,EOC终端设备直接连接到用户,EOC局端设备则连接到数据网络,如图1所示,用户通过EOC终端和局端设备与数据网络进行通信。看门狗技术被广泛应用于嵌入式软件系统,充当系统“警察”的角色,当系统发生严重错误(比如程序进入死循环或者其它异常状态)不能恢复的时候,看门狗能重启系统,避免 系统在无人干预被长时间挂起或处于严重异常的状态。看门狗技术在嵌入式系统中实现有多种方法,在采用嵌入式Linux的EOC系统中,通常在用户态APP中创建一个看门狗应用程序,它定时调用内核接口去对看门狗内核标志位进行置位,告知看门狗内核程序进行喂狗,避免看门狗计数器溢出导致系统复位。如果EOC局端在某段时间(超过定时喂狗周期)内持续进行大量数据报文转发,使得CPU被内核转发完全占据(因为其收发包使用软中断优先级很高,用户态程序无法获取CPU),用户态看门狗应用程序由于无法获得CPU,不能调用看门狗内核接口进行喂狗操作,导致在正常高速数据转发中,系统误以为异常而被看门狗重启。现有技术方案一般是采取一次收发处理完上限个数的报文,内核转发主动退出以释放CPU,这种技术降低了突发流量处理能力。
技术实现思路
本专利技术所要解决的技术问题是:针对现有技术中EOC局端在某时间段因为大流量报文转发导致CPU被耗尽导致看门狗重启的问题,本专利技术提供了一种避免CPU被耗尽导致看门狗重启的方法,其在内核转发模块进行检测并帮助看门狗应用程序喂狗,当出现用户态看门狗程序没有正常喂狗时候,内核转发模块进入检测状态,在检测时间内统计报文个数,如果报文个数超过定义阀值(该值即CPU转发报文最大临界值,可动态配置),则认为系统进入了 CPU被内核转发耗尽的状态,内核转发模块代替用户态看门狗程序执行内核喂狗,避免看门狗重启系统。而报文个数未超过定义阀值,则不属于CPU被转发耗尽状态,而是系统出现了异常,看门狗重启系统。在该方案中,内核转发模块与看门狗内核程序交互作用,很好地解决前面场景出现的问题。本专利技术采用的技术方案如下: 一种避免CPU被耗尽导致看门狗重启的方法包括:步骤1:用户态看门狗内核定时器初始化,设置喂狗时间周期等相关参数,开启周期检测任务; 步骤2:内核定时器周期t检测用户态看门狗模块能否获得CPU调度,若能获得CPU调度,则系统正常,用户态看门狗模块喂狗正常;否则,执行步骤3 ; 步骤3:内核转发模块延迟看门狗的重启,并在延迟的时间周期内进行转发报文统计;若在延迟的时间周期P内统计转发报文个数达到阀值S,则CPU被转发耗尽,内核转发模块帮助喂狗,执行步骤4;否则,用户态看门狗模块未获得CPU调度,系统异常,用户态看门狗丰吴块重新启动; 步骤4:判断内核转发模块帮助喂狗持续时间m是否达到上限,若是达到上限,则系统异常,用户态看门狗模块重启;否则,内核转发模块帮助喂狗,执行步骤5 ; 步骤5:当用户态看门狗模块得到CPU调度,则结束内核转发模块帮助喂狗状态,将内核转发模块相关数据和状态清除,重新进入用户态喂狗的初始状态。进一步的,所述步骤I中内核定时器周期t检测用户态看门狗模块能否获得CPU调度的判断依据:根据用户态看门狗模块喂狗周期时间到达时,喂狗状态标志是否置位判断,若置位,则表示用户态看门狗模块获得CPU调度,否则,表示用户态看门狗模块未获得CHJ调度。进一步的,所述t范围是1s到20s,所述m范围是100s到1500s。进一步的,所述P范围是3s到5s。综上所述,由于采用了上述技术方案,本专利技术的有益效果是: 本方法采用内核转发模块与看门狗交互判断CPU当前状态,简单有效的解决EOC局端在某时间段因为大流量报文转发导致CPU被耗尽导致看门狗重启的问题。使用该方法,不会影响当前数据转发性能和突发。【附图说明】本专利技术将通过例子并参照附图的方式说明,其中: 图1为EOC典型场景; 图2为本方法流程图。【具体实施方式】本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。本专利相关说明: 用户态看门狗模块指的是用户态看门狗程序能正常得到CPU调度,调用看门狗内核程序进行喂狗处理。本方法中使用到的一些检测参数,包括内核定时器检测周期t,延迟状态报文转发统计周期P,报文个数阈值S与设备使用的CPU有很大的关系,CPU处理能力越强,那么这些参数值和范围越小。要确立这些参数值,需要在具体设备上进行测试验证,获取稳定的测试数据后进行设置。笔者在使用Intel IXP420和PPC405EP两款CPU的EOC产品上,内核定时器对用户态看门狗喂狗检测周期t为10秒,延迟状态报文转发统计周期P为3秒,延迟状态内报文个数阈值S为27000个(9000个/秒) 工作原理: 用户态看门狗程序能正常得到CPU调度,调用看门狗内核程序进行喂狗处理,该情况无需内核转发模块参与。当用户态看门狗模块无法得到CPU调度,看门狗内核定时器周期检测,发现缺省喂狗时间周期到达而内核喂狗状态标志未置位(即未能喂狗将执行重启),此时看门狗不立即执行重启,而是进入内核转发模块临界检测,在检测周期(一般3-5秒)内统计转发报文个数是否达到定义的阀值,若是则认为系统进入CPU被转发耗尽状态,此种情况由内核转发模块帮助喂狗避免重启;否则认为系统进入异常状态,看门狗重启系统。内核转发模块持续帮助喂狗最长时间应有上限,作为系统参数该阀值可配置,当超过阀值则认为这种较长时间CPU被转发耗尽状态也属于异常状态,需要重启;在内核转发模块帮助喂狗持续时间未超过上限阀值的过程中,一旦用户态看门狗模块得到CPU调度,则结束内核转发模块帮助喂狗状态,将内核转发模块相关数据和状态清除,重新进入用户态喂狗的初始状态。【具体实施方式】:如图2所述, 1.看门狗内核定时器初始化,设置喂狗时间周期等相关参数,开启周期检测任务。2.用户态看门狗模块是否获得CPU调度判断逻辑,根据喂狗周期时间到达时喂狗状态标志是否置位判断,若置位则表示获得CPU调度,否则表示未获得CPU。3.用户态看门狗模块获得CPU调度,看门狗对系统进行了正常的喂狗操作; 4.用户态看门狗模块不能获得CPU调度,进入内核转发模块临界检测处理。5.内核转发模块临界检测处理延迟看门狗的重启,在延迟的时间周期内进行转发报文统计,根据统计的转发报文个数进行CPU是否进入转发耗尽状态的判定。6.CPU是否被转发耗尽判定,临界检测周期内转发报文个数达到定义的阀值,则认为CPU进入转发耗尽状态;否则未进入转发耗尽状态。7.CPU未进入转发耗尽状态,用户态看门狗应用程序也未获得调度,系统异常,看门狗重启系统。8.CPU进入转发耗尽状态状态,检测到当前为止本文档来自技高网...
一种避免CPU被耗尽导致看门狗重启的方法

【技术保护点】
一种避免CPU被耗尽导致看门狗重启的方法,其特征在于包括:步骤1:用户态看门狗内核定时器初始化,设置喂狗时间周期等相关参数,开启周期检测任务;步骤2:内核定时器周期t检测用户态看门狗模块能否获得CPU调度,若能获得CPU调度,则系统正常,用户态看门狗模块喂狗正常;否则,执行步骤3;步骤3:内核转发模块延迟看门狗的重启,并在延迟的时间周期内进行转发报文统计;若在延迟的时间周期P内统计转发报文个数达到阀值S,则CPU被内核转发耗尽,内核转发模块帮助喂狗,执行步骤4;否则,用户态看门狗模块未获得CPU调度,系统异常,用户态看门狗模块重新启动;步骤4:判断内核转发模块帮助喂狗持续时间m是否达到上限,若是达到上限,则系统异常,用户态看门狗模块重启;否则,内核转发模块帮助喂狗,执行步骤5;步骤5:当用户态看门狗模块得到CPU调度,则结束内核转发模块帮助喂狗状态,将内核转发模块相关数据和状态清除,重新进入用户态喂狗的初始状态。

【技术特征摘要】

【专利技术属性】
技术研发人员:王飞
申请(专利权)人:成都广达新网科技股份有限公司
类型:发明
国别省市:四川;51

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

1