故障处理的方法、计算机系统、基板管理控制器和系统

文档序号:7393 发布日期:2021-09-17 浏览:56次 英文

故障处理的方法、计算机系统、基板管理控制器和系统

本申请要求于2016年12月5日提交的、申请号为PCT/CN2016/108556、发明名称为“故障处理的方法、计算机系统、基板管理控制器和系统”的PCT申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本发明涉及信息

技术领域

,并且更具体地,涉及一种故障处理的方法、计算机系统、基板管理控制器和系统。

背景技术

计算机系统在产生错误时,对于一般错误,系统会产生系统管理中断(SystemManagement Interrupt,SMI),再收集错误数据,根据错误数据进行进一步处理,以检测故障。

很多设备发生硬件故障(例如内存颗粒故障或内存数据线故障)后,可能会产生可纠正错误。可纠正错误是指该错误可以纠正,发生可纠正错误系统可以继续运行。然而,对于由硬件故障引起可纠正错误的情况,在硬件故障消除前,会产生持续的可纠正错误风暴。虽然系统仍然可以继续运行,但此种情况是一种带病运行状态,继续使用会导致系统性能下降以及发生严重错误的概率大大提升,此时应对故障模块立即告警并尽快更换。即,需要针对可纠正错误风暴收集错误数据,以检测出硬件故障。

然而,对于持续的可纠正错误风暴的情况,若通过SMI收集错误数据,系统可能会陷入SMI中断陷阱而表现为系统停顿死机。因此,如何有效地处理可纠正错误风暴,成为一个亟待解决的技术问题。

发明内容

本发明实施例提供了一种故障处理的方法、计算机系统、基板管理控制器和系统,能够有效地处理可纠正错误风暴。

第一方面,本发明实施例提供了一种故障处理的方法,包括:

根据可纠正错误的收集信息,确定发生可纠正错误风暴;

关闭可纠正错误集合中的可纠正错误的产生模块的系统管理中断SMI使能,其中,该可纠正错误集合包括该可纠正错误风暴相关的可纠正错误;

向基板管理控制器BMC发送SMI使能关闭通知信息;

接收该BMC在接收到该SMI使能关闭通知信息预定时间后发送的SMI使能打开通知信息;

根据该SMI使能打开通知信息,打开已关闭的可纠正错误的产生模块的SMI使能。

本发明实施例的故障处理的方法,通过对可纠正错误的产生模块的SMI使能的关闭和打开,能够在不发生中断陷阱的情况下收集错误数据,并且不会影响由非硬件故障引起的可纠正错误的产生模块,从而能够有效地处理可纠正错误风暴。

在一些可能的实现方式中,关闭可纠正错误集合中的可纠正错误的产生模块的系统管理中断SMI使能,包括:

关闭该可纠正错误集合中每一个可纠正错误的产生模块的SMI使能;或者,

关闭该可纠正错误集合中的部分可纠正错误的产生模块的SMI使能。

在一些可能的实现方式中,该SMI使能打开通知信息在该BMC接收到该SMI使能关闭通知信息预定时间后发送。

在一些可能的实现方式中,该预定时间为10分钟。

在一些可能的实现方式中,若第一模块的SMI使能的关闭次数达到预定次数,则不再打开该第一模块的SMI使能,其中,该第一模块表示SMI使能已关闭的可纠正错误的产生模块。

在一些可能的实现方式中,该预定次数为3次。

在一些可能的实现方式中,根据可纠正错误的收集信息,确定发生可纠正错误风暴,包括:

若可纠正错误的数量到达预定值,则确定发生该可纠正错误风暴,其中,该可纠正错误风暴相关的可纠正错误为当前已收集的该预定值数量的可纠正错误。

在一些可能的实现方式中,该预定值为10。

在一些可能的实现方式中,在根据可纠正错误的收集信息,确定发生可纠正错误风暴之前,该方法还包括:

收集第一可纠正错误;

若当前可纠正错误的数量为零,则将可纠正错误的数量置为1;

若当前可纠正错误的数量不为零且该第一可纠正错误的发生时间与第二可纠正错误的发生时间的间隔大于预定间隔,则将可纠正错误的数量置为1,其中,该第二可纠正错误为在该第一可纠正错误之前最近发生的可纠正错误;

若当前可纠正错误的数量不为零且该第一可纠正错误的发生时间与该第二可纠正错误的发生时间的间隔小于该预定间隔,则将可纠正错误的数量增加1。

通过关闭可纠正错误风暴相关的可纠正错误的产生模块的SMI使能,能够防止中断陷阱的发生,在预定时间后再打开已关闭的可纠正错误的产生模块的SMI使能,既可以过滤掉由非硬件故障引起的可纠正错误风暴的情况,例如,由偶然的软中断或线路干扰引起的可纠正错误风暴的情况,即不会影响由非硬件故障引起的可纠正错误的产生模块,又可以收集错误数据,从而可以在由硬件故障引起的可纠正错误风暴的情况下检测出硬件故障。

在一些可能的实现方式中,该预定间隔为1分钟。

在一些可能的实现方式中,该方法还包括:

在关闭该可纠正错误集合中每一个可纠正错误的产生模块的SMI使能后,将可纠正错误的数量置为零。

在一些可能的实现方式中,该方法还包括:

将可纠正错误的错误数据发送给BMC。

在一些可能的实现方式中,可以通过IPMI向BMC发送该SMI使能关闭通知信息。

在一些可能的实现方式中,对可纠正错误的产生模块的SMI使能的打开也可以不由BMC控制,例如,可以由BIOS自行控制。BIOS可在进行了上述SMI使能关闭操作后,开始计时,在计时预定时间后再进行上述SMI使能打开操作。

在一些可能的实现方式中,故障告警操作也可以不由BMC进行,例如,可以由OS进行故障告警。OS可获取模块的SMI使能的关闭次数,若某一模块的SMI使能的关闭次数达到预定次数,则可以确定发生了硬件故障,输出该模块的故障告警信息。

在一些可能的实现方式中,预定值、预定时间、预定间隔、预定次数的大小,可以根据各种方式而设定,例如,可以通过统计、学习、训练、仿真等各种方式得到。

在一些可能的实现方式中,中断陷阱表示由持续的中断导致的系统停顿死机的状态。持续的中断也称为中断风暴。

第二方面,提供了一种故障处理的方法,包括:

接收基本输入输出系统BIOS在关闭可纠正错误集合中的可纠正错误的产生模块的系统管理中断SMI使能后,发送的SMI使能关闭通知信息;

在预定时间后,向该BIOS发送SMI使能打开通知信息,该SMI使能打开通知信息用于通知该BIOS打开已关闭的可纠正错误的产生模块的SMI使能。

本发明实施例的故障处理的方法,通过向BIOS发送SMI使能打开通知信息,可以控制BIOS打开已关闭的可纠正错误的产生模块的SMI使能,能够在不发生中断陷阱的情况下收集错误数据,从而能够有效地处理可纠正错误风暴。

在一些可能的实现方式中,向该BIOS发送SMI使能打开通知信息,包括:

每接收到该SMI使能关闭通知信息时,开始计时;

在计时预定时间后发送该SMI使能打开通知信息。

在一些可能的实现方式中,BMC接收到SMI使能关闭通知信息时,开始计时,若在预定时间内又接收到下一个SMI使能关闭通知信息,则重新计时,在计时预定时间后发送SMI使能打开通知信息。

在一些可能的实现方式中,该预定时间为10分钟。

在一些可能的实现方式中,该方法还包括:

若根据该SMI使能关闭通知信息,确定第一模块的SMI使能的关闭次数达到预定次数,输出该第一模块的故障告警信息,其中,该第一模块表示SMI使能已关闭的可纠正错误的产生模块。

在一些可能的实现方式中,该预定次数为3次。

第三方面,提供了一种基本输入输出系统BIOS芯片,包括用于处理器执行的模块,该处理器执行该模块时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。

第四方面,提供了一种计算机系统,包括:上述第三方面的BIOS芯片和处理器;该处理器用于执行该BIOS芯片中的模块。

第五方面,提供了一种基板管理控制器BMC,包括执行第二方面或第二方面的任意可能的实现方式中的方法的模块。

第六方面,提供了一种系统,包括:上述第四方面的计算机系统和上述第五方面的BMC。

第七方面,提供了一种计算机系统,包括处理器和存储器。存储器用于存储指令,处理器用于执行该指令。该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。

第八方面,提供了一种BMC,包括处理器和存储器。存储器用于存储指令,处理器用于执行该指令。该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。

第九方面,提供了一种系统,包括:上述第七方面的计算机系统;以及上述第八方面的BMC。

第十方面,提供了一种系统,包括:处理器、基本输入输出系统BIOS芯片和基板管理控制器BMC;该BIOS芯片用于存储BIOS程序;该处理器用于执行该BIOS芯片中存储的该BIOS程序,以进行第一方面或第一方面的任意可能的实现方式中的方法中的操作;该BMC包括微处理器和BMC存储器,该BMC存储器用于存储BMC程序,该微处理器用于执行该BMC存储器中存储的该BMC程序,以进行第二方面或第二方面的任意可能的实现方式中的方法中的操作。

第十一方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。

第十二方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。

附图说明

图1是本发明实施例的技术方案应用的系统的示意图。

图2是本发明实施例的故障处理的方法的示意性流程图。

图3是本发明一个实施例的故障处理的方法的时序图。

图4是本发明另一个实施例的故障处理的方法的时序图。

图5是本发明实施例的计算机系统的示意性框图。

图6是本发明实施例的BMC的示意性框图。

图7是本发明一个实施例的系统的示意性框图。

图8是本发明另一个实施例的系统的示意性框图。

具体实施方式

下面将结合附图,对本发明实施例中的技术方案进行描述。

图1是本发明实施例的技术方案应用的系统的示意图。

如图1所示,系统100包括主系统110和基板管理控制器(Baseboard ManagementController,BMC)120。

主系统110为计算机系统,可以包括计算机系统的各种组成部件,包括各种计算机硬件和软件,例如,处理器、存储器、基本输入输出系统(Basic Input Output System,BIOS)等。

BIOS 111可以为主系统110提供最底层的、最直接的硬件设置和控制。

BMC 120可以用于监控主系统110,对主系统110进行诊断、控制、硬件管理和故障排除等。BMC 120可以与主系统110设置在同一主板中,当然,BMC 120也可以与主系统110分离设置。

应理解,图1中的系统100也可以称为计算机系统,本发明对其具体的名称不做限定。

故障发生后,对于死机等严重错误,主系统110(例如,通过主系统110中的增强的硬件故障检查架构(Enhanced Machine Check Architecture,EMCA))产生内部错误(internal error,IERR)带外信号通知BMC 120,收到信号后BMC 120会主动去遍历读取收集错误数据寄存器112记录的错误数据。对于一般错误,主系统110会产生SMI中断,BIOS111的SMI中断程序会读取错误数据寄存器112记录的错误数据并传递给BMC 120。然后BMC120对收集到的错误数据进行解析、日志打印等进一步处理,对于严重故障会做进一步的基于错误数据的故障源分析定位,对于一般错误会做统计预警分析等等。

然而,对于可纠正错误(Corrected Errors),若采用上述处理流程可能会导致中断陷阱,即持续的中断。

可纠正错误是指该错误可以纠正,发生可纠正错误系统可以继续运行。一种情况下,可纠正错误是由偶然的软中断或线路干扰引起的,这种可纠正错误会很快消除,不会对系统性能造成影响;另一种情况下,可纠正错误是由硬件故障引起的,这种情况会发生可纠正错误风暴。对于可纠正错误风暴的情况,若采用上述流程收集错误数据,主系统可能会陷入SMI中断陷阱,即发生中断风暴,而表现为主系统停顿死机。

本发明实施例提供的技术方案,能够在发生可纠正错误风暴的情况下,收集错误数据,检测出硬件故障,而且不会发生中断陷阱。

图2示出了本发明实施例的故障处理的方法的示意性流程图。

图2结合了BIOS和BMC描述了本发明实施例的故障处理的方法。图2中的BIOS可以为图1中的BIOS 111,图2中的BMC可以为图1中的BMC 120。

应理解,由BIOS执行的流程具体可以由处理器(例如CPU)执行BIOS中的模块而实施,由BMC执行的流程具体可以由BMC中的微处理器执行BMC中的模块而实施,本发明实施例对此并不限定。

210,BIOS根据可纠正错误的收集信息,确定发生可纠正错误风暴。

具体而言,在本发明实施例中,对可纠正错误风暴进行检测。在发生可纠正错误后,BIOS收集可纠正错误,从错误数据寄存器读取可纠正错误的错误数据。一方面,BIOS将可纠正错误的错误数据发送给BMC,BMC解析错误数据,并做进一步的告警、存档或其他处理;另一方面,BIOS根据当前可纠正错误的收集信息,确定是否发生可纠正错误风暴。

可选地,若可纠正错误的数量达到预定值,则确定发生可纠正错误风暴,其中,该可纠正错误风暴相关的可纠正错误为当前已收集的该预定值数量的可纠正错误。该预定值数量的可纠正错误的集合可以称为可纠正错误集合。

例如,该预定值可以为10。也就是说,若当前统计的可纠正错误的数量为10,则确定发生可纠正错误风暴。该10个可纠正错误为该可纠正错误风暴相关的可纠正错误。即,可纠正错误集合包括该10个可纠正错误。

应理解,本文中的“预定值”、“预定时间”、“预定间隔”、“预定次数”等的大小,可以根据各种方式而设定,例如,可以通过统计、学习、训练、仿真等各种方式得到,本发明实施例对此并不限定。

可选地,可以通过下述方式统计可纠正错误的数量:

收集第一可纠正错误;

若当前可纠正错误的数量为零,则将可纠正错误的数量置为1;

若当前可纠正错误的数量不为零且该第一可纠正错误的发生时间与第二可纠正错误的发生时间的间隔大于预定间隔,则将可纠正错误的数量置为1,其中,该第二可纠正错误为在该第一可纠正错误之前最近发生的可纠正错误;

若当前可纠正错误的数量不为零且该第一可纠正错误的发生时间与该第二可纠正错误的发生时间的间隔小于该预定间隔,则将可纠正错误的数量增加1。

例如,该预定间隔可以为1分钟。

应理解,本文中的“大于”、“小于”也可以变换为“不小于”、“不大于”,本发明实施例对此并不限定。

具体而言,发生可纠正错误时,BIOS除了将可纠正错误的错误数据发送给BMC外,还要统计可纠正错误的数量。BIOS可获知该可纠正错误的产生模块,即获取报告该可纠正错误的模块的信息,并获取该可纠正错误的发生时间。BIOS判断当前可纠正错误的数量是否为零,若当前可纠正错误的数量为零,表示该可纠正错误为第一个可纠正错误,将可纠正错误的数量置为1;若当前可纠正错误的数量不为零,再判断可纠正错误的发生间隔是否大于预定间隔,例如1分钟,若当前的可纠正错误的发生时间与前一个可纠正错误的发生时间的间隔大于预定间隔,则需要重新计数,因此将可纠正错误的数量重新置为1;若当前可纠正错误的数量不为零且当前的可纠正错误的发生时间与前一个可纠正错误的发生时间的间隔小于该预定间隔,则将可纠正错误的数量增加1。

然后,BIOS判断可纠正错误的数量是否达到预定值,例如10,若可纠正错误的数量没有达到预定值,则继续统计下一个可纠正错误,若可纠正错误的数量达到预定值,则确定发生可纠正错误风暴,可进行步骤220的处理并将可纠正错误的数量置为零。

220,BIOS关闭可纠正错误集合中的可纠正错误的产生模块的SMI使能,其中,该可纠正错误集合包括该可纠正错误风暴相关的可纠正错误。

具体而言,BIOS确定发生可纠正错误风暴时,关闭可纠正错误集合中的可纠正错误的产生模块的SMI使能。在发生可纠正错误风暴的情况下,可能会一直产生SMI中断,通过关闭相应模块的SMI使能,可以避免SMI中断陷阱。

应理解,可以关闭该可纠正错误集合中每一个可纠正错误的产生模块的SMI使能;也可以关闭该可纠正错误集合中的部分可纠正错误的产生模块的SMI使能。

在本发明实施例中,BIOS先收集可纠正错误,在确定发生可纠正错误风暴时,关闭可纠正错误风暴相关的可纠正错误的产生模块的SMI使能,这样,这些模块再产生可纠正错误时不会再有SMI中断。若有未关闭SMI使能的可纠正错误的产生模块,该模块可能再产生可纠正错误并导致SMI中断。在这种情况下,若再产生的可纠正错误的数量较多,则可以进行下一次关闭操作,即,可以重复执行步骤210、220以及后续的230。

以上述预定值为10为例,若收集到10个可纠正错误,则关闭该10个可纠正错误中的可纠正错误的产生模块的SMI使能;若只关闭了部分可纠正错误的产生模块的SMI使能,则接下来可能又会收集到10个可纠正错误,这样可再一次进行关闭操作。

可选地,BIOS可在关闭可纠正错误集合中每一个可纠正错误的产生模块的SMI使能后,将可纠正错误的数量置为零,以进行下一个可纠正错误风暴的检测。可选地,若只关闭了部分可纠正错误的产生模块的SMI使能,则可以将可纠正错误的数量置为剩余的未关闭产生模块的SMI使能的可纠正错误的数量。

230,BIOS向BMC发送SMI使能关闭通知信息。

BIOS关闭了相应模块的SMI使能后,向BMC发送SMI使能关闭通知信息,以通知BMC进行了SMI使能关闭。

具体地,BIOS可以通过智能平台管理接口(Intelligent Platform ManagementInterface,IPMI)向BMC发送该SMI使能关闭通知信息。

可选地,为了使BMC可发送控制信息,BIOS可以将通用输入输出(General PurposeInput Output,GPIO)接口设置为GPI。

240,BMC向BIOS发送SMI使能打开通知信息。

BMC接收到BIOS发送的SMI使能关闭通知信息后,可进行计时,在预定时间后向BIOS发送SMI使能打开通知信息。可选地,该预定时间可以为10分钟。该SMI使能打开通知信息用于通知该BIOS打开已关闭的可纠正错误的产生模块的SMI使能。

可选地,BMC可在每接收到SMI使能关闭通知信息时,开始计时。也就是说,BMC接收到SMI使能关闭通知信息时,开始计时,若在预定时间内又接收到下一个SMI使能关闭通知信息,则重新计时,在计时预定时间后发送SMI使能打开通知信息。

具体而言,BIOS可以重复执行步骤210-230,也就是说,BIOS在接收到BMC发送的SMI使能打开通知信息前,可能会进行多次关闭操作,会向BMC连续发送SMI使能关闭通知信息。例如,若上述“预定值”设定地较小,一次关闭操作涉及的模块较少,或者在前述步骤220中只关闭了部分可纠正错误的产生模块的SMI使能,因此,还可能会有模块继续产生可纠正错误。这样,BIOS在接收到BMC发送的SMI使能打开通知信息前,可能又会进行关闭操作。这种情况下,BMC若在预定时间内又接收到下一个SMI使能关闭通知信息,则重新计时,在计时预定时间后再发送SMI使能打开通知信息,以通知BIOS打开已关闭的模块的SMI使能。

250,BIOS根据该SMI使能打开通知信息,打开已关闭的可纠正错误的产生模块的SMI使能。

BIOS接收到BMC发送的SMI使能打开通知信息后,对已关闭的可纠正错误的产生模块的SMI使能进行处理。

可选地,BIOS可以将GPIO接口设置为GPO。

可选地,若第一模块的SMI使能的关闭次数小于预定次数,则打开该第一模块的SMI使能;或者,若第一模块的SMI使能的关闭次数达到预定次数,则不再打开该第一模块的SMI使能,其中,该第一模块表示SMI使能已关闭的可纠正错误的产生模块。

可选地,该预定次数可以为3次。

具体而言,BIOS接收到BMC发送的SMI使能打开通知信息后,可遍历可纠正错误的产生模块,依次进行处理。由于每次关闭操作涉及的模块可能不会完全相同,因此不同模块关闭的次数可能不同。例如,若每次关闭操作都涉及某一模块,则该模块的关闭次数就较多;若某一模块不是每次关闭操作都涉及到,则该模块的关闭次数就较少。因此,BIOS接收到BMC发送的SMI使能打开通知信息后,若某一模块的SMI使能已关闭,且关闭次数小于预定次数,则打开该模块的SMI使能;若某一模块的SMI使能已关闭,但关闭次数已达到预定次数,则不再打开该模块的SMI使能,即,该模块的SMI使能永久关闭。

通过关闭可纠正错误风暴相关的可纠正错误的产生模块的SMI使能,能够防止中断陷阱的发生,在预定时间后再打开已关闭的可纠正错误的产生模块的SMI使能,既可以过滤掉由非硬件故障引起的可纠正错误风暴的情况,例如,由偶然的软中断或线路干扰引起的可纠正错误风暴的情况,即不会影响由非硬件故障引起的可纠正错误的产生模块,又可以收集错误数据,从而可以在由硬件故障引起的可纠正错误风暴的情况下检测出硬件故障。

可选地,BMC若根据该SMI使能关闭通知信息,确定第一模块的SMI使能的关闭次数达到预定次数,则输出该第一模块的故障告警信息。

具体而言,若某一模块的SMI使能的关闭次数达到预定次数,则可以确定发生了硬件故障,即可纠正错误是由硬件故障引起的,因此,BMC输出该模块的故障告警信息,以便于及时处理该硬件故障,从而保证系统的性能。

本发明实施例的故障处理的方法,通过对可纠正错误的产生模块的SMI使能的关闭和打开,能够在不发生中断陷阱的情况下收集错误数据,并且不会影响由非硬件故障引起的可纠正错误的产生模块,从而能够有效地处理可纠正错误风暴。

可选地,对可纠正错误的产生模块的SMI使能的打开也可以不由BMC控制,例如,可以由BIOS自行控制。具体地,BIOS可在进行了上述SMI使能关闭操作后,开始计时,在计时预定时间后再进行上述SMI使能打开操作。

可选地,故障告警操作也可以不由BMC进行,例如,可以由OS进行故障告警。具体地,OS可获取模块的SMI使能的关闭次数,若某一模块的SMI使能的关闭次数达到预定次数,则可以确定发生了硬件故障,输出该模块的故障告警信息。

下面将结合具体的例子详细描述本发明实施例。应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。

图3和图4是本发明实施例的故障处理的方法的时序图。

在本实施例中,SMI使能的关闭次数的预定次数以3次为例,图3示出了第1个可纠正错误风暴的处理方式,图4示出了第3个可纠正错误风暴的处理方式。每个可纠正错误风暴的可纠正错误数量以10为例,BMC计时的预定时间以10分钟为例。

301,产生第1个可纠正错误。

发生硬件故障时,产生第1个可纠正错误。例如,可纠正错误由硬件故障引发某个模块产生。

302,EMCA记录错误数据到寄存器。

产生可纠正错误时,系统通过EMCA记录错误数据到寄存器。

303,EMCA产生SMI给BIOS。

对应可纠正错误,该SMI为可纠正SMI(Corrected System ManagementInterrupt,CSMI)。

304,BIOS从寄存器收集错误数据。

BIOS收到CSMI后,通过中断处理程序从寄存器收集错误数据。

305,BIOS将错误数据发送给BMC。

例如,BIOS可以通过IPMI将错误数据发送给BMC。

306,BMC对错误数据进行处理。

例如,BMC对错误数据进行解析、存档等处理。

307,BIOS将可纠正错误的数量置为1。

BIOS统计可纠正错误的数量,由于是第1个可纠正错误,当前可纠正错误的数量为零,因此将可纠正错误的数量置为1。

对于接下来的第2-9个可纠正错误,进行上述类似的处理,并将可纠正错误的数量累加。下面描述对第10个可纠正错误的处理。

308,产生第10个可纠正错误。

309,EMCA记录错误数据到寄存器。

310,EMCA产生SMI给BIOS。

311,BIOS从寄存器收集错误数据。

312,BIOS将错误数据发送给BMC。

313,BMC对错误数据进行处理。

308-313与301-306类似,为了简洁,在此不再赘述。

314,BIOS将可纠正错误的数量累加为10。

315,BIOS关闭SMI使能。

由于可纠正错误的数量达到了预定值10,因此确定发生了可纠正错误风暴,因此关闭该10个可纠正错误的产生模块的SMI使能。

316,BIOS向BMC发送SMI使能关闭通知信息。

例如,BIOS可以通过IPMI将SMI使能关闭通知信息发送给BMC。

317,BMC开始计时。

BMC接收到SMI使能关闭通知信息后,进行计时10分钟。

318,BMC向BIOS发送SMI使能打开通知信息。

BMC在计时达到10分钟后,向BIOS发送SMI使能打开通知信息,通知BIOS打开已关闭的可纠正错误的产生模块的SMI使能。

319,BIOS打开SMI使能。

由于已关闭的SMI使能的关闭次数小于预定次数3次,因此BIOS收到SMI使能打开通知信息后,打开已关闭的可纠正错误的产生模块的SMI使能。

对于第2个可纠正错误风暴,进行与第1个可纠正错误风暴类似的处理。下面结合图4描述第3个可纠正错误风暴的处理方式。

401-416与图3中的301-316类似,为了简洁,在此不再赘述。

417,BMC告警。

由于SMI使能的关闭次数达到预定次数3次,可以确定发生了硬件故障,因此,BMC输出故障告警信息,以便于及时处理该硬件故障。

418,BMC开始计时。

BMC接收到SMI使能关闭通知信息后,进行计时10分钟。

419,BMC向BIOS发送SMI使能打开通知信息。

BMC在计时达到10分钟后,向BIOS发送SMI使能打开通知信息,通知BIOS打开已关闭的可纠正错误的产生模块的SMI使能。

420,BIOS不再打开SMI使能。

由于已关闭的SMI使能的关闭次数达到预定次数3次,因此BIOS不再打开已关闭3次的SMI使能。

通过上述方案,在发生可纠正错误风暴的情况下,能够检测出硬件故障,而且不会使系统陷入中断陷阱。

应理解,图3和图4的流程只是一个示例,不应理解为对本发明保护范围的限定。

还应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

上文中详细描述了根据本发明实施例的故障处理的方法,下面将描述根据本发明实施例的计算机系统、BMC和系统。

图5示出了本发明实施例的计算机系统500的示意性框图。

如图5所示,计算机系统500可以包括BIOS芯片501和处理器502。

该处理器502用于执行该BIOS芯片501中的模块。

如图5所示,该BIOS芯片501包括:

检测模块510,用于根据可纠正错误的收集信息,确定发生可纠正错误风暴;

控制模块520,用于关闭可纠正错误集合中的可纠正错误的产生模块的系统管理中断SMI使能,其中,该可纠正错误集合包括该可纠正错误风暴相关的可纠正错误;

发送模块530,用于向基板管理控制器BMC发送SMI使能关闭通知信息;

接收模块540,用于接收该BMC在接收到该SMI使能关闭通知信息预定时间后发送的SMI使能打开通知信息;

该控制模块520还用于根据该SMI使能打开通知信息,打开已关闭的可纠正错误的产生模块的SMI使能。

本发明实施例的计算机系统,通过对可纠正错误的产生模块的SMI使能的关闭和打开,能够在不发生中断陷阱的情况下收集错误数据,并且不会影响由非硬件故障引起的可纠正错误的产生模块,从而能够有效地处理可纠正错误风暴。

可选地,在本发明一个实施例中,该控制模块520具体用于:

关闭该可纠正错误集合中每一个可纠正错误的产生模块的SMI使能;或者,

关闭该可纠正错误集合中的部分可纠正错误的产生模块的SMI使能。

可选地,在本发明一个实施例中,该SMI使能打开通知信息在该BMC接收到该SMI使能关闭通知信息预定时间后发送。

可选地,在本发明一个实施例中,该预定时间为10分钟。

可选地,在本发明一个实施例中,该控制模块520还用于:

若第一模块的SMI使能的关闭次数达到预定次数,则不再打开该第一模块的SMI使能,其中,该第一模块表示SMI使能已关闭的可纠正错误的产生模块。

可选地,在本发明一个实施例中,该预定次数为3次。

可选地,在本发明一个实施例中,该检测模块510具体用于:

若可纠正错误的数量达到预定值,则确定发生该可纠正错误风暴,其中,该可纠正错误风暴相关的可纠正错误为当前已收集的该预定值数量的可纠正错误。

可选地,在本发明一个实施例中,该预定值为10。

可选地,在本发明一个实施例中,该检测模块510还用于:

收集第一可纠正错误;

若当前可纠正错误的数量为零,则将可纠正错误的数量置为1;

若当前可纠正错误的数量不为零且该第一可纠正错误的发生时间与第二可纠正错误的发生时间的间隔大于预定间隔,则将可纠正错误的数量置为1,其中,该第二可纠正错误为在该第一可纠正错误之前最近发生的可纠正错误;

若当前可纠正错误的数量不为零且该第一可纠正错误的发生时间与该第二可纠正错误的发生时间的间隔小于该预定间隔,则将可纠正错误的数量增加1。

可选地,在本发明一个实施例中,该预定间隔为1分钟。

可选地,在本发明一个实施例中,该检测模块510还用于:

在关闭该可纠正错误集合中每一个可纠正错误的产生模块的SMI使能后,将可纠正错误的数量置为零。

图6示出了本发明实施例的BMC 600的示意性框图。

应理解,该BMC 600可以对应于各方法实施例中的BMC,可以具有方法中的BMC的任意功能。

如图6所示,该BMC 600包括:

接收模块610,用于接收基本输入输出系统BIOS在关闭可纠正错误集合中的可纠正错误的产生模块的系统管理中断SMI使能后,发送的SMI使能关闭通知信息;

发送模块620,用于在预定时间后,向该BIOS发送SMI使能打开通知信息,该SMI使能打开通知信息用于通知该BIOS打开已关闭的可纠正错误的产生模块的SMI使能。

本发明实施例的BMC,通过向BIOS发送SMI使能打开通知信息,可以控制BIOS打开已关闭的可纠正错误的产生模块的SMI使能,能够在不发生中断陷阱的情况下收集错误数据,从而能够有效地处理可纠正错误风暴。

可选地,在本发明一个实施例中,该BMC 600还包括:

计时模块630,用于每接收到该SMI使能关闭通知信息时,开始计时;

该发送模块620具体用于,在该计时模块630计时预定时间后发送该SMI使能打开通知信息。

可选地,在本发明一个实施例中,该预定时间为10分钟。

可选地,在本发明一个实施例中,该BMC 600还包括:

处理模块640,用于根据该SMI使能关闭通知信息,确定第一模块的SMI使能的关闭次数达到预定次数,输出该第一模块的故障告警信息,其中,该第一模块表示SMI使能已关闭的可纠正错误的产生模块。

可选地,在本发明一个实施例中,该预定次数为3次。

图7示出了本发明一个实施例的系统700的示意性框图。如图7所示,该系统700包括:

上述本发明实施例的计算机系统500,以及上述本发明实施例的BMC 600。

图8示出了本发明另一个实施例的系统800的示意图。如图8所示,该系统800可以包括CPU 810,BIOS芯片820,BMC 830和总线840。

总线840用于实现各部件之间的连接通信。例如,总线840可以包括IPMI。

BIOS芯片820中存储BIOS程序。

CPU 810可执行BIOS芯片820中存储的BIOS程序。

BMC 830可包括微处理器831和BMC存储器832。BMC存储器832中存储BMC程序。微处理器831可执行BMC存储器832中存储的BMC程序。

在一些实施方式中,CPU 810执行BIOS芯片820中存储的BIOS程序,微处理器831执行BMC存储器832中存储的BMC程序,以执行前述本发明各种实施例中的方法。

可选地,系统800还可以包括其他计算机部件,本发明实施例对此并不限定。

本发明实施例的计算机系统、BMC和系统中的各个模块的上述和其它操作和/或功能分别为了实现前述本发明实施例的各个方法的相应流程,为了简洁,在此不再赘述。

本发明实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码可以用于指示执行前述本发明各种实施例中的方法。

应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:浮点运算单元测试方法、装置、集控设备以及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!