一种基于linux系统的CPU故障事件收集方法及系统与流程

文档序号:11864538阅读:473来源:国知局
一种基于linux系统的CPU故障事件收集方法及系统与流程

本发明涉及linux系统故障处理技术领域,特别是涉及一种基于linux系统的CPU故障事件收集方法及系统。



背景技术:

随着互联网的快速发展,计算机对人类的发展起到了关键的作用。中央处理器CPU是计算机的核心部分,可以实现运算及控制指挥的功能,使得每个部件在CPU的作用下有条不紊的协调工作。一旦CPU出现错误或故障,会导致计算机不能正常工作或宕机。故对CPU的错误信息进行收集是非常重要的。

但是目前的linux系统中,CPU错误记录寄存器内的错误原始事件数据无法主动进行获取,且这些数据内包含有许多除错误信息以外的数据,且并没有统一的格式,故根据错误原始事件数据来判断发生的故障十分困难,可见目前收集的CPU的错误信息的可用性差。

因此,如何提供一种能够提高收集的错误信息的可用性的基于linux系统的CPU故障事件收集方法及系统是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种基于linux系统的CPU故障事件收集方法及系统,能够提取出格式统一、可用性强的错误事件文件,便于后续进行故障诊断及处理。

为解决上述技术问题,本发明提供了一种基于linux系统的CPU故障事件收集方法,包括:

调取CPU错误记录寄存器内的错误原始事件数据,并将其发送至mcelog设备进行记录;

分析所述mcelog设备内的所述错误原始事件数据,提取所述错误原始事件数据中的关键数据;

将所述关键数据整合为错误事件文件,并将所述错误事件文件的格式定义为预设错误事件格式后作为CPU事件源。

优选地,所述错误原始事件数据为64BIT整型数据。

优选地,所述错误原始事件数据包括普通缓存类错误原始事件数据以及TLB页表缓存类错误原始事件数据。

优选地,所述普通缓存类错误原始事件数据包括一级缓存错误原始事件数据、二级缓存错误原始事件数据以及三级缓存错误原始事件数据。

为解决上述技术问题,本发明还提供了一种基于linux系统的CPU故障事件收集系统,包括:

调取模块,用于调取CPU错误记录寄存器内的错误原始事件数据,并将其发送至mcelog设备;

所述mcelog设备,用于记录所述错误原始事件数据;

关键数据获取模块,用于分析所述mcelog设备内的所述错误原始事件数据,提取所述错误原始事件数据中的关键数据;

整合模块,用于将所述关键数据整合为错误事件文件,并将所述错误事件文件的格式定义为预设错误事件格式后作为CPU事件源。

优选地,还包括:

分别与所述调取模块以及所述mcelog设备相连的通信模块,用于接收所述调取模块发送的所述错误原始事件数据,并将其发送至所述mcelog设备。

本发明提供了一种基于linux系统的CPU故障事件收集方法及系统,能够主动将位于CPU错误记录寄存器内的错误原始事件数据进行调取,并通过分析将其中的包含有错误信息的关键数据提取出来,整合为格式统一的错误事件文件,便于后续故障诊断处理时进行识别,可用性强,且提高了故障诊断处理时的便利性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种基于linux系统的CPU故障事件收集方法的过程的流程图;

图2为本发明提供的一种基于linux系统的CPU故障事件收集系统的结构示意图。

具体实施方式

本发明的核心是提供一种基于linux系统的CPU故障事件收集方法及系统,能够提取出格式统一、可用性强的错误事件文件,便于后续进行故障诊断及处理。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种基于linux系统的CPU故障事件收集方法,参见图1所示,图1为本发明提供的一种基于linux系统的CPU故障事件收集方法的过程的流程图;该方法包括:

步骤s101:调取CPU错误记录寄存器内的错误原始事件数据,并将其发送至mcelog设备进行记录;

其中,这里的错误原始事件数据为64BIT整型数据。

进一步可知,这里的错误原始事件数据包括普通缓存类错误原始事件数据以及TLB((Translation Lookaside Buffer,页表缓冲)页表缓存类错误原始事件数据。当然,这里的错误原始事件数据还包括其他类型,本发明并不限定错误原始事件数据的类型。

其中,普通缓存类错误原始事件数据包括一级缓存错误原始事件数据、二级缓存错误原始事件数据以及三级缓存错误原始事件数据。当然,这里的普通缓存类错误原始事件数据也可包括其他类型的缓存类数据,本发明对此不作限定。

可以理解的是,正常情况下,CPU错误记录寄存器内的错误原始事件数据是无法主动调取的,只能是在系统故障时被动提供,而本发明能够对错误原始事件数据进行主动调取,并将调取后的错误原始事件数据放置于mcelog设备中,之后想要对错误原始事件数据进行分析处理时,则可通过获取mcelog设备中放置的错误原始事件数据来实现,大大提高了便利性。

步骤s102:分析mcelog设备内的错误原始事件数据,提取错误原始事件数据中的关键数据;

步骤s103:将关键数据整合为错误事件文件,并将错误事件文件的格式定义为预设错误事件格式后作为CPU事件源。

可以理解的是,错误原始事件数据中包括有许多与错误信息无关的数据,这些数据会影响故障的诊断,故需要将错误原始事件数据中的关键数据(包含错误信息的数据或与错误信息相关的数据)提取出来,整合为错误事件文件,便于后续进行故障诊断,也便于工作人员查看,错误事件文件相比错误原始事件数据,可用性强。

其中,这里的预设错误事件格式可以设置为ereport.cpu.intel.lldcache_rc。当然,这里的格式可根据实际情况自行设定,本发明不作限定。

本发明提供了一种基于linux系统的CPU故障事件收集方法,能够主动将位于CPU错误记录寄存器内的错误原始事件数据进行调取,并通过分析将其中的包含有错误信息的关键数据提取出来,整合为格式统一的错误事件文件,便于后续故障诊断处理时进行识别,可用性强,且提高了故障诊断处理时的便利性。

本发明还提供了一种基于linux系统的CPU故障事件收集系统,参见图2所示,图2为本发明提供的一种基于linux系统的CPU故障事件收集系统的结构示意图。该系统包括:

调取模块11,用于调取CPU错误记录寄存器内的错误原始事件数据,并将其发送至mcelog设备12;

mcelog设备12,用于记录错误原始事件数据;

关键数据获取模块13,用于分析mcelog设备12内的错误原始事件数据,提取错误原始事件数据中的关键数据;

整合模块14,用于将关键数据整合为错误事件文件,并将错误事件文件的格式定义为预设错误事件格式后作为CPU事件源。

作为优选地,该系统还包括:

分别与调取模块11以及mcelog设备12相连的通信模块15,用于接收调取模块11发送的错误原始事件数据,并将其发送至mcelog设备12。

其中,调取模块11、CPU错误记录寄存器、通信模块15以及mcelog设备12均位于linux系统中的MCE内核模块内。

本发明提供了一种基于linux系统的CPU故障事件收集系统,能够主动将位于CPU错误记录寄存器内的错误原始事件数据进行调取,并通过分析将其中的包含有错误信息的关键数据提取出来,整合为格式统一的错误事件文件,便于后续故障诊断处理时进行识别,可用性强,且提高了故障诊断处理时的便利性。

需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1