处理器预测故障分析方法及装置与流程

文档序号:12665058阅读:216来源:国知局
处理器预测故障分析方法及装置与流程

本发明涉及处理器测试技术领域,特别涉及一种处理器预测故障分析方法及装置。



背景技术:

机器校验架构(MCA,Machine Check Architecture)是因特尔公司提出一种中央处理器(CPU)将硬件错误报告给操作系统(Operating System,OS)的服务器错误自检机制。目前主流的因特尔处理器都支持MCA机制。MCA机制主要是侦测并报告硬件错误,如系统总线(System Bus)错误,内存错误检查和纠正(ECC)错误,奇偶校验错误,缓存(cache)错误等。MCA机制在处理器内部主要通过一系列特殊模块寄存器(MSR,Model Specific Registers)实现。

在服务器系统运行稳定性测试时,处理器和内存出错的机会更大,会产生用于描述MCA机制侦测并报告硬件错误的MCA错误信息。MCA错误信息主要包括核心错误(CPU CORE)和非核心错误(CPU UNCORE)。这样如果CPU出现MCA机制中包含的错误,用户可以发现并针对这些错误进行解决,以避免这些错误不能得到及时解决从而导致系统宕机或重启,对客户造成重要数据丢失的无法挽回的后果。



技术实现要素:

有鉴于此,本发明实施例的目的是提供一种解决MCA机制中包含的错误的处理器预测故障分析方法及装置。

为了实现上述目的,本发明实施例提供了一种处理器预测故障分析方法,包括:

接收硬件系统发送的机器错误信息;

若所述机器错误信息为可修正错误信息,则获取所述可修正错误信息对应的逻辑核心编号;

将所述逻辑核心编号对应的核心由调度列表中移除;

将所述核心设置为逻辑空闲状态。

本发明实施例还提供一种处理器预测故障分析装置,包括:

接收模块,配置为接收硬件系统发送的机器错误信息;

获取模块,配置为当所述机器错误信息为可修正错误信息时,、获取所述可修正错误信息对应的逻辑核心编号;

移除模块,配置为将所述逻辑核心编号对应的核心由调度列表中移除;

设置模块,配置为将所述核心设置为逻辑空闲状态。

由以上本发明实施例可以实现通过读取MCA错误信息,当MCA错误信息为可修正错误信息时,将所述逻辑核心编号对应的核心由调度列表中移除,并将所述核心设置于逻辑空闲状态,以避免可能出现的致命错误。

附图说明

图1为本发明的处理器预测故障分析方法的一种实施例的流程图;

图2为本发明的处理器预测故障分析方法的另一种实施例的流程图;

图3为本发明的处理器预测故障分析方法的在另一种实施例基础上的其中一种实施例的处理过程示意图;

图4为本发明的处理器预测故障分析装置的一种实施例的示意图;

图5为本发明的处理器预测故障分析装置的另一种实施例的示意图。

具体实施方式

此处参考附图描述本公开的各种方案以及特征。

应理解的是,可以对此处公开的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本公开的范围和精神内的其他修改。

包含在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且与上面给出的对本公开的大致描述以及下面给出的对实施例的详细描述一起用于解释本公开的原理。

通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本发明的这些和其它特性将会变得显而易见。

还应当理解,尽管已经参照一些具体实例对本发明进行了描述,但本领域技术人员能够确定地实现本发明的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。

当结合附图时,鉴于以下详细说明,本公开的上述和其他方面、特征和优势将变得更为显而易见。

此后参照附图描述本公开的具体实施例;然而,应当理解,所公开的实施例仅仅是本公开的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本公开模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本公开。

本说明书可使用词组“在一种实施例中”、“在另一种实施例中”或“在其中一个实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。

目前某些计算机芯片生产厂家生产的芯片具有机器校验架构(Machine Check Architecture,MAC)机制,来对服务器进行自检,并在发现硬件错误时发出中断或异常。系统软件收到中断或异常后,会对其进行响应,进行相应的修复、告警或其他策略等动作。通过厂家的远程访问服务(Remote Access Service,RAS)功能,保证在发生崩溃(crash)之前,服务器可以有机会做一些容错,以提高服务器的可靠性。

图1为本发明的处理器预测故障分析方法的一种实施例的流程图,如图1所示,本实施例的处理器预测故障分析方法,具体可以包括如下步骤:

接收硬件系统发送的机器错误信息。

具体地,本实施例的执行主体为操作系统。根据机器校验架构的设计,如果发生硬件固障,则固件(Firmware)会先于操作系统获取到机器错误信息,即机器校验错误(Machine Check Error,MCE)信息。并且,固件将所获取到的机器错误信息发送至操作系统,以便于操作系统进行处理。

判断机器错误信息是否为可修正错误信息,以便于根据机器错误信息的类型进行不同的处理。

若所述机器错误信息为可修正错误信息,则获取所述可修正错误信息对应的逻辑核心编号。

具体地,机器错误信息分为可修正(corrected)错误信息和不可修正(uncorrected)错误信息,固件判断机器错误信息是否为可修正错误信息,如果是可修正错误信息,则需要知道发生可修正错误信息的核心,具体是通过该核心对应的逻辑核心编号(ACPI ID)获得核心的信息,以便于操作系统进行后续处理。

本领域技术人员应该可以知道,若所述机器错误信息为不可修正错误信息,则根据不可修正错误信息的类型,由机器自动进行处理,无需将该不可修正的机器错误信息传送至操作系统。例如,不可修正错误信息分为可恢复、致命(fatal)和灾难(catastrophic)三种类型,对于致命和灾难类型的错误信息,不可修正错误信息要么已经导致机器无法正常启动,要么是操作系统无法解决的错误,因此无需将此错误信息发送至操作系统,对于可恢复的错误信息,则可以进行以下操作:无需采取措施、提供可恢复操作选项进行恢复,以及可恢复必要操作等进行自动恢复。

将所述逻辑核心编号对应的核心由调度列表中移除。

具体地,由于可修正错误信息发生在逻辑核心编号对应的核心,因此,可以将该核心由调度列表中移除,使其不再执行进程或中断,以避免进一步的致命错误的发生。

将所述核心设置为逻辑空闲状态。

具体地,由于所述逻辑核心编号对应的核心出现错误,为了避免更严重的错误发生,则将该核心设置为逻辑空闲状态,使其不再执行新的进程或中断,以避免出现更严重的错误。

本发明实施例的技术方案通过读取MCA错误信息,当MCA错误信息为可修正错误信息时,将所述逻辑核心编号对应的核心由调度列表中移除,并将所述核心设置于逻辑空闲状态,以避免可能出现的致命错误。

图2为本发明的处理器预测故障分析方法的另一种实施例的流程图,本实施例的处理器预测故障分析方法在如图1所示的实施例的基础上,进一步更加详细地介绍本发明的技术方案。如图2所示,本实施例的处理器预测故障分析方法,具体可以包括如下步骤:

接收硬件系统发送的机器错误信息。

具体地,本实施例的执行主体为操作系统。根据机器校验架构的设计,如果发生硬件固障,则固件(Firmware)会先于操作系统获取到机器错误信息,即机器校验错误(Machine Check Error,MCE)信息。并且,固件将所获取到的机器错误信息发送至操作系统,以便于操作系统进行处理。

判断机器错误信息是否为可修正错误信息,以便于根据机器错误信息的类型进行不同的处理。

若所述机器错误信息为可修正错误信息,则触发高级配置和电源管理接口事件,以通过高级配置和电源管理接口对象获取所述可修正错误信息对应的逻辑核心编号。

具体地,机器错误信息分为可修正(corrected)错误信息和不可修正(uncorrected)错误信息,固件判断机器错误信息是否为可修正错误信息,如果是可修正错误信息,则触发高级配置和电源管理接口(Advanced Configuration and Power Management Interface,ACPI)事件,以获得可修正错误信息对应的逻辑核心编号(ACPI ID)。

目前ACPI已经定义了一个ACPI_PAD事件,对于每个事件,操作系统都有一个对应的模块对其进行处理。对于ACPI_PAD事件,其对应的对象为_PUR,_PUR对象可以向操作系统传送需要设置为空闲状态的核心的总数量,但是不能向操作系统传送具体的核心编号,因此,本实施例在具体实施时,需要扩展_PUR苹果定义,或者新增一个对象,来向操作系统传送需要设置为空闲状态的核心编号。

本领域技术人员应该可以知道,若所述机器错误信息为不可修正错误信息,则根据不可修正错误信息的类型,由机器自动进行处理,无需将该不可修正的机器错误信息传送至操作系统。例如,不可修正错误信息分为可恢复、致命(fatal)和灾难(catastrophic)三种类型,对于致命和灾难类型的错误信息,要么已经导致机器无法正常启动,要么是操作系统无法解决的错误,因此无需将此错误信息发送至操作系统,对于可恢复的错误信息,则可以进行相应的操作,如无需采取措施、提供可恢复操作选项进行恢复,以及可恢复必要操作等进行自动恢复。

解除进程或中断对所述核心的绑定。

具体地,由于逻辑核心编号对应的核心发生了错误,为防止发生更严重地的错误,需要使该核心不再执行进程或线程,为防止有新的进程被分配到该核心上去,需要解除进程或中断对该核心的绑定。

将所述核心执行的线程调度出去或者新建一个空线程以最高优先级去抢占其他核心;或者,

判断是否需要迁移所述核心执行的线程,若需要则将所述线程迁移到其他核心。

为使出现错误的核心所执行的进程或中断能够继续得以执行,在解除进程或中断对出现错误的核心的绑定后,可以将所解除的进程或中断调度或者迁移至其他核心。如果想将所述核心执行的线程迁移至其他的核心,可以采用现有技术中的处理器内部的线程迁移技术来对线程进行迁移。

将所述逻辑核心编号对应的核心由调度列表中移除。

具体地,由于可修正错误信息发生在逻辑核心编号对应的核心,因此,可以将该核心由调度列表中移除,使其不再执行进程或中断,以避免进一步的致命错误的发生。

将所述核心设置为逻辑空闲状态。

具体地,由于所述逻辑核心编号对应的核心出现错误,为了避免更严重的错误发生,则将该核心设置为逻辑空闲状态,使其不再执行新的进程或中断,以避免出现更严重的错误。下面对本实施例进行详细的举例说明,例如,处理器中有N个核心,核心2发生了可修正错误,固件(UEFI/BIOS)先于操作系统(Operating System,OS)获得该错误信息,则固件向操作系统发送了机器错误信息以通知OS将核心2移除,此时执行ACPI处理器的聚合设备处理程序(Processor Aggregator Device Handler),然后处理器将核心2从调度列表中移除,使新的进程或中断不再占用核心2,核心2的线程程调度或者迁移至其他的核心,再将核心2设置为空闲状态。具体过程如图3所示。

本发明实施例的技术方案通过读取MCA错误信息,当MCA错误信息为可修正错误信息时,将所述逻辑核心编号对应的核心由调度列表中移除,并解除进程或中断对该核心的绑定,将线程调度或迁移到其他核心,同时将所述核心设置于逻辑空闲状态,以避免可能出现的致命错误。

图4为本发明的处理器预测故障分析装置的一种实施例的示意图,如图4所示,本实施例的处理器预测故障分析装置,具体可以包括接收模块、获取模块、移除模块和设置模块。

接收模块,配置为接收硬件系统发送的机器错误信息;

获取模块,配置为当所述机器错误信息为可修正错误信息时,、获取所述可修正错误信息对应的逻辑核心编号;

移除模块,配置为将所述逻辑核心编号对应的核心由调度列表中移除;

设置模块,配置为将所述核心设置为逻辑空闲状态。

本实施例的处理器预测故障分析装置,通过采用上述模块对处理器故障进行预测,以避免出现致命错误的实现机制与上述图1所示实施例的处理器预测故障分析方法的实现机制相同,详细可以参考上述图1所示实施例的记载,在此不再赘述。

图5为本发明的处理器预测故障分析装置的另一种实施例的示意图,本实施例的处理器预测故障分析装置在如图4所示的实施例的基础上,进一步更加详细地介绍本发明的技术方案。

如图5所示,本实施例的处理器预测故障分析装置,进一步可以包括:

所述获取模块,包括:

触发子模块,配置为触发高级配置和电源管理接口事件,以通过高级配置和电源管理接口对象获取所述可修正错误信息对应的逻辑核心编号。

所述装置还包括:

解除绑定模块,配置为将所述逻辑核心编号对应的核心由调度列表中移除之前,解除进程或中断对所述核心的绑定。

所述装置还包括:

处理模块,配置为将所述逻辑核心编号对应的核心由调度列表中移除之前,将所述核心执行的线程调度出去或者新建一个空线程以最高优先级去抢占其他核心;或者,

配置为将所述逻辑核心编号对应的核心由调度列表中移除之前,判断是否需要迁移所述核心执行的线程,若需要则将所述线程迁移到其他核心。

本实施例的处理器预测故障分析装置,通过采用上述模块对处理器故障进行预测,以避免出现致命错误的实现机制与上述图2所示实施例的处理器预测故障分析方法的实现机制相同,详细可以参考上述图2所示实施例的记载,在此不再赘述。

以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

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