CN115033441A - PCIe设备故障检测方法、装置、设备和存储介质 - Google Patents
PCIe设备故障检测方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN115033441A CN115033441A CN202210760615.9A CN202210760615A CN115033441A CN 115033441 A CN115033441 A CN 115033441A CN 202210760615 A CN202210760615 A CN 202210760615A CN 115033441 A CN115033441 A CN 115033441A
- Authority
- CN
- China
- Prior art keywords
- current
- pcie
- bandwidth
- maximum supported
- field value
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000008439 repair process Effects 0.000 claims description 9
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006854 communication Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- 230000007096 poisonous effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2247—Verification or detection of system hardware configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种PCIe设备故障检测方法、装置、设备和存储介质。主要技术方案包括:获取PCIe设备的最大支持带宽和最大支持速率,获取PCIe设备的当前带宽、当前速率和当前链路信息,根据当前带宽、当前速率、最大支持带宽和最大支持速率,检测PCIe设备,得到第一检测结果,根据当前链路信息和预设故障字段值,检测PCIe设备,得到第二检测结果,根据第一检测结果和/或第二检测结果,检测PCIe设备的故障。本申请对硬件结构无特殊要求,能够及时准确地检测多个PCIe设备的故障,具有较好的兼容性。
Description
技术领域
本申请涉及服务器测试技术领域,特别是涉及一种PCIe设备故障检测方法、装置、设备和存储介质。
背景技术
高速串行计算机扩展(Peripheral Component Interconnect Express,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设备。
根据本申请实施例中一种可实现的方式,根据故障日志,修复PCIe设备,包括:
当故障日志包括降级故障时,自动对PCIe设备进行下电和上电操作以修复故障;
当故障日志包括链路故障时,重新写入所述当前链路信息中的字段值。
第二方面,提供了一种PCIe设备故障检测装置,该装置包括:
获取模块,用于获取PCIe设备的最大支持带宽和最大支持速率;
获取模块,还用于获取PCIe设备的当前带宽、当前速率和当前链路信息;
检测模块,用于根据当前带宽、当前速率、最大支持带宽和最大支持速率,检测PCIe设备,得到第一检测结果;
检测模块,还用于根据当前链路信息和预设故障字段值,检测PCIe设备,得到第二检测结果;
检测模块,还用于根据第一检测结果和/或第二检测结果,检测PCIe设备的故障。
第三方面,提供了一种计算机设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机指令,所述计算机指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面中涉及的方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令用于使计算机执行上述第一方面中涉及的方法。
根据本申请实施例所提供的技术内容,获取PCIe设备的最大支持带宽和最大支持速率,获取PCIe设备的当前带宽、当前速率和当前链路信息,根据当前带宽、当前速率、最大支持带宽和最大支持速率,检测PCIe设备,得到第一检测结果,根据当前链路信息和预设故障字段值,检测PCIe设备,得到第二检测结果,根据第一检测结果和/或第二检测结果,检测PCIe设备的故障,对硬件结构没有特殊要求,进而能够及时准确地检测多个PCIe设备的故障,具有较好的兼容性。
附图说明
图1为一个实施例中PCIe设备故障检测方法的应用环境图;
图2为一个实施例中PCIe设备故障检测方法的流程示意图;
图3为一个实施例中Link Capabilities寄存器的结构示意图;
图4为一个实施例中Link Capabilities 2寄存器的结构示意图;
图5为一个实施例中PCI Link status寄存器的结构示意图;
图6为一个实施例中PCIe设备故障检测装置的结构框图;
图7为一个实施例中计算机设备的示意性结构图。
具体实施方式
以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供了一种PCIe设备故障检测方法、装置、设备及计算机存储介质。下面首先对本申请实施例所提供的PCIe设备故障检测方法进行介绍。
本申请提供的PCIe设备故障检测方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。服务器104获取PCIe设备的最大支持带宽和最大支持速率以及PCIe设备的当前带宽、当前速率和当前链路信息。根据当前带宽、当前速率、最大支持带宽和最大支持速率,检测PCIe设备,得到第一检测结果。根据当前链路信息和预设故障字段值,检测PCIe设备,得到第二检测结果。根据第一检测结果和/或第二检测结果,检测PCIe设备的故障。服务器104将故障信息通过网络发送至终端102。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图2示出了本申请一个实施例提供的PCIe设备故障检测方法的流程示意图。如图2所示,该方法可以包括以下步骤:
S210,获取PCIe设备的最大支持带宽和最大支持速率。
在系统上电后,启动健康监测服务程序。健康监测服务程序初始化后,用户可以配置PCIe设备的监测时间间隔,获取PCIe设备列表、最大支持带宽和最大支持速率等。
最大支持带宽为PCIe设备能够支持的最大带宽,最大支持速率为PCIe设备运行支持的最大连接速率。PCIe设备的工作带宽和工作速率都不会超过最大支持带宽和最大支持速率。
S220,获取PCIe设备的当前带宽、当前速率和当前链路信息。
健康监测服务程序按照配置的监测时间间隔,定期遍历系统内的PCIe设备,获取PCIe设备当前的运行信息,可以包括当前带宽、当前速率和当前链路信息。
S230,根据当前带宽、当前速率、最大支持带宽和最大支持速率,检测PCIe设备,得到第一检测结果。
第一检测结果包括PCIe设备带宽正常、PCIe设备速率正常、PCIe设备带宽异常和PCIe设备速率异常。
若当前带宽等于最大支持带宽,表明带宽未降级,则检测到PCIe设备带宽正常。若当前带宽小于最大支持带宽,表明带宽降级,则检测到PCIe设备带宽异常。
若当前速率等于最大支持速率,表明速率未降级,则检测到PCIe设备速率正常。若当前速率小于最大支持速率,表明速率降级,则检测到PCIe设备速率异常。
S240,根据当前链路信息和预设故障字段值,检测PCIe设备,得到第二检测结果。
第二检测结果包括当前链路异常和当前链路异常,当前链路信息包括预设字段位置的字段值。
若当前链路信息包括预设故障字段值,即,预设字段位置的字段值等于预设故障字段值,则检测到PCIe设备的当前链路异常。若当前链路信息不包括预设故障字段值,即,预设字段位置的字段值不等于预设故障字段值,则检测到PCIe设备的当前链路正常。其中预设故障字段值为1。
S250,根据第一检测结果和/或第二检测结果,检测PCIe设备的故障。
PCIe设备的故障包括以下情况:
A、PCIe设备带宽异常和/或PCIe设备速率异常;
B、PCIe设备的当前链路异常;
C、PCIe设备带宽异常和/或PCIe设备速率异常,且PCIe设备的当前链路异常。
根据第一检测结果和/或第二检测结果,能够及时准确地检测PCIe设备的故障,只有在PCIe设备带宽正常、PCIe设备速率正常,且PCIe设备的当前链路正常时,才会检测到PCIe设备正常。
可以看出,本申请实施例通过获取PCIe设备的最大支持带宽和最大支持速率,获取PCIe设备的当前带宽、当前速率和当前链路信息,根据当前带宽、当前速率、最大支持带宽和最大支持速率,检测PCIe设备,得到第一检测结果,根据当前链路信息和预设故障字段值,检测PCIe设备,得到第二检测结果,根据第一检测结果和/或第二检测结果,检测PCIe设备的故障,对硬件结构没有特殊要求,能够及时准确地检测多个PCIe设备的故障,具有较好的兼容性。
下面对上述方法流程中的各步骤进行详细描述。首先结合实施例对上述步骤S210即“获取PCIe设备的最大支持带宽和最大支持速率”进行详细描述。
作为一种可实现的方式,获取预设配置文件;
根据预设配置文件,获取最大支持带宽和最大支持速率。
用户通过输入界面将PCIe设备所支持的最大支持带宽、最大支持速率写入配置文件,得到预设配置文件。预设配置文件格式可以为:
设备1BDF地址:最大支持带宽,最大支持速率
设备2BDF地址:最大支持带宽,最大支持速率
…
设备x BDF地址:最大支持带宽,最大支持速率
其中,BDF为PCIe设备的地址,其中,B表示总线号,D表示设备号,F表示功能号。
示例性的,配置文件格式为:3e:00.0:x16,16,表示BDF为3e:00.0的设备,最大支持带宽为x16,最大支持速率为16GT/s。
通过获取预设配置文件,可以直接获取PCIe设备最大支持带宽和最大支持速率。
作为另一种可实现的方式,当未获取到预设配置文件时,通过读取第二连接能力寄存器,获取最大支持带宽对应的第三字段值和最大支持速率对应的第四字段值;
根据第三字段值,获取最大支持带宽;
根据第四字段值对应的字段位置,通过读取第一连接能力寄存器获取最大支持速率。
第二连接能力寄存器为Link Capabilities寄存器,第一连接能力寄存器为LinkCapabilities 2寄存器。
如图3所示,Link Capabilities寄存器的0-3位的字段用于获取最大支持速率,4-9位的字段用于记录最大支持宽带。其中,0-3位的字段记录了最大支持速率在LinkCapabilities 2寄存器的支持连接速率容器,即Supported Link Speeds Vector中的位置。Supported Link Speeds Vector中记录了不同的位置对应的速率。
0-3位可以表示以下几种字段:
0001b Supported Link Speeds Vector field bit 0
0010b Supported Link Speeds Vector field bit 1
0011b Supported Link Speeds Vector field bit 2
0100b Supported Link Speeds Vector field bit 3
0101b Supported Link Speeds Vector field bit 4
0110b Supported Link Speeds Vector field bit 5
0111b Supported Link Speeds Vector field bit 6
4-9位可以表示以下几种字段:
000001b x1
000010b x2
000100b x4
001000b x8
001100b x12
010000b x16
100000b x32
如图4所示,Link Capabilities 2寄存器的1-7位表示Supported Link SpeedsVector,其对应的字段用于记录PCIe设备的速率列表,速率列表可以包括当前速率和最大支持速率。
1-7位可以表示以下几种字段:
Bit 0 2.5GT/s
Bit 1 5.0GT/s
Bit 2 8.0GT/s
Bit 3 16.0GT/s
Bit 4 32.0GT/s
其余bit预留
通过读取Link Capabilities寄存器获取最大支持带宽对应的第三字段值和最大支持速率对应的第四字段值。第三字段值为4-9位的字段内的字段值,第四字段值为0-3位的字段内的字段值。
根据第三字段值参考4-9位的字段,获取该PCIe设备的最大支持带宽。比如说,第三字段值为000001b,那么,获取到的最大支持带宽为x1。
根据第四字段值参考0-3位的字段,获取到该PCIe设备的最大支持速率所在LinkCapabilities 2寄存器中的字段位置。通过读取Link Capabilities 2寄存器获取最大支持速率。
例如,第四字段值为0001b,那么,该PCIe设备的最大支持速率为LinkCapabilities2寄存器中bit 0的字段值。参考Link Capabilities 2寄存器中1-7位的字段可知,Bit 0对应的字段值为2.5GT/s,也就是说,该PCIe设备的最大支持速率为2.5GT/s。
下面结合实施例对上述步骤S220即“获取PCIe设备的当前带宽、当前速率和当前链路信息”进行详细描述。
作为一种可实现的方式,获取PCIe设备的当前带宽和当前速率的方法包括:
通过读取外围组件互连连接状态寄存器,获取当前带宽对应的第一字段值和当前速率对应的第二字段值;
根据第一字段值,获取当前带宽;
根据第二字段值对应的字段位置,通过读取第一连接能力寄存器获取当前速率。
外围组件互连连接状态寄存器为PCI Link status寄存器。如图5所示,PCI Linkstatus寄存器的0-3位的字段用于获取最大支持速率,4-9位的字段用于记录最大支持宽带。其中,0-3位的字段记录了最大支持速率在Link Capabilities 2寄存器的支持连接速率容器,即Supported Link Speeds Vector中的位置。Supported Link Speeds Vector中记录了不同的位置对应的速率。
0-3位可以表示以下几种字段:
0001b Supported Link Speeds Vector field bit 0
0010b Supported Link Speeds Vector field bit 1
0011b Supported Link Speeds Vector field bit 2
0100b Supported Link Speeds Vector field bit 3
0101b Supported Link Speeds Vector field bit 4
0110b Supported Link Speeds Vector field bit 5
0111b Supported Link Speeds Vector field bit 6
4-9位可以表示以下几种字段:
000001b x1
000010b x2
000100b x4
001000b x8
001100b x12
010000b x16
100000b x32
通过读取PCI Link status寄存器获取当前带宽对应的第一字段值和当前速率对应的第二字段值。第一字段值为4-9位的字段内的字段值,第二字段值为0-3位的字段内的字段值。
根据第一字段值参考4-9位的字段,获取该PCIe设备的当前带宽。比如说,第一字段值为000010b,那么,获取到的最大支持带宽为x2。
根据第二字段值参考0-3位的字段,获取到该PCIe设备的当前速率所在LinkCapabilities 2寄存器中的字段位置。通过读取Link Capabilities 2寄存器获取当前速率。
例如,第二字段值为0010b,那么,该PCIe设备的当前速率为Link Capabilities 2寄存器中bit 1的字段值。参考Link Capabilities 2寄存器中1-7位的字段可知,Bit 1对应的字段值为5.0GT/s,也就是说,该PCIe设备的当前速率为5.0GT/s。
作为一种可实现的方式,获取PCIe设备的当前链路信息的方法包括:
通过读取状态寄存器,获取PCIe设备的预设字段位置对应的字段值。
状态寄存器为Status寄存器。预设字段位置可以包括bit8、bit11、bit12、bit13、bit14和bit15。预设字段位置对应的字段值包括0和1。
通过读取Status寄存器,若获取PCIe设备的预设字段位置对应的字段值为0,则表示当前链路正常。
若获取PCIe设备的预设字段位置对应的字段值为1,则表示当前链路异常,具体异常情况包括:
若bit8的字段值为1,表示当前链路中主数据奇偶校验错误,即,Master DataParity Error,说明PCIe设备接收到了有问题的完成消息,或者发送了有问题的请求。
若bit11的字段值为1,表示当前链路中信号目标中止,即,Signaled TargetAbort,说明PCIe设备向目标设备进行数据传递时,无需等待数据最终达到目的地就能结束当前总线任务的请求,或需等待数据最终达到目的地才能结束当前总线任务的请求完成时发生了完成被中止错误。
若bit12的字段值为1,表示当前链路中接收目标中止,即,Received TargetAbort,说明PCIe设备发送的请求收到的完成消息的状态为完成器中止完成状态。
若bit13的字段值为1,表示当前链路中接收的主数据中止,即,Received TargetAbort,说明PCIe设备发送的请求收到的完成消息的状态为不支持的请求完成状态。
若bit14的字段值为1,表示当前链路中信号系统错误,即,Signaled SystemError,说明PCIe设备发送了一个致命错误或者非致命错误。
若bit15的字段值为1,表示当前链路中检测到了奇偶校验错误,即,DetectedParity Error,说明PCIe设备接收到了有毒的总线事务层包。
作为一种可实现的方式,在检测到PCIe设备发生故障后,该方法还包括:
根据故障日志,修复PCIe设备,并记录修复PCIe设备的次数;
当在预设时间内修复PCIe设备的次数大于预设次数时,禁用PCIe设备。
当检测到PCIe设备发生故障时,记录故障日志,并向用户终端上报告警信息以通知用户,告警方式包括并不限于:界面弹窗、扬声器警报、邮件、短信等通知方式。
故障日志包括降级故障和链路故障。由当前带宽和/或当前速率小于PCIe设备的最大支持值引起的故障称为降级故障,由当前链路信息中包括预设故障字段引起的故障称为链路故障。
当故障日志包括降级故障时,自动对PCIe设备进行下电和上电操作以修复故障。
通过自动对PCIe设备进行下电和上电操作重置PCIe设备以修复故障,可以通过以下方法修复PCIe设备的故障:
若PCIe设备中存在复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)连接PCIe设备的电源,基板管理控制器(Baseboard Management Controller,BMC)通过相应接口连接到CPLD,则通过BMC向CPLD发送下电和上电的信号,从而控制PCIe设备的关闭和开启。
若PCIe设备中未设置上述电路结构,则可以通过操作PCIe设备的寄存器重置PCIe链路。具体地,将该PCIe设备上级PCIe桥设备的Link Control寄存器中的link disablebit先写入1,禁用当前链路,再写入0,开启当前链路。
也可以通过该PCIe设备上级PCIe桥设备的Link Control寄存器中的Retrainlink bit写入1,重新训练链路连接。
还可以通过该PCIe设备上级PCIe桥设备的slot control寄存器中的PowerController Control bit写入1下电,在写入0上电进行软件上下电。
当故障日志包括链路故障时,重新写入所述当前链路信息中的字段值,重新写入的字段值为1。由于链路通信过程中记录错误,不需要修复,只需要对故障的字段位置的字段值写入1,当下次读取Status寄存器时,故障的字段位置的字段值为0,达到清楚本次错误的效果,不影响下次检测PCIe设备的准确性。
记录修复PCIe设备的次数,当在预设时间内修复PCIe设备的次数大于预设次数时,则认为该PCIe设备已极不稳定,禁用该PCIe设备避免故障扩散影响系统稳定,并告警通知用户及时更换。其中,预设时间和预设次数可根据用户需求自行设置,此处不做限定。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本申请中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图6为本申请实施例提供的一种PCIe设备故障检测装置的结构示意图,用以执行如图2中所示的方法流程。如图6所示,该装置可以包括:获取模块610和检测模块620,还可以进一步包括:修复模块。其中各组成模块的主要功能如下:
获取模块610,用于获取PCIe设备的最大支持带宽和最大支持速率;
获取模块610,还用于获取PCIe设备的当前带宽、当前速率和当前链路信息;
检测模块620,用于根据当前带宽、当前速率、最大支持带宽和最大支持速率,检测PCIe设备,得到第一检测结果;
检测模块620,还用于根据当前链路信息和预设故障字段值,检测PCIe设备,得到第二检测结果;
检测模块620,还用于根据第一检测结果和/或第二检测结果,检测PCIe设备的故障。
作为一种可实现的方式,获取模块610,具体用于通过读取外围组件互连连接状态寄存器,获取当前带宽对应的第一字段值和当前速率对应的第二字段值;
根据第一字段值,获取当前带宽;
根据第二字段值对应的字段位置,通过读取第一连接能力寄存器获取当前速率。
作为一种可实现的方式,获取模块610,具体用于获取预设配置文件;
根据预设配置文件,获取最大支持带宽和最大支持速率。
作为一种可实现的方式,获取模块610,具体用于当未获取到预设配置文件时,通过读取第二连接能力寄存器,获取最大支持带宽对应的第三字段值和最大支持速率对应的第四字段值;
根据第三字段值,获取最大支持带宽;
根据第四字段值对应的字段位置,通过读取第一连接能力寄存器获取最大支持速率。
作为一种可实现的方式,当前链路信息包括预设字段位置对应的字段值;获取模块610,具体用于
作为一种可实现的方式,通过读取状态寄存器,获取PCIe设备的预设字段位置对应的字段值。
作为一种可实现的方式,该装置还包括修复模块,用于在检测到PCIe设备发生故障后,根据故障日志,修复PCIe设备,并记录修复PCIe设备的次数;
当在预设时间内修复PCIe设备的次数大于预设次数时,禁用PCIe设备。
作为一种可实现的方式,修复模块,具体用于当故障日志包括降级故障时,自动对PCIe设备进行下电和上电操作以修复故障;
当故障日志包括链路故障时,重新写入所述当前链路信息中的字段值。
上述各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
根据本申请的实施例,本申请还提供了一种计算机设备、一种计算机可读存储介质。
如图7所示,是根据本申请实施例的计算机设备的框图。计算机设备旨在表示各种形式的数字计算机或移动装置。其中数字计算机可以包括台式计算机、便携式计算机、工作台、个人数字助理、服务器、大型计算机和其它适合的计算机。移动装置可以包括平板电脑、智能电话、可穿戴式设备等。
如图7所示,设备700包括计算单元701、ROM 702、RAM 703、总线704以及输入/输出(I/O)接口705,计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
计算单元701可以根据存储在只读存储器(ROM)702中的计算机指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机指令,来执行本申请方法实施例中的各种处理。计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701可以包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。在一些实施例中,本申请实施例提供的方法可被实现为计算机软件程序,其被有形地包含于计算机可读存储介质,例如存储单元708。
RAM 703还可存储设备700操作所需的各种程序和数据。计算机程序的部分或者全部可以经由ROM 802和/或通信单元709而被载入和/或安装到设备700上。
设备700中的输入单元706、输出单元707、存储单元708和通信单元709可以连接至I/O接口705。其中,输入单元706可以是诸如键盘、鼠标、触摸屏、麦克风等;输出单元707可以是诸如显示器、扬声器、指示灯等。设备700能够通过通信单元709与其他设备进行信息、数据等的交换。
需要说明的是,该设备还可以包括实现正常运行所必需的其他组件。也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件和/或它们的组合中实现。
用于实施本申请的方法的计算机指令可以采用一个或多个编程语言的任何组合来编写。这些计算机指令可以提供给计算单元701,使得计算机指令当由诸如处理器等计算单元701执行时使执行本申请方法实施例中涉及的各步骤。
本申请提供的计算机可读存储介质可以是有形的介质,其可以包含或存储计算机指令,用以执行本申请方法实施例中涉及的各步骤。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的等形式的存储介质。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种PCIe设备故障检测方法,其特征在于,所述方法包括:
获取PCIe设备的最大支持带宽和最大支持速率;
获取所述PCIe设备的当前带宽、当前速率和当前链路信息;
根据所述当前带宽、所述当前速率、所述最大支持带宽和所述最大支持速率,检测所述PCIe设备,得到第一检测结果;
根据所述当前链路信息和预设故障字段值,检测所述PCIe设备,得到第二检测结果;
根据所述第一检测结果和/或所述第二检测结果,检测所述PCIe设备的故障。
2.根据权利要求1所述的方法,其特征在于,所述获取PCIe设备的当前带宽和当前速率,包括:
通过读取外围组件互连连接状态寄存器,获取所述当前带宽对应的第一字段值和所述当前速率对应的第二字段值;
根据所述第一字段值,获取所述当前带宽;
根据所述第二字段值对应的字段位置,通过读取第一连接能力寄存器获取所述当前速率。
3.根据权利要求1所述的方法,其特征在于,所述获取PCIe设备的最大支持带宽和最大支持速率,包括:
获取预设配置文件;
根据所述预设配置文件,获取所述最大支持带宽和所述最大支持速率。
4.根据权利要求3所述的方法,其特征在于,所述获取PCIe设备的最大支持带宽和最大支持速率,包括:
当未获取到所述预设配置文件时,通过读取第二连接能力寄存器,获取所述最大支持带宽对应的第三字段值和所述最大支持速率对应的第四字段值;
根据所述第三字段值,获取所述最大支持带宽;
根据所述第四字段值对应的字段位置,通过读取第一连接能力寄存器获取所述最大支持速率。
5.根据权利要求1所述的方法,其特征在于,所述当前链路信息包括所述预设字段位置对应的字段值;所述获取PCIe设备的当前链路信息,包括:
通过读取状态寄存器,获取PCIe设备的预设字段位置对应的字段值。
6.根据权利要求1所述的方法,其特征在于,在检测到所述PCIe设备发生故障后,所述方法还包括:
根据故障日志,修复所述PCIe设备,并记录修复所述PCIe设备的次数;
当在预设时间内修复所述PCIe设备的次数大于预设次数时,禁用所述PCIe设备。
7.根据权利要求6所述的方法,其特征在于,所述根据故障日志,修复所述PCIe设备,包括:
当所述故障日志包括降级故障时,自动对PCIe设备进行下电和上电操作以修复故障;
当所述故障日志包括链路故障时,重新写入所述当前链路信息中的字段值。
8.一种PCIe设备故障检测装置,其特征在于,所述装置包括:
获取模块,用于获取PCIe设备的最大支持带宽和最大支持速率;
所述获取模块,还用于获取所述PCIe设备的当前带宽、当前速率和当前链路信息;
检测模块,用于根据所述当前带宽、所述当前速率、所述最大支持带宽和所述最大支持速率,检测所述PCIe设备,得到第一检测结果;
所述检测模块,还用于根据所述当前链路信息和预设故障字段值,检测所述PCIe设备,得到第二检测结果;
所述检测模块,还用于根据所述第一检测结果和/或所述第二检测结果,检测所述PCIe设备的故障。
9.一种计算机设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机指令,所述计算机指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210760615.9A CN115033441A (zh) | 2022-06-29 | 2022-06-29 | PCIe设备故障检测方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210760615.9A CN115033441A (zh) | 2022-06-29 | 2022-06-29 | PCIe设备故障检测方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115033441A true CN115033441A (zh) | 2022-09-09 |
Family
ID=83128844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210760615.9A Pending CN115033441A (zh) | 2022-06-29 | 2022-06-29 | PCIe设备故障检测方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033441A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573455A (zh) * | 2024-01-16 | 2024-02-20 | 苏州元脑智能科技有限公司 | 一种pcie设备检测系统、方法、装置及产品 |
-
2022
- 2022-06-29 CN CN202210760615.9A patent/CN115033441A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573455A (zh) * | 2024-01-16 | 2024-02-20 | 苏州元脑智能科技有限公司 | 一种pcie设备检测系统、方法、装置及产品 |
CN117573455B (zh) * | 2024-01-16 | 2024-04-05 | 苏州元脑智能科技有限公司 | 一种pcie设备检测系统、方法、装置及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI553650B (zh) | 以記憶體控制器來處理資料錯誤事件之方法、設備及系統 | |
US20090150721A1 (en) | Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System | |
CN112732477B (zh) | 一种带外自检故障隔离的方法 | |
US20080270827A1 (en) | Recovering diagnostic data after out-of-band data capture failure | |
CN111949457A (zh) | 服务器故障芯片检测方法及装置 | |
CN111988196B (zh) | 一种带宽检测方法、装置、电子设备和存储介质 | |
US10514972B2 (en) | Embedding forensic and triage data in memory dumps | |
CN107239372B (zh) | 电子装置及其检测方法 | |
JP2005135407A (ja) | 電圧マージニングを使用してコンピュータシステムのコンポーネントをテストするシステムおよび方法 | |
CN115033441A (zh) | PCIe设备故障检测方法、装置、设备和存储介质 | |
CN113672306B (zh) | 服务器组件自检异常恢复方法、装置、系统及介质 | |
US8391162B2 (en) | Apparatus and method for testing SMNP cards | |
CN116539992A (zh) | 存储设备在位稳定状态检测装置、方法、逻辑模块及介质 | |
CN116069538A (zh) | 一种故障修复方法、装置、电子设备及存储介质 | |
CN111475186A (zh) | 一种基于bmc的固件升级方法、装置、设备及介质 | |
CN115098294B (zh) | 异常事件的处理方法、电子设备及管理终端 | |
KR101001071B1 (ko) | 메모리 비트 정정 보고 방법 및 장치 | |
CN115509978A (zh) | 一种外插设备物理位置确定方法、装置、设备及存储介质 | |
CN115509786A (zh) | 一种报告故障的方法、装置、设备及介质 | |
US20050188260A1 (en) | Computer system maintenance and diagnostics techniques | |
CN116955129A (zh) | 代码功能和测试用例映射的自动生成 | |
US10565076B2 (en) | Device for supervising and initializing ports | |
CN112596983A (zh) | 一种服务器内连接器的监测方法 | |
CN110825572A (zh) | I2c设备地址的探测方法、装置、系统及电子设备 | |
CN109710495A (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 |