CN111371582B - 一种pcie链路故障的处理方法及装置 - Google Patents
一种pcie链路故障的处理方法及装置 Download PDFInfo
- Publication number
- CN111371582B CN111371582B CN201811602868.3A CN201811602868A CN111371582B CN 111371582 B CN111371582 B CN 111371582B CN 201811602868 A CN201811602868 A CN 201811602868A CN 111371582 B CN111371582 B CN 111371582B
- Authority
- CN
- China
- Prior art keywords
- pcie
- node device
- pcie node
- downstream
- controller
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
- H04L41/0661—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
Abstract
本发明公开了一种PCIE链路故障的处理方法及装置。该方法包括:PCIE节点设备检测到与第一下游PCIE节点设备之间的链路发生故障后,停止PCIE节点设备与每个下游PCIE节点设备之间的数据传输,并将第一下游PCIE节点设备中的第一PCIE控制器置复位,以及将PCIE节点设备中与第一PCIE控制器对应的第二PCIE控制器置复位,再恢复PCIE节点设备与每个下游PCIE节点设备之间的数据传输。相比于现有技术对整个PCIE系统进行复位的方式而言,本发明实施例只需要复位故障链路两侧节点设备中的PCIE控制器,大大缩短了PCIE链路故障的处理时间,减小对PCIE系统运行的影响。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种快速外设部件互联(PeripheralComponent Interconnect Express,PCIE)链路故障的处理方法及装置。
背景技术
PCIE总线是应用于通信系统中各组件之间传输数据的高性能总线。在PCIE系统中采用点对点连接方式,每一对互连的组件之间都拥有独立的PCIE总线,各组件之间并发进行数据传输互不影响。由于采用点对点的互连技术,通过PCIE交换芯片(Switch,SW)还可以灵活扩展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节点设备包括多个进程;
所述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节点设备对应的设备信息。
在一种可能的实现方式中,所述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控制器对应的第二PCIE控制器置复位之后,在所述恢复单元恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输之前,所述处理单元还用于:
通过所述第二进程若确定所述状态机的当前状态为正常状态,则重新扫描所述第一下游PCIE节点设备,并存储所述第一下游PCIE节点设备对应的设备信息。
在一种可能的实现方式中,在所述处理单元通过第二进程控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位之后,在所述恢复单元恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输之前,所述处理单元还用于:
通过所述第二进程若确定所述状态机的当前状态为异常状态,且置复位的次数大于预设阈值,则停止工作。
本发明实施例还提供一种装置,所述装置可以为设备或服务器,所述装置包括:
存储器,用于存储软件程序;
处理器,用于读取所述存储器中的软件程序并执行上述各种可能的实现方式中所描述的PCIE链路故障的处理方法。
本发明实施例还提供一种计算机存储介质,所述存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时实现上述各种可能的实现方式中所描述的PCIE链路故障的处理方法。
本发明实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种可能的实现方式中所描述的PCIE链路故障的处理方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例适用的一种PCIE系统的系统架构示意图;
图2为本发明实施例提供的一种PCIE链路故障的处理方法所对应的流程示意图;
图3为本发明实施例涉及的整体性流程的示意图;
图4为本发明实施例提供的一种PCIE链路故障的处理装置的结构示意图。
具体实施方式
下面结合说明书附图对本申请进行具体说明,方法实施例中的具体操作方法也可以应用于装置实施例中。
针对链路故障的处理,现有的一种处理方式为对整个PCIE系统进行复位。然而,这种方式容易导致系统出复位后各模块初始化时间长,业务中断时间也较长,此外,复位整个PCIE系统对整个系统运行影响比较大。
基于此,本发明实施例提供一种PCIE链路故障的处理方法,进而解决现有技术中复位整个PCIE系统对整个系统运行影响比较大的问题。
图1示例性示出了本发明实施例适用的一种PCIE系统的系统架构示意图,如图1所示,本发明实施例适用的PCIE系统100可以包括PCIE节点设备101和至少一个下游PCIE节点设备。其中,PCIE节点设备101可以为PPC处理器;下游PCIE节点设备可以为多种类型的设备,例如,下游PCIE节点设备可以是FPGA处理器,如图1中示出的现场可编程门阵列(FieldProgrammable Gate Array,FPGA)处理器102;或者,下游PCIE节点设备可以是进阶精简指令集机器(Advanced RISC Machines,ARM)处理器,如图1中示出的ARM处理器1031、ARM处理器1032、ARM处理器1033和ARM处理器1034。
本发明实施例中,PCIE节点设备101与各下游PCIE节点设备(如图1中示出的FPGA处理器102、ARM处理器1031、ARM处理器1032、ARM处理器1033和ARM处理器1034中的任一项)可以通过PCIE总线进行数据传输。
进一步地,考虑到图1中示出的PCIE节点设备101可以同时与ARM处理器1031、ARM处理器1032、ARM处理器1033和ARM处理器1034进行数据传输,基于此,本发明实施例中,PCIE系统100还可以包括PCIE SW设备104,PCIE SW设备104用于扩展PCIE系统的拓扑。
基于图1所示的系统架构,图2示例性示出了本发明实施例提供的一种PCIE链路故障的处理方法所对应的流程示意图,包括以下步骤:
步骤201,PCIE节点设备检测到与第一下游PCIE节点设备之间的链路发生故障后,停止PCIE节点设备与每个下游PCIE节点设备之间的数据传输。
步骤202,PCIE节点设备将第一下游PCIE节点设备中的第一PCIE控制器置复位,并将PCIE节点设备中与第一PCIE控制器对应的第二PCIE控制器置复位。
步骤203,PCIE节点设备恢复PCIE节点设备与每个下游PCIE节点设备之间的数据传输。
采用这种方法,PCIE节点设备检测到与某个下游PCIE节点设备之间的链路发生故障后,只需要将该下游PCIE节点设备中的第一PCIE控制器以及PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位,即可处理PCIE链路故障。采用本发明实施例提到的技术方案,能够及时发现链路故障并及时修复链路故障,从而增强PCIE系统运行的故障修复能力。进一步地,相比于现有技术对整个PCIE系统进行复位的方式而言,本发明实施例只需要复位故障链路两侧节点设备中的PCIE控制器,大大缩短了PCIE链路故障的处理时间,减小对PCIE系统运行的影响。
具体来说,步骤201中,PCIE节点设备可以对于任一下游PCIE节点设备之间的链路进行检测,以图1示出的系统架构为例,PCIE节点设备101可以检测与FPGA处理器102之间的链路是否发生故障,也可以检测与ARM处理器1031(或ARM处理器1032,或ARM处理器1033,或ARM处理器1034)之间的链路是否发生故障。
进一步地,PCIE节点设备可以是单进程的设备,或者也可以是多进程的设备。以PCIE节点设备是多进程的设备为例,各进程之间独立工作,PCIE节点设备中的各进程都可以与任一下游PCIE节点设备进行数据传输。也就是说,PCIE节点设备中的第一进程可以检测与第一下游PCIE节点设备之间的链路发生故障,其中,第一进程可以为多个进程中任一进程。
更进一步地,为了保证在发生PCIE链路故障后,只有一个进程进行故障处理,本发明实施例中,PCIE节点设备中的第一进程检测到与第一下游PCIE节点设备之间的链路发生故障之后,可以获取互斥锁,并设置互斥锁的状态为加锁状态。其中,第一下游PCIE节点设备为至少一个下游PCIE节点设备中的任一下游PCIE节点设备。某一个进程最先发现PCIE链路故障后获取互斥锁,进行故障恢复,其它进程会暂时阻塞。举个例子,可以使用一个高端内存变量来标识是否有进程已经获取到互斥锁并进行PCIE链路故障恢复,该变量初始化值可以设置为0,PCIE节点设备中的各进程均可进行读写操作。当某个进程获取到互斥锁后,可以先判断该变量值是否为0,若为0,则可以将该变量值写为1,这样其它进程再拿到互斥锁后,判断该变量值为1,就认为已经有进程在做PCIE链路故障恢复了,其它进程就不做操作了。
本发明实施例中,PCIE节点设备中的第一进程检测到与第一下游PCIE节点设备之间的链路发生故障后,需要先停止PCIE节点设备与每个下游PCIE节点设备之间的数据传输。以图1示出的系统架构为例,所需停止的数据传输包括PCIE节点设备101向FPGA处理器102发送数据,FPGA处理器102向PCIE节点设备101发送数据;还包括PCIE节点设备101向ARM处理器1031发送数据,ARM处理器1031向PCIE节点设备101发送数据;还包括PCIE节点设备101向ARM处理器1032发送数据,ARM处理器1032向PCIE节点设备101发送数据;还包括PCIE节点设备101向ARM处理器1033发送数据,ARM处理器1033向PCIE节点设备101发送数据;还包括PCIE节点设备101向ARM处理器1034发送数据,ARM处理器1034向PCIE节点设备101发送数据。
进一步地,仍然以图1示出的系统架构为例,若PCIE节点设备101中的第一进程检测到与FPGA处理器102之间的链路发生故障,则,可以通过将PCIE节点设备101侧PCIE发送函数直接返回不做真正发送处理,来完成停止PCIE节点设备101向FPGA处理器102及ARM处理器1031、ARM处理器1032、ARM处理器1033和ARM处理器1034发送数据。并且,PCIE节点设备101可以通过写FPGA寄存器来停止FPGA向PCIE节点设备101发送数据,并远程控制ARM处理器1031、ARM处理器1032、ARM处理器1033和ARM处理器1034停止向PCIE节点设备101中的各进程发送数据。
在执行步骤202之前,PCIE节点设备中的第一进程可以先从多个进程中确定第二进程。其中,第二进程可以为多个进程中除第一进程以外的进程。进一步地,第二进程可以为多个进程中除第一进程以外且优先级最低的进程,选择优先级最低的进程作为第二进程的目的是,尽可能地降低数据恢复对PCIE节点设备中其它进程所执行的任务的影响,第二进程的优先级最低也就意味着第二进程正在执行的任务是所有进程正在执行的所有任务中优先级最低的,如此,能够最大程度上降低数据恢复带来的不利影响。
进一步地,在确定出第二进程之后,PCIE节点设备中的第二进程可以先获取状态机(Link training and status state machine,LTSSM)的当前状态,如果当前状态为正常状态,则可以认为当前链路状态正常没有发生致命错误,不必执行后续操作;如果当前状态为异常状态,则可以继续执行步骤202。其中,状态机的当前状态可以通过数值来标识,比如,若PCIE节点设备中的第二进程获取状态机的当前状态为L0状态,则可以认为当前状态为正常状态;若PCIE节点设备中的第二进程获取状态机的当前状态不为L0状态,则可以认为当前状态为异常状态。
更进一步地,PCIE节点设备中的第二进程确定状态机的当前状态为异常状态之后,可以删除预先存储的第一下游PCIE节点设备对应的设备信息。具体地,可以调用内核remove函数将第一下游PCIE节点设备对应的设备信息删除。
步骤202中,PCIE节点设备中的第二进程可以控制第一寄存器将第一下游PCIE节点设备中的第一PCIE控制器置复位,并且可以控制第二寄存器将PCIE节点设备中与第一PCIE控制器对应的第二PCIE控制器置复位。以第一下游PCIE节点设备为图1中示出的FPGA处理器102为例,PCIE节点设备101中的第二进程可以通过控制可擦除可编辑逻辑器件(Erasable Programmable Logic Device,EPLD)寄存器来将FPGA处理器102中的第一PCIE控制器置复位,并且可以通过控制PCIE节点设备101的内部寄存器将PCIE节点设备101中与第一PCIE控制器对应的第二PCIE控制器置复位。
在执行步骤203之前,PCIE节点设备中的第二进程可以再次判断状态机的当前状态是否为正常状态,若确定状态机的当前状态为正常状态,则可以重新扫描第一下游PCIE节点设备,并存储第一下游PCIE节点设备对应的设备信息;若确定状态机的当前状态为异常状态,且置复位的次数大于预设阈值,则PCIE节点设备可以停止工作。
具体地,PCIE节点设备中的第二进程可以检查状态机的当前状态,直到状态机的当前状态重新回到L0状态。进一步地,本发明实施例中可以对PCIE节点设备设置检查超时机制,如果检查次数超过预设阈值,状态机还没恢复到L0状态,可以认为链路没有恢复,进而直接将PCIE节点设备拉死(即PCIE节点设备可以停止工作),并上报处理器故障。如果状态机恢复至LO状态,那么,一方面需要先清除PCIE错误状态寄存器,再调用内核rescan函数重新扫描添加第一下游PCIE节点设备;另一方面,由于PCIE节点设备中的第二PCIE控制器执行了复位操作,部分PCIE配置空间寄存器会被清0,因此需要再次恢复PCIE节点设备及第一下游PCIE节点设备中PCIE配置空间。
进一步地,可以使用高端内存变量标志ep_probe函数执行状态,来判断是否成功添加第一下游PCIE节点设备。举个例子,设定高端内存变量为0时标识ep_porbe函数执行成功,当调用内核rescan函数时,如果扫描设备成功会执行ep_probe函数,执行成功后将高端内存变量写0。如此,PCIE节点设备中的第二进程可以通过检查ep_probe函数执行状态变量是否为0,如果不为0,表示PCIE节点设备没有重新扫描到第一下游PCIE节点设备,进而可以将PCIE节点设备拉死,并上报处理器故障;如果为0,表示调用rescan函数执行成功,CIE节点设备重新扫描到第一下游PCIE节点设备并添加成功。
步骤203中,PCIE节点设备除了恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输,还可以将互斥锁的变量值清0,从而使得整个系统恢复正常。
为了更清楚地介绍上述PCIE链路故障的处理方法,下面结合图3,对本发明实施例中所涉及到的流程进行整体性说明。如图3所示,可以包括以下步骤:
步骤301,PCIE节点设备中的第一进程检测到与第一下游PCIE节点设备之间的链路发生故障。
步骤302,PCIE节点设备中的第一进程获取互斥锁。
步骤303,PCIE节点设备中的第一进程判断互斥锁是否为加锁状态,若是,则结束流程;否则,执行步骤304。
步骤304,PCIE节点设备中的第一进程设置互斥锁的状态为加锁状态。
步骤305,PCIE节点设备中的第一进程停止PCIE节点设备与每个下游PCIE节点设备之间的数据传输。
步骤306,PCIE节点设备中的第一进程从多个进程中确定第二进程。
步骤307,PCIE节点设备中的第二进程可以先获取状态机的当前状态,并判断当前状态是否为正常状态,若是,则结束流程;否则,执行步骤308。
步骤308,PCIE节点设备中的第二进程删除预先存储的第一下游PCIE节点设备对应的设备信息。
步骤309,PCIE节点设备中的第二进程可以控制第一寄存器将第一下游PCIE节点设备中的第一PCIE控制器置复位,并且可以控制第二寄存器将PCIE节点设备中与第一PCIE控制器对应的第二PCIE控制器置复位。
步骤310,PCIE节点设备中的第二进程可以再次获取状态机的当前状态,并判断状态机的当前状态是否为正常状态,若不是,则执行步骤311;否则,执行步骤312。
步骤311,PCIE节点设备中的第二进程判断置复位的次数是否大于预设阈值,若大于,则执行步骤318;否则,返回步骤310。
步骤312,PCIE节点设备中的第二进程清除PCIE错误状态寄存器。
步骤313,PCIE节点设备中的第二进程恢复PCIE节点设备及第一下游PCIE节点设备中PCIE配置空间。
步骤314,PCIE节点设备中的第二进程重新扫描第一下游PCIE节点设备。
步骤315,PCIE节点设备中的第二进程判断第一下游PCIE节点设备是否扫描成功,若成功,则执行步骤316;否则,执行步骤318。
步骤316,PCIE节点设备中的第二进程存储第一下游PCIE节点设备对应的设备信息。
步骤317,PCIE节点设备中的第二进程恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输。
步骤318,PCIE节点设备中的第二进程将PCIE节点设备拉死,并上报处理器故障。
需要说明的是,上述步骤编号仅为一种执行流程的示例性表示,本申请对各个步骤的先后顺序不做具体限定,例如,上述步骤312和步骤313中,PCIE节点设备中的第二进程也可以先恢复PCIE节点设备及第一下游PCIE节点设备中PCIE配置空间,再清除PCIE错误状态寄存器,具体不做限定。
基于相同构思,本发明实施例提供的一种PCIE链路故障的处理装置,如图4所示,该装置应用于PCIE系统,PCIE系统包括PCIE节点设备和至少一个下游PCIE节点设备;该装置为PCIE节点设备,包括检测单元401、处理单元402和恢复单元403;其中,
检测单元401,用于检测与第一下游PCIE节点设备之间的链路发生故障;所述第一下游PCIE节点设备为所述至少一个下游PCIE节点设备中的任一下游PCIE节点设备;
处理单元402,用于停止所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输;并将所述第一下游PCIE节点设备中的第一PCIE控制器置复位,并将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位;
恢复单元403,用于恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输。
在一种可能的实现方式中,所述装置包括多个进程;
所述检测单元401具体用于:
通过第一进程检测与第一下游PCIE节点设备之间的链路发生故障;所述第一进程为所述多个进程中任一进程;
所述处理单元402具体用于:
通过第二进程控制第一寄存器将所述第一下游PCIE节点设备中的第一PCIE控制器置复位,并控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位;所述第二进程为所述多个进程中除所述第一进程以外的进程。
在一种可能的实现方式中,所述检测单元401通过第一进程检测到与第一下游PCIE节点设备之间的链路发生故障之后,所述处理单元402还用于:
通过所述第一进程获取互斥锁,并设置所述互斥锁的状态为加锁状态;以及从所述多个进程中确定第二进程。
在一种可能的实现方式中,所述处理单元402通过第二进程控制第一寄存器将所述第一下游PCIE节点设备中的第一PCIE控制器置复位之前,还用于:
通过所述第二进程确定状态机的当前状态为异常状态。
在一种可能的实现方式中,所述处理单元402通过第二进程控制第一寄存器将所述第一下游PCIE节点设备中的第一PCIE控制器置复位之前,还用于:
通过所述第二进程删除预先存储的所述第一下游PCIE节点设备对应的设备信息;
在所述处理单元402通过第二进程控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位之后,在所述恢复单元403恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输之前,所述处理单元402还用于:
通过所述第二进程若确定所述状态机的当前状态为正常状态,则重新扫描所述第一下游PCIE节点设备,并存储所述第一下游PCIE节点设备对应的设备信息。
在一种可能的实现方式中,在所述处理单元402通过第二进程控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位之后,在所述恢复单元403恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输之前,所述处理单元402还用于:
通过所述第二进程若确定所述状态机的当前状态为异常状态,且置复位的次数大于预设阈值,则停止工作。
本发明实施例还提供一种装置,所述装置可以为设备或服务器,所述装置包括:
存储器,用于存储软件程序;
处理器,用于读取所述存储器中的软件程序并执行上述各种可能的实现方式中所描述的PCIE链路故障的处理方法。
本发明实施例还提供一种计算机存储介质,所述存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时实现上述各种可能的实现方式中所描述的PCIE链路故障的处理方法。
本发明实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种可能的实现方式中所描述的PCIE链路故障的处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种快速外设部件互联PCIE链路故障的处理方法,其特征在于,所述方法应用于PCIE系统,所述PCIE系统包括PCIE节点设备和至少一个下游PCIE节点设备;所述方法包括:
所述PCIE节点设备检测到与第一下游PCIE节点设备之间的链路发生故障后,停止所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输;所述第一下游PCIE节点设备为所述至少一个下游PCIE节点设备中的任一下游PCIE节点设备;
所述PCIE节点设备将所述第一下游PCIE节点设备中的第一PCIE控制器置复位,并将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位;
所述PCIE节点设备恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输。
2.根据权利要求1所述的方法,其特征在于,所述PCIE节点设备包括多个进程;
所述PCIE节点设备检测到与第一下游PCIE节点设备之间的链路发生故障,包括:
所述PCIE节点设备中的第一进程检测到与第一下游PCIE节点设备之间的链路发生故障;所述第一进程为所述多个进程中任一进程;
所述PCIE节点设备将所述第一下游PCIE节点设备中的第一PCIE控制器置复位,并将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位,包括:
所述PCIE节点设备中的第二进程控制第一寄存器将所述第一下游PCIE节点设备中的第一PCIE控制器置复位,并控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位;所述第二进程为所述多个进程中除所述第一进程以外的进程。
3.根据权利要求2所述的方法,其特征在于,所述PCIE节点设备中的第一进程检测到与第一下游PCIE节点设备之间的链路发生故障之后,还包括:
所述PCIE节点设备中的第一进程获取互斥锁,并设置所述互斥锁的状态为加锁状态;
所述PCIE节点设备中的第一进程从所述多个进程中确定第二进程。
4.根据权利要求2所述的方法,其特征在于,所述PCIE节点设备中的第二进程控制第一寄存器将所述第一下游PCIE节点设备中的第一PCIE控制器置复位之前,还包括:
所述PCIE节点设备中的第二进程确定状态机的当前状态为异常状态。
5.根据权利要求4所述的方法,其特征在于,所述PCIE节点设备中的第二进程控制第一寄存器将所述第一下游PCIE节点设备中的第一PCIE控制器置复位之前,还包括:
所述PCIE节点设备中的第二进程删除预先存储的所述第一下游PCIE节点设备对应的设备信息;
所述PCIE节点设备中的第二进程控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位之后,恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输之前,还包括:
所述PCIE节点设备中的第二进程若确定所述状态机的当前状态为正常状态,则重新扫描所述第一下游PCIE节点设备,并存储所述第一下游PCIE节点设备对应的设备信息。
6.根据权利要求5所述的方法,其特征在于,所述PCIE节点设备中的第二进程控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位之后,恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输之前,还包括:
所述PCIE节点设备中的第二进程若确定所述状态机的当前状态为异常状态,且置复位的次数大于预设阈值,则停止工作。
7.一种快速外设部件互联PCIE链路故障的处理装置,其特征在于,所述装置应用于PCIE系统,所述PCIE系统包括PCIE节点设备和至少一个下游PCIE节点设备;所述装置为所述PCIE节点设备,包括:
检测单元,用于检测与第一下游PCIE节点设备之间的链路发生故障;所述第一下游PCIE节点设备为所述至少一个下游PCIE节点设备中的任一下游PCIE节点设备;
处理单元,用于停止所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输;并将所述第一下游PCIE节点设备中的第一PCIE控制器置复位,并将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位;
恢复单元,用于恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输。
8.根据权利要求7所述的装置,其特征在于,所述装置包括多个进程;
所述检测单元具体用于:
通过第一进程检测与第一下游PCIE节点设备之间的链路发生故障;所述第一进程为所述多个进程中任一进程;
所述处理单元具体用于:
通过第二进程控制第一寄存器将所述第一下游PCIE节点设备中的第一PCIE控制器置复位,并控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位;所述第二进程为所述多个进程中除所述第一进程以外的进程。
9.根据权利要求8所述的装置,其特征在于,所述检测单元通过第一进程检测到与第一下游PCIE节点设备之间的链路发生故障之后,所述处理单元还用于:
通过所述第一进程获取互斥锁,并设置所述互斥锁的状态为加锁状态;以及通过所述第一进程从所述多个进程中确定第二进程。
10.根据权利要求8所述的装置,其特征在于,所述处理单元通过第二进程控制第一寄存器将所述第一下游PCIE节点设备中的第一PCIE控制器置复位之前,还用于:
通过所述第二进程确定状态机的当前状态为异常状态。
11.根据权利要求10所述的装置,其特征在于,所述处理单元通过第二进程控制第一寄存器将所述第一下游PCIE节点设备中的第一PCIE控制器置复位之前,还用于:
通过所述第二进程删除预先存储的所述第一下游PCIE节点设备对应的设备信息;
在所述处理单元通过第二进程控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位之后,在所述恢复单元恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输之前,所述处理单元还用于:
通过所述第二进程若确定所述状态机的当前状态为正常状态,则重新扫描所述第一下游PCIE节点设备,并存储所述第一下游PCIE节点设备对应的设备信息。
12.根据权利要求11所述的装置,其特征在于,在所述处理单元通过第二进程控制第二寄存器将所述PCIE节点设备中与所述第一PCIE控制器对应的第二PCIE控制器置复位之后,在所述恢复单元恢复所述PCIE节点设备与每个下游PCIE节点设备之间的数据传输之前,所述处理单元还用于:
通过所述第二进程若确定所述状态机的当前状态为异常状态,且置复位的次数大于预设阈值,则停止工作。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有指令,当所述指令在计算机上运行时,使得计算机实现执行权利要求1至6中任一项所述的方法。
14.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1至6中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811602868.3A CN111371582B (zh) | 2018-12-26 | 2018-12-26 | 一种pcie链路故障的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811602868.3A CN111371582B (zh) | 2018-12-26 | 2018-12-26 | 一种pcie链路故障的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111371582A CN111371582A (zh) | 2020-07-03 |
CN111371582B true CN111371582B (zh) | 2021-04-16 |
Family
ID=71212424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811602868.3A Active CN111371582B (zh) | 2018-12-26 | 2018-12-26 | 一种pcie链路故障的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111371582B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114253877B (zh) * | 2020-09-25 | 2024-01-26 | 大唐移动通信设备有限公司 | Liunx系统下的高速外围组件互联PCIE设备扫描方法及装置 |
CN112463445B (zh) * | 2020-11-19 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种链路恢复方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103797732A (zh) * | 2013-11-05 | 2014-05-14 | 华为技术有限公司 | 通信方法、高速外围组件互连pcie芯片及pcie设备 |
CN104170322A (zh) * | 2014-04-02 | 2014-11-26 | 华为技术有限公司 | 一种PCIe链路故障的处理方法、设备及系统 |
CN105701051A (zh) * | 2016-01-15 | 2016-06-22 | 华为技术有限公司 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
CN107870662A (zh) * | 2016-09-23 | 2018-04-03 | 华为技术有限公司 | 一种多CPU系统中CPU复位的方法及PCIe接口卡 |
CN107957885A (zh) * | 2017-12-01 | 2018-04-24 | 天津麒麟信息技术有限公司 | 一种基于飞腾平台的pcie链路设备待机与恢复方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677176B2 (en) * | 2010-12-03 | 2014-03-18 | International Business Machines Corporation | Cable redundancy and failover for multi-lane PCI express IO interconnections |
-
2018
- 2018-12-26 CN CN201811602868.3A patent/CN111371582B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103797732A (zh) * | 2013-11-05 | 2014-05-14 | 华为技术有限公司 | 通信方法、高速外围组件互连pcie芯片及pcie设备 |
CN104170322A (zh) * | 2014-04-02 | 2014-11-26 | 华为技术有限公司 | 一种PCIe链路故障的处理方法、设备及系统 |
CN105701051A (zh) * | 2016-01-15 | 2016-06-22 | 华为技术有限公司 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
CN107870662A (zh) * | 2016-09-23 | 2018-04-03 | 华为技术有限公司 | 一种多CPU系统中CPU复位的方法及PCIe接口卡 |
CN107957885A (zh) * | 2017-12-01 | 2018-04-24 | 天津麒麟信息技术有限公司 | 一种基于飞腾平台的pcie链路设备待机与恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111371582A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9164854B2 (en) | Thread sparing between cores in a multi-threaded processor | |
KR101331935B1 (ko) | 추적점 기반의 고장 진단/복구 시스템 및 그 방법 | |
CN110807064B (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
JP2017517060A (ja) | 障害処理方法、関連装置、およびコンピュータ | |
US9158606B2 (en) | Failure repetition avoidance in data processing | |
JP4315016B2 (ja) | コンピュータシステムの系切替方法 | |
CN111371582B (zh) | 一种pcie链路故障的处理方法及装置 | |
CN105408868A (zh) | 稳健的硬件/软件错误恢复系统 | |
JP2003015900A (ja) | 追走型多重化システム、及び追走により信頼性を高めるデータ処理方法 | |
US20100085871A1 (en) | Resource leak recovery in a multi-node computer system | |
US8537662B2 (en) | Global detection of resource leaks in a multi-node computer system | |
CN104407806A (zh) | 独立磁盘冗余阵列组硬盘信息的修改方法和装置 | |
CN113778763B (zh) | 一种三方接口服务故障智能切换方法及系统 | |
CN108664361B (zh) | Pcie非透明通道修复方法及装置 | |
CN106776142B (zh) | 一种数据存储方法以及数据存储装置 | |
CN115755570A (zh) | 多冗余度异构调度裁决器的调度裁决方法及装置 | |
CN107870777A (zh) | 一种热补丁实现方法及装置、终端 | |
CN115220937A (zh) | 存储管理的方法、电子设备和程序产品 | |
US11954509B2 (en) | Service continuation system and service continuation method between active and standby virtual servers | |
CN111090491B (zh) | 虚拟机任务状态的恢复方法、装置及电子设备 | |
CN105677515A (zh) | 一种数据库联机备份方法及系统 | |
US9639438B2 (en) | Methods and systems of managing an interconnection | |
CN115599310B (zh) | 存储节点中存储资源的控制方法、装置以及存储节点 | |
CN114978891B (zh) | 网络设备bios配置的处理方法、设备及存储介质 | |
CN111610778B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |