CN118093265A - 一种pcie设备故障处理方法及服务器 - Google Patents

一种pcie设备故障处理方法及服务器 Download PDF

Info

Publication number
CN118093265A
CN118093265A CN202410154491.9A CN202410154491A CN118093265A CN 118093265 A CN118093265 A CN 118093265A CN 202410154491 A CN202410154491 A CN 202410154491A CN 118093265 A CN118093265 A CN 118093265A
Authority
CN
China
Prior art keywords
pcie
error
fault
error code
information
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.)
Pending
Application number
CN202410154491.9A
Other languages
English (en)
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.)
XFusion Digital Technologies Co Ltd
Original Assignee
XFusion Digital Technologies Co Ltd
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 XFusion Digital Technologies Co Ltd filed Critical XFusion Digital Technologies Co Ltd
Priority to CN202410154491.9A priority Critical patent/CN118093265A/zh
Publication of CN118093265A publication Critical patent/CN118093265A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种PCIE设备故障处理方法,包括:获取目标PCI E设备的误码信息,所述目标PCIE设备为发生故障的PCIE设备;确定所述误码信息指示的误码类型为不可修正的错误;停止与所述目标PCIE设备相关的业务;对所述目标PCIE设备进行下电/上电复位;对目标PCIE设备的相关资源进行重加载,恢复所述目标PCIE设备上的业务。使得在线恢复PCIE设备故障的过程中,不会导致服务器下电,保证了服务器上执行的业务的连续性,增加了服务器产品的可靠性。

Description

一种PCIE设备故障处理方法及服务器
技术领域
本申请涉及服务器技术领域,尤其涉及一种PCIE设备故障处理方法及服务器。
背景技术
高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)设备在服务器上具有广泛的应用场景。比如,在服务器中部署的光纤通道(Host BusAdapter,HBA)卡、磁盘阵列(Redundant Arrays of Independent Disks,RAID)卡、非易失性快速存储(Nonvolatile memory express,NVME)盘、图形处理器(graphics processingunit,GPU)等都通过PCIE链路与中央处理器(Central Processing Unit,CPU)或桥片链接。其中,PCIE链路的高可靠性是业务连续执行的关键。
发明内容
本申请实施例提供了一种PCIE设备故障处理方法及服务器。使得在线恢复PCIE设备故障的过程中,不会导致服务器下电,保证了服务器上执行的业务的连续性,增加了服务器产品的可靠性。
第一方面,本申请实施例提供了一种高速串行计算机扩展总线标准设备故障处理方法,应用于服务器,服务器上部署有高速串行计算机扩展总线标准PCIE设备,该方法包括:获取目标PCIE设备的误码信息,所述目标PCIE设备为发生故障的PCIE设备;确定误码信息指示的误码类型为不可修正的错误;停止与目标PCIE设备相关的业务;对所述目标PCIE设备进行下电/上电复位;对目标PCIE设备的相关资源进行重加载,恢复目标PCIE设备上的业务。
在本方案中,在服务器的管理系统中增加了一个PCIE故障处理模块,用于获取目标PCIE设备的误码信息,在获取到目标PCIE设备的误码信息以后,确定目标PCIE设备的误码类型。在目标PCIE设备为不可修正错误的情况下,都需要对目标PCIE设备进行故障在线恢复。在对目标PCIE设备进行故障在线恢复的过程中,需要停止目标PCIE设备的相关业务,并对目标PCIE设备进行复位处理,以及在目标PICE设备进行复位处理以后,恢复目标PCIE设备的相关业务。在实现对目标PICE设备故障的在线恢复的过程中,避免了服务器重启。
在一个可能的实现方式中,确定误码信息指示的误码类型为不可修正的错误,包括:根据误码信息确定误码信息指示的误码类型为不可修正的致命错误;或者,根据误码信息确定误码信息指示的误码类型为不可修正的非致命错误,且在第一预设时间内产生误码的次数大于第一阈值。
在本方案中,不可以修正的错误包括:不可修正的致命错误和不可修正的非致命错误。对于不可修正的非致命错误,又可以分为单次出现的不可修正的非致命错误和多次出现的不可修正的非致命错误。对于不可修正的致命错误和多次出现的不可修正的非致命错误,对目标PCIE设备的影响较大,都需要对目标PCIE设备进行故障在线恢复。
在一个可能的实现方式中,该方法还包括:确定误码信息指示的误码类型为不可修正的非致命错误,且在第一预设时间内产生误码的次数小于等于第一阈值,或者,目标PCIE设备的误码类型为可修正错误,且第二预设时间内产生所述误码的次数大于等于第二阈值,向服务器上的基板管理控制器BMC发送告警信息;
在本方案中,在确定目标PCIE设备的误码类型为低频的不可修正的非致命错误,或者高频的可修正错误时,可以向BMC发送告警性信息,并在告警信息中携带故障处理建议,比如,向用户预警该错误可能影响PCIE业务。
在一个可能的实现方式中,该方法还包括:若目标PCIE设备的误码类型为可修正错误,且第二预设时间内产生所述误码的次数小于第二阈值,每隔第二预设时间打印一条日志信息,所述日志信息记录有故障信息。
在本方案中,在确定目标PCIE设备的误码类型为低频的可修正错误时,由于该错误对目标PCIE设备的影响较小,可以在日志信息中进行记录,不需要进行进一步的处理。
在一个可能的实现方式中,在确定无码信息指示的误码类型为不可修正错误以后,该方法还包括:生成目标PCIE设备的告警信息;通过服务器上的基板管理控制器BMC显示告警信息,告警信息包括目标PCIE设备的误码类型。
在本方案中,BMC在显示告警信息时,还可以显示目标PCIE设备的误码类型,以方便运维人员对目标PCIE设备的故障进行进一步的确定。
在一个可能的实现方式中,获取目标PCIE设备的误码信息,包括:轮询目标PCIE设备的故障状态寄存器,从目标PCIE设备的故障状态寄存器中获取目标PCIE设备产生的误码信息。
在本方案中,在BIOS使能使能PCIE设备的原生AER错误上报机制以后,目标PCIE设备可以将运行过程中产生的误码信息保存在自身的故障状态寄存器中。
在一个可能的实现方式中,获取目标PCIE设备的误码信息,包括:通过内存映射输入输出系统MMIO从目标PCIE设备的故障状态寄存器中获取目标PCIE设备产生的误码信息。
在本方案中,可以通过MMIO方式获取目标PCIE设备的误码信息,以简化获取目标PCIE设备的误码信息的难度。
在一个可能的实现方式中,目标PCIE设备支持高级错误报告AER功能。
在本方案中,目标PCIE设备支持AER功能,在目标PCIE设备发生故障的情况下,目标PCIE设备基于AER处理机制,对发生错误的类型进行判断,并根据发生的错误的类型生成与该错误类型对应的误码,并存储在PCIE设备上的故障状态寄存器中。
第二方面,本申请实施例提供了一种服务器,该服务器包括:
PCIE故障处理模块,用于获取目标PCIE设备的误码信息,目标PCIE设备为发生故障的PCIE设备;
PCIE故障处理模块,还用于确定误码信息指示的误码类型为不可修正的错误;
业务模块,用于在误码信息指示的误码类型为不可修正错误的情况下,停止与目标PCIE设备相关的业务;
PCIE驱动模块,用于在误码信息指示的误码类型为不可修正错误的情况下,对目标PCIE设备进行下电/上电复位;
业务模块,还用于对目标PCIE设备的相关资源进行重加载,恢复目标PCIE设备上的业务。
在一个可能的实现方式中,PCIE故障处理模块用于:
根据误码信息确定误码信息指示的误码类型为不可修正的致命错误;或者,
根据误码信息确定误码信息指示的误码类型为不可修正的非致命错误,且在第一预设时间内产生误码的次数大于第一阈值。
在一个可能的实现方式中,服务器还包括:
告警模块,用于根据目标PCIE设备的误码类型生成告警信息;
显示模块,用于显示告警信息,告警信息包括目标PCIE设备的误码类型。
在一个可能的实现方式中,PCIE故障处理模块还用于:
通过内存映射输入输出系统MMIO从目标PCIE设备的故障状态寄存器中获取目标PCIE设备产生的误码信息。
第三方面,本申请实施例提供了一种服务器,包括:
至少一个存储器,用于存储程序;
至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种PCIE设备故障处理方法的流程示意图;
图2为本申请实施例提供的一种服务器的结构示意图;
图3为本申请实施例提供的一种服务器系统架构示意图;
图4为本申请实施例提供的一种PCIE设备故障处理方法的流程图;
图5为本申请实施例提供的一种PCIE设备故障处理方法的流程图;
图6为本申请实施例提供的一种PCIE设备故障处理方法的流程图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。
在本申请实施例中的描述中,“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应该被理解为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在服务器上的PCIE设备出现故障以后,获取服务器上PCIE设备的故障对应的误码信息需要查看服务器上带内管理系统和带外管理系统中存储的日志信息,导致误码信息查看不直观。其次,服务器上PCIE设备故障的处理与服务器上实际运行的业务割裂,绝大部分的故障都需要对PCIE设备进行更换或者对整个服务器进行上/下电处理。当前同一服务器可以运行多种业务,比如,网络类业务、GPU AI类业务、存储类业务。现有的PCIE设备故障处理方式,过于暴力和单一,容易造成单台服务器上关键业务中断,处理不够精细化。
示例性的,图1示出了一种PCIE设备故障处理方法的流程示意图。参见图1,在图1所示的服务器系统中包括用户空间(User Space)、Linux内核(Linux Kernel)、基本输入输出系统(Basic I nput Output System,BIOS)以及硬件平台(Hardware Platform)。当硬件平台中部署的PCIE设备发送生故障以后,通常有两种处理方式。
第一种处理方式,当PCIE设备发生故障以后,硬件平台直接产生不可屏蔽((NonMaskable Interrupt,NMI)中断,并向Linux kernel发送NMI消息。Linux kernel接收到NMI消息以后,触发操作系统(Operating System,OS)Panic复位。其中,Panic复位是Linuxkernel提供的一种复位机制,当触发该复位机制以后,服务器系统需要进行重新启动,即服务器上正在运行的业务需要中断。
第二种处理方式,用户可以预先在服务器系统中使能PCIE高级错误报告(Advanced Error Reporting,AER)驱动以及热插拔(Hotplug)模块。当PCIE设备发生故障以后,硬件平台直接产生应用系统管理中断(System Management Interrupt,SMI),并向BIOS发送SMI消息。BIOS接收到SMI消息以后,BIOS进行SMI中断处理,并触发CPU进入系统管理模式(System Management Mode,SMM),此时OS相关执行流程将被挂起,执行BIOS中注册的中断服务程序(Interrupt Service Routines,ISR)。
BIOS在处理完SMI中断以后,BIOS还可以触发系统控制中断(System ControlInterruption,SCI),从而退出SMM模式。然后,由Linux kernel中注册的ISR对SCI中断进行处理。
可以理解的是,高级错误报告(Advanced Error Reporting,AER)是PCIE设备的高级功能,PCIE设备如果出现问题可以通过这个机制上报给系统,然后系统来处理异常。AER里面主要分为三种类型的故障,分别是:可纠正错误(Correctable Error,CE),不可纠正错误(Uncorrectable Error,UE),UE中根据Severity寄存器又分为非致命错误(Non-FatalError,NFE),致命错误(Fatal Error,FE)。一般来说,PCIE设备发生CE不会上报OS,由PCIE设备自己处理,而发送UE则会上报OS。
对于第一种处理方式,在服务器上的PCIE设备出现故障时,服务器会直接进行重启,导致服务器上运行的业务中断。
对于第二种处理方式,在AER驱动使能状态下,虽然能够对PCIE设备故障进行处理,但是由于PCIE设备故障处理流程和服务器系统中的业务处理流程相互独立,而PCIE资源是共用,会导致大部分的PCIE故障处理流程被卡住,无法执行,最终还是需要重新启动服务器。其次,在PCIE故障处理过程中,PCIE链路的误码状态主要依赖服务器上带内管理系统和带外管理系统中存储的日志信息,查看PCIE链路误码需要分析系统日志,使得查看及提前识别链路型号质量比较困难,无法提前预知PCIE设备状态。
有鉴于此,本申请实施例提供了一种PCIE设备故障处理方法,在服务器系统中增加一个PCIE故障处理模块,以及在服务器系统上电阶段,BIOS使能PCIE AER错误上报机制。在服务器系统运行过程中,若存在PCIE设备发生错误(也可以称之为故障),PCIE故障处理模块可以轮询PCIE设备上的端口误码状态寄存器,并根据轮询的误码类型和误码频率对PCIE设备发生的错误进行在线恢复,避免了在PCIE设备故障处理过程中,服务器下电,保证了服务器上执行的业务的连续性,增加了服务器产品的可靠性。
示例性的,图2示出了一种服务器的结构示意图。如图2所示,服务器可以包括:中央处理器(central processing unit,CPU)211、内存212、BMC(baseboard managementcontroller,基板管理控制器)213、基本输入输出系统(basic input output system,BIOS)214、PCIE设备215。
其中,CPU211是服务器的计算核心及控制核心。CPU211读取内存212中保存的程序指令和数据,从而执行PCIE设备的故障处理方法。
内存212插入内存插槽中,其用作外部高速缓存。示例性地,内存212可以为随机存取存储器(random access memory,RAM)。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
BMC213是独立于服务器系统之外的小型系统,是服务器的基本核心功能子系统,负责服务器的硬件状态管理、操作系统管理、健康状态管理、功能消耗管理等核心功能。在本申请实施例中,BMC可以在PCIE设备发生故障以后,生成相应的告警信息并显示。
BIOS214是一组固化到服务器内板上一个ROM芯片上的程序,它保存着计算机(服务器)最重要的基本输入输出程序、系统设置信息、开机后自检程序和系统自启动程序。其最主要的功能是为计算机提供最底层最直接的硬件设置和控制。在本申请实施例中,在服务器上电以后,BIOS可以使能PCIE AER和Hotplug能力。
PCIE设备215是指通过PCIE插槽连接到服务器上的设备。其中,常见的PCIE设备有:网卡、显卡、主机总线适配器(host bus adapter,HBA)等。示例性的,在图2中示出了PCIE的架构示意图。如图2所示,PCIE的基本结构包括根组件(Root Complex),桥接设备(PCI/PCI–X Bridge)和各种终端设备(Endpoint)。根组件可以继承在北桥芯片中,用于处理器和内存子系统与I/O设备之间的连接。桥接设备用于去连接其他的总线,比如PCI总线或PCI-X总线,甚至其他的PCIE总线。连接到根组件上的各种终端设备可以是PCIE设备215。
在服务器运行过程中,若PCIE设备发生了故障,PCIE设备基于AER处理机制,对发生错误的类型进行判断,并根据发生的错误的类型生成与该错误类型对应的误码,并存储在PCIE设备上的故障状态寄存器中。然后,PCIE设备向Root Complex发送MSI消息,其中,MSI消息中携带有发生故障的PCIE设备的设备ID。Root Complex根据接收到的MSI消息,上报MSI中断给CPU进行处理。
需要说明的是,图2仅仅作为服务器的示例,并不构成具体限定,在实际应用中,可以包括比图2更多或更少的器件。比如,在PCIE架构中还可以包括交换机(switch),switch可以让更多的PCIE设备连接在PCIE设备上。
示例性的,图3示出了一种服务器系统架构示意图。如图3所示,包括:业务模块、PCIE设备模块、PCIE故障处理模块、Web显示模块和告警模块。其中,PCIE设备模块中还包括PCIE驱动模块;业务模块、PCIE设备模块和PCIE故障处理模块属于OS用户态中的模块,可以通过图2所示的服务器中的CPU211实现;Web显示模块和告警模块属于带外管理系统中的模块,可以通过图2所示的服务器中的BMC213实现。
其中,业务模块用于管理服务器中部署的各种PCIE设备对应的业务处理流程。比如,网卡业务、网状信道(Fibre Channel,FC)卡业务、NVME业务等。
PCIE设备模块是服务器中的PCIE设备在OS用户态中对应的软件模块。当底层的PCIE物理设备发生故障时,发生故障的PCIE设备会上报SMI中断,并在PCIE设备故障状态寄存器中记录相关故障的类型。PCIE设备模块中的PCIE驱动模块用于使能Hotplug功能,以支持服务器系统的热插拔操作。PCIE驱动模块还用于使能AER功能,使得服务器上部署的PCIE设备如果出现问题可以通过PCIE设备的AER机制上报给系统,然后系统来处理异常。
PCIE故障处理模块用于对PCIE设备发生的故障进行处理,包括通过内存映射I/O(Memory mapping I/O,MMIO)获取PCIE设备的故障状态寄存器中存储的信息,确定是否存在PCIE设备发生故障。PCIE故障处理模块在确定PCIE设备发生故障以后,可以根据从PCIE设备故障状态寄存器中获取的故障类型,以及故障发生频率,对发生故障的PICE设备进行故障恢复。比如,在对发生故障的PCIE设备进行故障恢复的过程中,PCIE故障处理模块可以通过ioctl的方式控制业务模块停止执行相关的PCIE业务,以及通过ioctl的方式控制Hotplug模块对故障的PCIE设备进行复位操作。
可以理解的是,ioctl是PCIE设备中对设备的I/O通道进行管理的函数。其中,对I/O通道进行管理,就是对PCIE设备的一些特性进行控制,例如串口的传输波特率、马达的转速等。
告警模块用于在PCIE设备发生故障以后,生成相应的告警信息。比如,PCIE故障处理模块在根据从PCIE设备故障状态寄存器中获取的故障类型以及故障发生频率,确定故障等级。在确定PCIE设备的故障等级较高时,PCIE故障处理模块可以触发告警模块生成告警信息。
可以理解的是,PCIE故障处理模块属于带内OS中的软件模块,告警模块数据带外BMC中的软件模块。当PCIE故障处理模块和告警模块需要通信时,可以通过智能平台管理接口(Intelligent Platform Management Interface,IPMI)进行通信。
Web显示模块用于对告警模块生成的告警信息进行显示。
在本申请实施例中,在服务器中增加PCIE故障处理模块,使得PCIE故障可以在线恢复,避免了在PCIE设备故障处理过程中,服务器下电,保证了服务器上执行的业务的连续性,增加了服务器产品的可靠性。
接下来,基于上文所描述的内容,对本申请实施例中提供的一种PCIE设备故障处理方法进行介绍。示例性的,图4示出了一种PCIE设备故障处理方法的流程图,该方法可以由图3所示的服务器管理系统执行,比如,有图3所示的服务器管理系统中的PCIE故障处理模块执行。参见图4,该方法包括:步骤401-步骤403。
步骤401,获取目标PCIE设备的误码信息。
在本实施例中,误码信息中携带有误码类型,误码类型包括:可修正错误、不可修正的非致命错误、不可修正的致命错误中的至少一种。
在服务器上电以后,BIOS触发PCIE驱动模块,使能PCIE AER和Hotplug能力。可以理解的是,AER是一种用于检测和报告PCIE设备中发生的错误的机制。AER允许PCIE设备检测到并报告各种类型的故障。比如,可修正故障、不可修正的非致命故障以及不可修正的致命故障。AER在PCIE设备上实现了一组寄存器和相应的故障通知机制,可以通过读取这些寄存器来获取关于故障的信息。通过AER机制,服务器系统能够更好地监控和处理PCIE设备的故障情况。
在服务器运行过程中,若服务器上的PCIE设备发生了故障,PCIE设备会根据发生的故障的类型,生成相应的误码,并将误码保存在PCIE设备的故障状态寄存器中。
服务器上的PCIE故障处理模块可以在服务器运行过程中实时轮询PCIE设备的故障寄存器,获取故障寄存器中存储的误码信息。
步骤402,根据获取的误码信息指示的误码类型,确定目标PCIE设备的故障处理措施。
在本实施例中,PCIE故障处理模块可以从目标PCIE设备的故障状态寄存器中获取误码信息,并根据误码信息中携带的误码类型,确定目标PCIE设备的故障处理措施。
在一个可能的示例中,误码信息中携带有误码类型以及该误码类型对应的误码频率。PCIE故障处理模块在根据获取的误码信息确定目标PCIE设备的误码类型以后,还可以根据获取的误码信息确定目标PCIE设备对应的误码类型出现的频率。然后PCIE故障处理模块可以根据目标PCIE设备对应的误码类型,以及误码出现的频率,确定目标PCIE设备的故障处理策略。具体地,对于服务器上部署的任意一个PCIE设备中的目标PCIE设备,PCIE故障处理模块在获取到目标PCIE设备的误码信息以后,首先确定该误码信息中携带的误码类型。然后,根据目标PCIE设备在预设时间段内产生该误码的频率,生成目标PCIE设备的故障处理策略(也可以称之为故障处理措施)。
比如,PCIE故障处理模块从目标PCIE设备的故障状态寄存器中获取的误码的类型为可修正错误。PCIE故障处理模块还需要确定在第二预设时间内产生该误码的次数,若第二预设时间内产生误码的次数小于第二阈值,PCIE故障处理模块可以确定目标PCIE设备的故障处理策略为第一策略。若在第二预设时间内产生误码的次数大于等于第二阈值,PCIE故障处理模块可以确定目标PCIE设备的故障处理策略为第二策略。其中,第一二预设时间和第二阈值可以根据经验进行预先设置。比如,可以预先设置第二预设时间为2分钟,第二阈值为3。
若PCIE故障处理模块从目标PCIE设备的故障状态寄存器中获取的误码的类型为不可修正的非致命错误。PCIE故障处理模块还需要确定在第一预设时间内产生该误码的次数,若第一预设时间内产生误码的次数小于等于第一阈值,PCIE故障处理模块可以确定目标PCIE设备的故障处理策略为第二策略。若在第一预设时间内产生误码的次数大于第一阈值,PCIE故障处理模块可以确定目标PCIE设备的故障处理策略为第三策略。其中,第一预设时间和第一阈值可以根据经验进行预先设置。比如,可以预先设置第一预设时间为3分钟,第一阈值为1。
若PCIE故障处理模块从目标PCIE设备的故障状态寄存器中获取的误码的类型为不可修正的致命错误。此时,PCIE故障处理模块可以直接确定目标PCIE设备的故障处理策略为第三策略。
在一个可能的示例,PCIE设备产生的误码类型和对应的门限策略和处理策略如表1所示。
表1
步骤403,基于目标PCIE设备的故障处理措施,在服务器不断电的情况下,对目标PCIE设备产生的故障进行处理。
在本实施例中,PCIE故障处理模块在确定目标PCIE设备的故障处理策略以后,可以基于目标PCIE设备的故障处理策略,对目标PCIE设备产生的故障进行处理。具体地,若目标PCIE设备的故障处理策略为第一策略,PCIE故障处理模块可以触发服务器系统每隔2分钟打印一条日志记录,该日志记录中记录了目标PCIE设备的故障信息,比如,故障类型,故障发生频率等。
若目标PCIE设备的故障处理策略为第二策略,PCIE故障处理模块需要向服务器上的BMC发送告警信息,在告警信息中还会携带有目标PCIE设备故障的处理建议。BMC在接收到PCIE故障处理模块发送的告警信息以后,还需要将接收到的告警信息在BMC的Web显示页面进行显示。具体地,若目标PICE设备的故障类型为高频的可修正错误,PCIE故障处理模块向BMC发送告警信息,告警信息中携带有处理建议。比如,对该PCIE设备的故障处理建议为“触发目标PCIE设备进行上下电处理”。若目标PCIE设备的故障类型为单次出现的不可修正非致命错误,PCIE故障处理模块向BMC发送一般告警信息,该告警信息可以用于向用户预警目标PCIE设备上出现的故障可能会影响目标PCIE设备的业务。
当目标PCIE设备的故障处理策略为第一策略或者第二策略时,由于第一策略和第二策略对应的目标PCIE设备的故障严重程度较轻,不会影响到目标PCIE的相关业务或者对目标PCIE设备的相关业务影响程度较轻。因此,在基于第一策略或者第二策略对目标PCIE设备的故障进行处理时,可以不对目标PCIE设备的相关业务进行处理,即PCIE故障处理模块不需要与业务模块进行交互。
若目标PCIE设备的故障处理策略为第三策略,PCIE故障处理模块需要向BMC发送严重告警信息,并触发PCIE故障处理模块启动PCIE设备故障恢复流程。
BMC在接收到PCIE故障处理模块发送的严重告警信息以后,还需要将接收到的严重告警信息在BMC的Web显示页面进行显示,该严重告警信息可以用于提示用户需要立即启动PCIE设备的故障恢复流程。其中,PCIE故障处理模块启动故障恢复流程包括:PCIE故障处理模块可以向服务器中的业务模块发送第一信息,第一信息中携带有发生故障的PCIE设备信息,第一信息用于指示业务模块停止与该PCIE设备相关的业务。PCIE故障处理模块在通知业务模块停止执行与故障PCIE设备相关的业务以后,PCIE故障处理模块还需要触发PCIE驱动模块中的Hotplug对故障的PCIE设备进行上下电处理。具体地,PCIE故障处理模块可以调用PCIE驱动中的remove/link reset/prob流程,使得服务器中的硬件可以支持PCIE设备对应的槽位上的上下电复位。在PCIE故障处理模块在执行完故障恢复流程以后,还需要向业务模块发送第二信息,第二信息携带有需要恢复业务流程的PCIE设备信息,第二信息用于指示业务模块恢复相应PCIE设备的业务流程。
在一个可能的示例中,PCIE故障处理模块可以在确定PCIE设备产生的故障为不可恢复的致命故障以后,自动启动PCIE设备故障恢复流程。此时,在BMC的Web显示页面显示的严重告警信息可以只是用于提示用户目标PCIE设备发生严重告警,PCIE故障修复模块正在进行修复,不需要用户再进行操作。
在另一个可能的示例中,在BMC的Web显示页面显示的严重告警信息用于提示目标PCIE设备发生严重告警,用户需要立即启动对目标PCIE设备的故障恢复流程。用户可以在BMC的Web显示页面上选择立即启动目标PCIE设备的故障恢复流程。BMC响应于用户的操作,可以向PCIE故障恢复模块发送信息,该信息用于指示PCIE故障恢复模块启动对目标PCIE设备的故障恢复。
接下来,以一个具体的示例,对本申请实施例提供的一种PCIE设备故障处理方法进行介绍。
在服务器运行过程中,若PCIE设备发生了故障,PCIE设备基于AER处理机制,对发生的错误的类型进行判断,并根据发生错误的类型生成与该错误类型对应的误码。比如,可修正错误对应的误码为00110000、不可修正的非致命错误对应的误码为00110001、不可修正的致命错误对应的误码为00110011。PCIE设备在生成误码以后,可以将该误码存储在PCIE设备上的故障状态寄存器中。
PCIE故障处理模块根据获取的PCIE设备ID,实时轮询对应的PCIE设备中的故障状态寄存器中存储的误码。然后,PCIE故障处理模块根据一个预设时间段内,获取的误码级别以及该级别误码出现的频次,对该PCIE设备发生的故障进行修复。其中,PCIE故障处理模块从PCIE设备上的故障状态寄存中获取的误码包括3种:00110000、00110001、00110011。
当PCIE故障处理模块获取的误码为00110000时,表示PCIE设备发生的故障为可修正故障,PCIE设备可以通过PCIE链路的重传修正机制对该故障进行修正。PCIE故障模块在确定PCIE设备发生的故障为可修正故障以后,还需要确定该故障发生的频率。具体地,当PCIE故障处理模块获取的误码为00110000时,可以记录1分内出现的误码个数,若1分钟内出现误码的个数小于5个可以认为该误码出现的频率为低频。若1分钟内出现误码的个数大于等于5可以认为该误码出现的频率为高频。
若该故障发生的频率为低频,PCIE故障处理模块可以触发服务器系统输出对应的日志记录。若该故障发送的频率为高频,预示PCIE链路可能存在问题,PCIE故障处理模块可以触发BMC中的告警模块生成告警信息,以及,PCIE故障处理模块还可以向BMC发送故障处理建议。比如,建议PCIE设备进行上电或者下电处理。其中,告警模块在生成相应的告警信息,还需要触发Web显示模块进行显示生成的告警信息和对应的处理建议。
当PCIE故障处理模块获取的误码为00110001时,表示PCIE设备发生的故障为不可修正的非致命故障,通过PCIE链路的重传机制已经无法修复该故障。此时,PCIE故障处理模块还需要确定误码00110001产生的次数,若误码00110001为单次出现,PCIE故障处理模块需要触发告警模块生成一般告警。其中,一般告警用于预警该故障可能会影响相应的PCIE业务。若误码00110001为多次出现,PCIE故障处理模块需要触发告警模块生成严重告警信息。在PCIE故障处理模块在确定误码00110001为多次出现以后,PCIE故障处理模块还需要启动故障恢复流程。
PCIE故障处理模块启动故障恢复流程包括:PCIE故障处理模块可以向业务模块发送第一信息,第一信息中携带有发生故障的PCIE设备信息,第一信息用于指示业务模块停止与该PCIE设备相关的业务。PCIE故障处理模块在通知业务模块停止执行与故障PCIE设备相关的业务以后,PCIE故障处理模块还需要触发PCIE驱动模块中的Hotplug对故障的PCIE设备进行上下电处理。具体地,PCIE故障处理模块可以调用PCIE驱动模块中的remove/linkreset/prob流程,使得服务器中的硬件可以支持PCIE设备对应的槽位上的上下电复位。在PCIE故障处理模块在执行完故障恢复流程以后,还需要向业务模块发送第二信息,第二信息携带有需要恢复业务流程的PCIE设备信息,第二信息用于指示业务模块恢复相应PCIE设备的业务流程。
在一个可能的示例中,PCIE故障处理模块可以在确定PCIE设备产生的故障为不可恢复的致命故障以后,自动启动PCIE设备故障恢复流程。PCIE故障处理模块还可以在向BMC方发送严重告警信息以后,响应于用户的触发操作,启动PCIE设备故障恢复流程。
当PCIE故障处理模块获取的误码为00110001时,表示PCIE设备发生的故障为不可修复的致命错误,已经影响到PCIE设备的业务,需要进行立即处理。此时,PCIE故障处理模块需要向BMC发送严重告警信息,并启动PCIE设备故障恢复流程。
PCIE故障处理模块启动故障恢复流程包括:PCIE故障处理模块需要向业务模块发送第一信息,第一信息中携带有发生故障的PCIE设备信息,第一信息用于指示业务模块停止与该PCIE设备相关的业务。PCIE故障处理模块在通知业务模块停止执行与故障PCIE设备相关的业务以后,PCIE故障处理模块还需要触发PCIE驱动模块中的Hotplug对故障的PCIE设备进行上下电处理。具体地,PCIE故障处理模块可以调用PCIE驱动模块中的remove/linkreset/prob流程,使得服务器中的硬件可以支持PCIE设备对应的槽位上的上下电复位。
在PCIE故障处理模块在执行完故障恢复流程以后,还需要向业务模块发送第二信息,第二信息携带有需要恢复业务流程的PCIE设备信息,第二信息用于指示业务模块恢复相应PCIE设备的业务流程。
在一个可能的示例中,PCIE故障处理模块可以在确定PCIE设备产生的故障为不可恢复的致命故障以后,自动启动PCIE设备故障恢复流程。PCIE故障处理模块还可以在向BMC方发送严重告警信息以后,响应于用户的触发操作,启动PCIE设备故障恢复流程。
在本申请实施例中,在服务器上电以后,通过BIOS使能PCIE设备的原生AER错误上报机制,以及使能热插拔功能。使得在PCIE设备发生故障以后,PCIE故障处理模块能够对PCIE设备故障进行在线恢复,避免了服务器重启,使得服务器上正在执行的业务不中断,增加了服务器的可靠性。以及,在PCIE设备发生故障以后,PCIE故障处理模块获取到该故障信息以后,根据故障的类型和频率,对不同程度的PCIE设备故障选择不同的处理策略,使得能够提前预警更严重的PCIE故障,提高了服务器的可靠性。
接下来,基于上文所描述的内容,对本申请一具体实施例提供的一种PCIE设备故障处理方法进行介绍。示例性的,图5示出了本申请实施例提供的一种PCIE设备故障处理方法的流程图。该方法可以由图3所示的服务器管理系统执行,服务器管理系统中可以包括:PCIE故障处理模块、业务模块、PCIE设备模块、显示模块和告警模块。其中,PCIE设备模块中包括PCIE驱动模块;PCIE故障处理模块、业务模块、PCIE设备模块可以由服务器系统中的CPU实现,显示模块和告警模块可以由服务器系统中的BMC实现。参见图5,该方法包括:步骤501-步骤505。
步骤501,获取目标PCIE设备的误码信息,目标PCIE设备为发生故障的PCIE设备。
在本实施例中,误码信息中携带有误码类型,误码类型包括:可修正错误、不可修正的非致命错误、不可修正的致命错误中的至少一种。
在服务器上电以后,BIOS触发PCIE驱动模块,使能PCIE AER和Hotplug能力。可以理解的是,AER是一种用于检测和报告PCIE设备中发生的错误的机制。AER允许PCIE设备检测到并报告各种类型的故障。比如,可修正故障、不可修正的非致命故障以及不可修正的致命故障。AER在PCIE设备上实现了一组寄存器和相应的故障通知机制,可以通过读取这些寄存器来获取关于故障的信息。通过AER机制,服务器系统能够更好地监控和处理PCIE设备的故障情况。
在服务器运行过程中,若服务器上的PCIE设备发生了故障,PCIE设备会根据发生的故障的类型,生成相应的误码,并将误码保存在PCIE设备的故障状态寄存器中。
服务器上的PCIE故障处理模块可以在服务器运行过程中轮询PCIE设备的故障寄存器,获取故障寄存器中存储的误码信息。
在一个可能的示例中,服务器管理系统中的PCIE故障处理模块可以通过MMIO获取PCIE设备的故障状态寄存器中存储的信息。
步骤502,确定误码信息指示的误码类型为不可修正的错误。
在本实施例中,PCIE故障处理模块可以根据获取的误码信息中包含的误码标识确定目标PCIE设备的误码类型。其中,本实施例中不可修正错误包括:不可修正的致命错误,以及不可修正的非致命错误,且不可修正的非致命错误在第一预设时间内参数所述误码的次数大于第一阈值。
步骤503,停止与目标PCIE设备相关的业务。
在本实施例中,PCIE故障处理模块可以向服务器中的业务模块发送第一信息,第一信息中携带有发生故障的PCIE设备信息,第一信息用于指示业务模块停止与该PCIE设备相关的业务。
步骤504,对目标PCIE设备进行下电/上电复位。
在本实施例中,PCIE故障处理模块在通知业务模块停止执行与故障PCIE设备相关的业务以后,PCIE故障处理模块还需要触发PCIE驱动模块中的Hotplug对故障的PCIE设备进行上下电处理。具体地,PCIE故障处理模块可以调用PCIE驱动中的remove/link reset/prob流程,使得服务器中的硬件可以支持PCIE设备对应的槽位上的上下电复位。
步骤505,对目标PCIE设备的相关资源进行重加载,恢复目标PCIE设备上的业务。
在本实施例中,在PCIE故障处理模块在执行完故障恢复流程以后,还需要向业务模块发送第二信息,第二信息携带有需要恢复业务流程的PCIE设备信息,第二信息用于指示业务模块恢复相应PCIE设备的业务流程。
在一个可能的示例中,在确定误码信息指示的误码类型为不可修正的错误以后,还可以向BMC发送严重告警信息。BMC在接收到PCIE故障处理模块发送的严重告警信息以后,还需要将接收到的严重告警信息在BMC的Web显示页面进行显示,该严重告警信息可以用于提示用户需要立即启动PCIE设备的故障恢复流程。
可以理解的事,步骤503-步骤505为对目标PCIE设备的在线故障修复过程,其中,具体的实现过程可以参照上述实施例中的步骤403,在此不再赘述。
接下来,基于上文所描述的内容,对本申请一具体实施例提供的一种PCIE设备故障处理方法进行介绍。示例性的,图6示出了本申请实施例提供的一种PCIE设备故障处理方法的流程图。该方法可以由图3所示的服务器管理系统执行。参见图6,该方法包括:步骤601-步骤604。
步骤601,BIOS使能PCIE AER能力和热插拔能力。
在本实施例中,在服务器上电以后,BIOS可以触发PCIE驱动模块,使能PCIE AER和Hotplug能力。
可以理解的是,AER是一种用于检测和报告PCIE设备中发生的错误的机制。AER允许PCIE设备检测到并报告各种类型的故障。比如,可修正故障、不可修正的非致命故障以及不可修正的致命故障。AER在PCIE设备上实现了一组寄存器和相应的故障通知机制,可以通过读取这些寄存器来获取关于故障的信息。通过AER机制,服务器系统能够更好地监控和处理PCIE设备的故障情况。
步骤602,PCIE故障处理模块获取PCIE设备模块中保存的PCIE设备的误码信息。
在本实施例中,在服务器运行过程中,若PCIE设备发生了故障,PCIE设备基于AER处理机制,对发生的错误的类型进行判断,并根据发生错误的类型生成与该错误类型对应的误码。比如,可修正错误对应的误码为00110000、不可修正的非致命错误对应的误码为00110001、不可修正的致命错误对应的误码为00110011。PCIE设备在生成误码以后,可以将该误码存储在PCIE设备上的故障状态寄存器中。然后,PCIE设备向Root Complex发送MSI消息,其中,MSI消息中携带有发生故障的PCIE设备的设备ID。Root Complex根据接收到的MSI消息,上报MSI中断给CPU进行处理。
PCIE故障模块可以获取MSI消息中携带的PCIE设备ID,PCIE故障处理模块根据获取的PCIE设备ID,轮询PCIE设备中的故障状态寄存器中存储的误码信息。
步骤603,PCIE故障处理模块根据获取的目标PCIE设备的误码类型和误码频率,确定目标PCIE设备的故障处理策略。
在本实施例中,PCIE设备的误码类型包括:可修正错误、不可修正的非致命错误、不可修正的致命错误。
若PCIE故障处理模块从PCIE设备的故障状态寄存器中获取的误码类型为可修正错误。PCIE故障处理模块还需要确定在第二预设时间内产生该误码的次数,若第二预设时间内产生误码的次数小于第二阈值,PCIE故障处理模块可以确定目标PCIE设备的故障处理策略为第一策略。若在第二预设时间内产生误码的次数大于等于第二阈值,PCIE故障处理模块可以确定目标PCIE设备的故障处理策略为第二策略。
若PCIE故障处理模块从PCIE设备的故障状态寄存器中获取的误码类型为不可修正的非致命错误。PCIE故障处理模块还需要确定在第一预设时间内产生该误码的次数,若第一预设时间内产生误码的次数小于等于第一阈值,PCIE故障处理模块可以确定目标PCIE设备的故障处理策略为第二策略。若在第一预设时间内产生误码的次数大于第一阈值,PCIE故障处理模块可以确定目标PCIE设备的故障处理策略为第三策略。
若PCIE故障处理模块从PCIE设备的故障状态寄存器中获取的误码的类型为不可修正的致命错误。此时,PCIE故障处理模块可以直接确定目标PCIE设备的故障处理策略为第三策略。
PCIE故障处理模块根据获取的目标PCIE设备的误码类型和产生误码的频率,确定目标PCIE设备的故障处理策略。具体的门限策略和处理策略可以参照上述实施例中的表1。
步骤604,PCIE故障处理模块根据目标PCIE设备的故障处理策略,对目标PCIE设备产生的故障进行处理。
在本实施例中,PCIE故障处理模块在确定目标PCIE设备的故障处理策略以后,就可以基于确定的目标PCIE设备的故障处理策略,对目标PCIE设备产生的故障进行处理。其中,PCIE故障处理模块基于第一策略对目标PCIE设备产生的故障进行处理的过程包括步骤6041,PCIE故障处理模块基于第二策略对目标PCIE设备产生的故障进行处理的过程包括步骤6042,PCIE故障处理模块基于第三策略对目标PCIE设备产生的故障进行处理的过程包括:步骤6043-步骤6048。
步骤6041,PCIE故障处理模块触发服务器系统生成包含目标PCIE设备故障的日志信息。
在本实施例中,PCIE故障处理模块可以触发服务器系统以一个固件的时间间隔生成一条日志信息,该日志信息中记录了目标PCIE设备的故障信息,比如,故障类型,故障发生频率等。
步骤6042,PCIE故障处理模块向BMC发送告警信息,该告警信息中携带有故障处理建议。
在本实施例中,PCIE故障处理模块需要向服务器上的BMC发送告警信息,在告警信息中还会携带有目标PCIE设备故障的处理建议。BMC在接收到PCIE故障处理模块发送的告警信息以后,还需要将接收到的告警信息在BMC的Web显示页面进行显示。
在一个可能的示例中,若目标PICE设备的故障类型为高频的可修正错误,PCIE故障处理模块向BMC发送告警信息,告警信息中携带有处理建议。比如,对该PCIE设备的故障处理建议为“触发目标PCIE设备进行上下电处理”。
在一个可能的示例中,若目标PCIE设备的故障类型为单次出现的不可修正非致命错误,PCIE故障处理模块向BMC发送一般告警信息,该告警信息可以用于向用户预警目标PCIE设备上出现的故障可能会影响目标PCIE设备的业务。
步骤6043,PCIE故障处理模块向BMC发送严重告警信息,该严重告警信息可以用于提示用户需要立即启动目标PCIE设备的故障恢复流程。
在本实施例中,PCIE故障处理模块需要向BMC发送严重告警信息,并触发PCIE故障处理模块启动PCIE设备故障恢复流程。
BMC在接收到PCIE故障处理模块发送的严重告警信息以后,还需要将接收到的严重告警信息在BMC的Web显示页面进行显示,该严重告警信息可以用于提示用户需要立即启动目标PCIE设备的故障恢复流程。其中,目标PCIE设备的故障恢复流程包括:步骤6064-步骤6068。
在一个可能的示例中,PCIE故障处理模块可以在确定目标PCIE设备产生的故障为不可恢复的致命故障以后,自动启动目标PCIE设备故障恢复流程。PCIE故障处理模块还可以在向BMC方发送严重告警信息以后,响应于用户的触发操作,启动目标PCIE设备故障恢复流程。
步骤6044,PCIE故障处理模块向业务模块发送第一信息,第一信息携带有发生目标PCIE设备的设备信息。
在本实施例中,PCIE故障处理模块需要向服务器中的业务模块发送第一信息,第一信息中携带有目标PCIE设备的设备信息,第一信息用于指示业务模块停止与目标PCIE设备相关的业务。
在一个可能的示例中,PCIE故障处理模块可以通过注册接口、执行命令、打印通知等方式与业务模块进行信息交互。
步骤6045,业务模块根据接收到的PCIE设备信息停止目标PCIE设备的业务流程。
在本实施例中,业务模块根据接收的PCIE设备信息确定目标PCIE设备,然后停止与目标PCIE设备相关的业务流程。
步骤6046,PCIE故障处理模块触发PCIE驱动模块对目标PCIE设备进行下电/上电处理。
在本实施例中,PCIE故障处理模块在通知业务模块停止执行与目标PCIE设备相关的业务以后,PCIE故障处理模块还需要触发PCIE驱动模块中的Hotplug对故障的目标PCIE设备进行上下电处理。具体地,PCIE故障处理模块可以调用PCIE原生驱动中的remove/linkreset/prob流程,使得服务器中的硬件可以支持PCIE设备对应的槽位上的上下电复位。
步骤6047,PCIE故障处理模块接收PCIE驱动模块发送的第二信息,第二信息用于指示PCIE驱动模块完成对目标PCIE设备的下电/上电处理。
在本实施例中,PCIE驱动模块在对目标PCEI设备进行上下电处理以后,PCIE驱动模块还需要向PCIE故障处理模块发送第二信息,以使PCIE故障处理模块可以进行下一步的处理。
步骤6048,PCIE故障处理模块向业务模块发送第三信息,第三信息携带有目标PCIE设备的设备信息,第三信息用于指示业务模块恢复PCIE设备的相关业务。
在本实施例中,在PCIE故障处理模块在执行完故障恢复流程以后,还需要向业务模块发送第三信息,第三信息携带有目标PCIE设备的设备信息,第三信息用于指示业务模块恢复木目标PCIE设备的业务流程。
可以理解的是,步骤6041、步骤6042、步骤6043-步骤6048对应的是三种不同的处理策略,它们之间是没有执行的先后顺序的。
在本申请实施例中,在服务器上电以后,通过BIOS使能PCIE设备的原生AER错误上报机制,以及使能热插拔功能。使得在PCIE设备发生故障以后,PCIE故障处理模块能够对PCIE设备故障进行在线恢复,避免了服务器重启,使得服务器上正在执行的业务不中断,增加了服务器的可靠性。以及,在PCIE设备发生故障以后,PCIE故障处理模块获取到该故障信息以后,根据故障的类型和频率,对不同程度的PCIE设备故障选择不同的处理策略,使得能够提前预警更严重的PCIE故障,提高了服务器的可靠性。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。另外,上述实施例中的任意特征的全部或部分在不矛盾的前提下,可以自由地、任何地组合。组合后的技术方案也在本申请的范围之内。
基于上述实施例中的方法,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机程序产品,其特征在于,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算设备,计算设备包括主板和芯片。其中,芯片集成在主板上,芯片包括至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行上述实施例中的方法。在本申请实施例中,计算设备可以是服务器、服务器等网络设备。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

Claims (10)

1.一种高速串行计算机扩展总线标准设备故障处理方法,其特征在于,应用于服务器,所述服务器包括高速串行计算机扩展总线标准PCIE设备,所述方法包括:
获取目标PCIE设备的误码信息,所述目标PCIE设备为发生故障的PCIE设备;
确定所述误码信息指示的误码类型为不可修正的错误;
停止与所述目标PCIE设备相关的业务;
对所述目标PCIE设备进行下电/上电复位;
对所述目标PCIE设备的相关资源进行重加载,恢复所述目标PCIE设备上的业务。
2.根据权利要求1所述的方法,其特征在于,所述确定所述误码信息指示的误码类型为不可修正的错误,包括:
根据所述误码信息确定所述误码信息指示的误码类型为不可修正的致命错误;或者,
根据所述误码信息确定所述误码信息指示的误码类型为不可修正的非致命错误,且在第一预设时间内产生所述误码的次数大于第一阈值。
3.根据权利要求1或2所述的方法,其特征在于,在确定所述误码信息指示的误码类型为不可修正的错误以后,所述方法还包括:
生成所述目标PCIE设备的告警信息;
通过所述服务器上的基板管理控制器BMC显示所述告警信息,所述告警信息包括所述目标PCIE设备的误码类型。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述获取目标PCIE设备的误码信息,包括:
轮询目标PCIE设备的故障状态寄存器,从所述目标PCIE设备的故障状态寄存器中获取所述目标PCIE设备产生的误码信息。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述获取目标PCIE设备的误码信息,包括:
通过内存映射输入输出系统MMIO从所述目标PCIE设备的故障状态寄存器中获取所述目标PCIE设备产生的误码信息。
6.一种服务器,其特征在于,所述服务器,包括:
PCIE故障处理模块,用于获取目标PCIE设备的误码信息,所述目标PCIE设备为发生故障的PCIE设备;
所述PCIE故障处理模块,还用于确定所述误码信息指示的误码类型为不可修正的错误;
业务模块,用于在所述误码信息指示的误码类型为不可修正错误的情况下,停止与所述目标PCIE设备相关的业务;
PCIE驱动模块,用于在所述误码信息指示的误码类型为不可修正的错误的情况下,对所述目标PCIE设备进行下电/上电复位;
所述业务模块,还用于对目标PCIE设备的相关资源进行重加载,恢复所述目标PCIE设备上的业务。
7.根据权利要求6所述的服务器,其特征在于,所述PCIE故障处理模块用于:
根据所述误码信息确定所述误码信息指示的误码类型为不可修正的致命错误;或者,
根据所述误码信息确定所述误码信息指示的误码类型为不可修正的非致命错误,且在第一预设时间内产生所述误码的次数大于第一阈值。
8.根据权利要求6或7所述的服务器,其特征在于,所述服务器还包括:
告警模块,用于根据目标PCIE设备的误码类型生成告警信息;
显示模块,用于显示所述告警信息,所述告警信息包括所述目标PCIE设备的误码类型。
9.根据权利要求6-8任一项所述的服务器,其特征在于,所述PCIE故障处理模块还用于:
通过内存映射输入输出系统MMIO从所述目标PCIE设备的故障状态寄存器中获取所述目标PCIE设备产生的误码信息。
10.一种服务器,其特征在于,包括:
至少一个存储器,用于存储程序;
至少一个处理器,用于执行存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于权利要求1-9中任一项所述的方法。
CN202410154491.9A 2024-02-02 2024-02-02 一种pcie设备故障处理方法及服务器 Pending CN118093265A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410154491.9A CN118093265A (zh) 2024-02-02 2024-02-02 一种pcie设备故障处理方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410154491.9A CN118093265A (zh) 2024-02-02 2024-02-02 一种pcie设备故障处理方法及服务器

Publications (1)

Publication Number Publication Date
CN118093265A true CN118093265A (zh) 2024-05-28

Family

ID=91164138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410154491.9A Pending CN118093265A (zh) 2024-02-02 2024-02-02 一种pcie设备故障处理方法及服务器

Country Status (1)

Country Link
CN (1) CN118093265A (zh)

Similar Documents

Publication Publication Date Title
TWI317868B (en) System and method to detect errors and predict potential failures
CN101126995B (zh) 处理严重硬件错误的方法及设备
US6742139B1 (en) Service processor reset/reload
US10296434B2 (en) Bus hang detection and find out
US20210019240A1 (en) Error recovery method and apparatus
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
US20160321127A1 (en) Determine when an error log was created
US11853150B2 (en) Method and device for detecting memory downgrade error
US7877643B2 (en) Method, system, and product for providing extended error handling capability in host bridges
US11263083B1 (en) Method and apparatus for selective boot-up in computing devices
US20170132102A1 (en) Computer readable non-transitory recording medium storing pseudo failure generation program, generation method, and generation apparatus
TWI777628B (zh) 電腦系統及其專用崩潰轉存硬體裝置與記錄錯誤資料之方法
JP5689783B2 (ja) コンピュータ、コンピュータシステム、および障害情報管理方法
CN118093265A (zh) 一种pcie设备故障处理方法及服务器
CN116089139A (zh) 一种串口硬盘故障处理方法、装置、介质
CN111475378B (zh) 一种扩展器Expander的监控方法、装置及设备
CN111190781A (zh) 服务器系统的测试自检方法
JPH11120154A (ja) コンピュータシステムにおけるアクセス制御装置および方法
CN117687821A (zh) 高速缓冲存储器坏块的处理方法、装置和电子设备
US7962781B2 (en) Control method for information storage apparatus, information storage apparatus and computer readable information recording medium
CN117056114A (zh) 一种ipmi命令处理方法、装置、系统及电子设备
CN116155703A (zh) 一种网络器件故障修复方法、系统、电子设备及介质
CN107451035B (zh) 用于计算机装置的错误状态数据提供方法
TW424178B (en) Device and method for control power arbitration of data process system
CN116820822A (zh) 一种读写链路控制方法、装置、介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination