CN104756081A - 一种故障处理的方法、计算机系统和装置 - Google Patents

一种故障处理的方法、计算机系统和装置 Download PDF

Info

Publication number
CN104756081A
CN104756081A CN201380001454.4A CN201380001454A CN104756081A CN 104756081 A CN104756081 A CN 104756081A CN 201380001454 A CN201380001454 A CN 201380001454A CN 104756081 A CN104756081 A CN 104756081A
Authority
CN
China
Prior art keywords
endpoint device
memory address
state
access request
endpoint
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.)
Granted
Application number
CN201380001454.4A
Other languages
English (en)
Other versions
CN104756081B (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104756081A publication Critical patent/CN104756081A/zh
Application granted granted Critical
Publication of CN104756081B publication Critical patent/CN104756081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error 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 the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • 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/0751Error or fault detection not based on redundancy
    • 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/0766Error or fault reporting or storing
    • 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例涉及一种故障隔离的方法、计算机系统和装置,能够对所述扩展域的第二端点设备的状态进行监控,并根据所述第二端点设备的状态建立设备状态记录,在接收到所述第二端点设备与所述主域之间的访问请求后,根据所述访问请求中的所述第二端点设备的标识信息,查询所述设备状态记录,确定所述第二端点设备的状态,若所述第二端点设备的状态为故障状态,丢弃所述访问请求,从而阻止所述故障的第二端点设备与所述主域之间的通信,防止故障扩散到主域,保障了系统的可靠性。

Description

一种故障处理的方法、 计算机系统和装置
技术领域
本发明实施例涉及计算机技术, 特别是一种故障处理的方法、 计算机系 统和装置。
背景技术
高速夕卜围组件互联 ( Peripheral Component Interconnect Express, PCIe ) 总线技术是用来互联 CPU和外围设备的高性能总线技术。 PCIe作为新一代的 总线和接口标准, 采用了串行互联方式, 以点对点的形式进行数据传输, 大 大提高了传输速率, 而且也为更高的频率提升创造了条件, 广泛使用于工业 服务器、 PC、 嵌入式计算 /通信和工作站等, 逐步取代了 PCI, AGP等总线。 目前, PCIe设备故障占据了系统所有故障的很大的一部分。实时地监控系统, 识别出错误的发生, 对系统故障进行检测和处理, 可以有效避免系统运行的 全面中断, 是保证系统持续可用的一项 RAS ( Reliability , Availability , Serviceability )特性。
现有技术中, PCIe设备发生故障时可能产生错误报文, 该错误报文从故 障设备路由到根复合体, 根复合体在获取到错误报文后将产生系统中断, 向 操作系统报告所述错误报文, 操作系统根据所述错误报文进行错误处理。 现 有技术中, 从故障设备产生错误报文到操作系统处理该错误报文, 存在一个 时间窗口, 在这个时间窗口内, CPU或者其它 PCIe端点设备与该故障设备仍 然能够继续相互访问, 无法有效隔离该故障设备, 可能导致故障的扩散, 影 响了系统的可靠性。
发明内容
本发明实施例提出了一种故障处理的方法、 计算机系统和装置, 能够隔 离故障设备, 防止故障的扩散, 提高系统的可靠性。
第一方面, 本发明实施例提出了一种故障隔离的方法, 用于 PCIe互连 的计算机系统, 该计算机系统包括主域和扩展域, 所述主域包括根复合体、 第一端点设备与根复合体端点设备,所述扩展域包括所述根复合体端点设备 与第二端点设备, 所述方法包括:
监控所述扩展域的第二端点设备的状态;
根据所述第二端点设备的状态建立设备状态记录, 所述设备状态记录包 括所述第二端点设备的标识信息与所述第二端点设备的状态的对应关系; 接收访问请求, 所述访问请求包括所述第二端点设备对所述主域的访问 请求或者所述主域对所述第二端点设备的访问请求;
根据所述访问请求中的所述第二端点设备的标识信息, 查询所述设备状 态记录, 确定所述第二端点设备的状态;
若所述第二端点设备的状态为故障状态,丢弃所述访问请求以阻止所述 第二端点设备与所述主域之间的通信。
结合第一方面, 在第一种可能的实现方式中, 所述监控所述扩展域的第 二端点设备的状态, 包括: 接收所述第二端点设备发送的错误消息, 或者接 收用于指示所述第二端点设备是否存在的设备探测响应消息; 根据所述错误 消息或所述设备探测响应消息, 确定所述第二端点设备的状态。
结合第一方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述第二端点设备的标识信息包括所述第二端点设备的第一内存地址, 所述 第一内存地址为所述第二端点设备在所述主域的内存地址; 所述根据所述第 二端点设备的状态建立设备状态记录, 所述设备状态记录包括所述第二端点 设备的标识信息与所述第二端点设备的状态的对应关系, 包括: 获取所述错 误消息或者设备探测响应消息中携带的所述第二端点设备的总线 /设备 /功能 BDF标识或第二内存地址, 其中, 所述第二内存地址为所述第二端点设备在 所述扩展域的内存地址; 根据所述 BDF标识或第二内存地址, 获取所述第 二端点设备的第一内存地址; 在所述设备状态记录中记录所述第二端点设备 的第一内存地址与所述第二端点设备的状态的对应关系。
结合第一方面的第二种可能的实现方式, 在第三种可能的实现方式中, 所述根据所述 BDF标识或第二内存地址, 获取所述第二端点设备的第一内 存地址, 包括: 根据保存的所述第二端点设备的第二内存地址与第一内存地 址之间的映射关系,将所述第二内存地址转换为所述第二端点设备的第一内 存地址; 或者, 根据保存的所述第二端点设备的 BDF标识与第二内存地址 之间的映射关系, 获取所述第二端点设备的第二内存地址, 根据保存的所述 第二端点设备的第二内存地址与第一内存地址之间的映射关系 ,将所述第二 内存地址转换为所述第二端点设备的第一内存地址。
结合第一方面的第二种可能的实现方式或第三种可能的实现方式,在第 四种可能的实现方式中, 所述第二端点设备的第一内存地址包括配置空间访 问的第一内存地址、 消息信号中断访问的第一内存地址、 内存映射输入输出 访问的第一内存地址和直接内存存取访问的第一内存地址; 则, 所述在所述 设备状态记录中记录所述第二端点设备的第一内存地址与所述第二端点设 备的状态的对应关系包括: 在所述设备状态记录中记录所述第二端点设备的 每种第一内存地址与所述第二端点设备的状态的对应关系。
第二方面, 本发明实施例提出了一种故障隔离的装置, 用于 PCIe互连 的计算机系统, 该计算机系统包括主域和扩展域, 所述主域包括根复合体、 第一端点设备与根复合体端点设备,所述扩展域包括所述根复合体端点设备 与第二端点设备, 所述装置包括:
监控单元, 用于监控所述扩展域的第二端点设备的状态;
记录单元, 用于根据所述第二端点设备的状态建立设备状态记录, 所述 设备状态记录包括所述第二端点设备的标识信息与所述第二端点设备的状 态的对应关系;
接收单元, 用于接收访问请求, 所述访问请求包括所述第二端点设备对 所述主域的访问请求或者所述主域对所述第二端点设备的访问请求;
确定单元, 用于根据所述访问请求中的所述第二端点设备的标识信息, 查询所述设备状态记录, 确定所述第二端点设备的状态; 处理单元, 在所述第二端点设备的状态为故障状态时, 用于丢弃所述访 问请求以阻止所述第二端点设备与所述主域之间的通信。
结合第二方面, 在第一种可能的实现方式中, 所述监控单元具体用于: 接收所述第二端点设备发送的错误消息, 或者接收用于指示所述第二端点设 备是否存在的设备探测响应消息,根据所述错误消息或所述设备探测响应消 息, 确定所述第二端点设备的状态。
结合第二方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述第二端点设备的标识信息包括所述第二端点设备的第一内存地址, 所述 第一内存地址为所述第二端点设备在所述主域的内存地址;
所述记录单元具体包括:
地址转换模块子单元, 用于在所述监控单元确定所述第二端点设备的故 障状态时, 获取所述错误消息或者所述设备探测响应消息中携带的所述第二 端点设备的 BDF标识或第二内存地址,根据所述 BDF标识或第二内存地址, 获取所述第二端点设备的第一内存地址, 其中, 所述第二内存地址为所述第 二端点设备在所述扩展域的内存地址;
状态记录子单元, 用于在所述设备状态记录中记录所述第二端点设备的 第一内存地址与所述第二端点设备的状态的对应关系。
结合第二方面的第二种可能的实现方式, 在第三种可能的实现方式中, 所述地址转换模块子单元还用于保存所述第二端点设备的第二内存地址与 第一内存地址之间的映射关系, 以及保存所述第二端点设备的 BDF标识与 第二内存地址之间的映射关系; 所述地址转换模块子单元具体用于根据保存 的所述第二端点设备的第二内存地址与第一内存地址之间的映射关系,将所 述第二内存地址转换为所述第二端点设备的第一内存地址; 或者, 根据保存 的所述第二端点设备的 BDF标识与第二内存地址之间的映射关系, 获取所 述第二端点设备的第二内存地址,根据保存的所述第二端点设备的第二内存 地址与第一内存地址之间的映射关系,将所述第二内存地址转换为所述第二 端点设备的第一内存地址。
结合第二方面的第二种可能的实现方式或第三种可能的实现方式,在第 四种可能的实现方式中, 所述第二端点设备的第一内存地址包括配置空间访 问的第一内存地址、 消息信号中断访问的第一内存地址、 内存映射输入输出 访问的第一内存地址和 DMA访问的第一内存地址; 所述地址转换模块子单 元具体用于记录所述第二端点设备的每种第一内存地址与所述第二端点设 备的对应关系。
在本发明实施例中, 由于能够对扩展域的第二端点设备的状态进行监 控, 并根据所述第二端点设备的状态建立设备状态记录, 在接收到所述第二 端点设备与所述主域之间的访问请求后,根据所述访问请求中的所述第二端 点设备的标识信息,查询所述设备状态记录,确定所述第二端点设备的状态, 若所述第二端点设备的状态为故障状态, 丢弃所述访问请求, 从而阻止所述 故障的第二端点设备与所述主域之间的通信, 防止故障扩散到主域, 保障了 系统的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案, 下面将对现有技术或实施 例中所需要使用的附图作筒单地介绍, 显而易见地, 下面描述中的附图仅仅 是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳 动的前提下, 还可以根据这些附图获得其它的附图。
图 1为本发明实施例提供的一种包含 PCIe主域和扩展域的计算机系统 的系统框图;
图 2 ( a )为图 1所示的计算机系统的主域和扩展域的端点设备的内存地 址分配图;
图 2 ( b )为图 1所示的计算机系统的主域的内存地址与扩展域的内存地 址的映射关系;
图 3为本发明实施例一提供的故障隔离方法流程图; 图 4为本发明实施例二提供的故障隔离方法流程图;
图 5为本发明实施例三提供的故障隔离方法流程图;
图 6为本发明实施例四提供的故障隔离方法流程图;
图 7为本发明实施提供的一种故障隔离装置的组成图;
图 8为本发明实施提供的一种故障隔离装置的组成图;
图 9为本发明实施提供的一种故障隔离系统的组成图;
图 10为本发明实施提供的一种故障隔离装置的组成图。 具体实施方式
本发明实施例提出了一种故障隔离的方法、 计算机系统和装置, 用于包 含 PCIe主域和扩展域的计算机系统, 所述扩展域的根复合体端点设备为所 述主域的端点设备, 当所述扩展域的端点设备发生故障时, 本发明实施例能 够阻止所述主域与所述扩展域的端点设备之间的相互访问,避免了故障的扩 散, 保障了系统的可用性。
如图 1所示为一种包含 PCIe主域和扩展域的计算机系统的系统框图, 所述计算机系统包括主域 100和扩展域 118, 该计算机系统通过根复合体端 点设备 ( Root Complex Endpoint, RCEP ) 106进行 PCIe域的扩展, 所述主域 100包含根复合体 ( Root Complex, RC ) 102、 交换器(Switch ) 104和至少 一个 PCIe端点设备 107, 所述根复合体 102通过根端口 103与交换器 104 的上游端口 104A相连, 所述交换器的 104的下游端口 104B与 PCIe端点设 备 107相连, 使得所述根复合体 102通过所述交换器 104与所述 PCIe端点 设备 107相连, 所述根复合体 102可以集成在主 CPU 101上, 上图中所述主 域 100以一个交换器为例, 在其它的实施例中, 所述主域 100还可以包括多 个交换器, 每个交换器可以与一个或多个 PCIe端点设备相连。
所述根复合体 102用于处理和转发主 CPU 101与 PCIe端点设备 107之 间的请求, 所述交换器 104用于将请求向下游路由给与下游端口 104B相连 接的 PCIe端点设备, 以及从每个独立的下游端口将请求向上游路由至单一 的根复合体, 还可以用于从一个下游端口向另一个下游端口路由请求, 所述 PCIe端点设备 107具有发起请求和完成 PCIe事物处理的功能, 所述 PCIe 端点设备 107可以是存储设备、 网卡、 声卡等。
所述主域 100中的 PCIe端点设备 107中包括所述 RCEP 106, 该 RCEP
106不仅能够发起请求和完成 PCIe事物处理,而且由于其增加了与根复合体 相同功能的硬件模块和设备驱动, 可以实现扩展域 118与主域 100之间的连 接, 管理和转发扩展域 118与主域 100之间的请求。 如图 1所示, 所述扩展 域 118包括: 作为扩展域根复合体的 RCEP 106、 交换器 112和第二端点设 备 114和 116 (所述第二端点设备可以为多个, 也可以为一个, 本发明实施 例以两个第二端点设备为例), 通过交换器 112, 第二端点设备 114和 116分 别与 RCEP 106相连, 所述第二端点设备 114和 116可以是存储设备、 网卡、 声卡等, 所述扩展域 118还可以有多个根端口和多个交换器, 每个交换器下 可以连接多个端点设备。
图 2为所述图 1所示的计算机系统中主域和扩展域的端点设备的内存地 址分配图, 主 CPU 101的 64位物理地址 202 (具体可以是内存映射输入输 Λ Memory Mapped Input/Output, MMIO地址)可以被划分为所述主域的内 存地址 203和所述扩展域的内存地址 204。
在图 1所述的计算机系统中, 系统加载所述主域的端点设备的驱动时, 为每个主域的端点设备分配内存地址,例如为 RCEP 106和第一端点设备 108 分配内存地址, 如图 2 ( a )所示, MMIO地址 202的一部分被分配给所述 RCEP 106, 即所述 RCEP 106的内存地址 205 , MMIO地址 202的另一部分 被分配给所述第一端点设备 108, 即所述第一端点设备 108的内存地址 210, 由于所述 RCEP 106和所述第一端点设备 108都是所述主域的端点设备, 因 此所述内存地址 205和内存地址 210共同组成了主域的内存地址 203。
在系统加载所述 RCEP 106的驱动时, 所述系统检测到所述扩展域的所 有第二端点设备 114和 116的驱动, 触发对整个扩展域的所有第二端点设备 进行扫描, 为所述扩展域的每一个第二端点设备分配内存地址, 具体地, 所 述 MMIO地址 202中的一部分被分配给所述扩展域的第二端点设备, 即为 所述第二端点设备分配第二内存地址(所述第二内存地址为所述第二端点设 备在所述扩展域的内存地址, 用于在扩展域中代表所述第二端点设备), 例 如图 2 ( a )所示的第二端点设备 114和 116的第二内存地址 206和 207, 其 中, 有多少个第二端点设备就有多少个第二端点设备的第二内存地址, 本实 施例中, 以两个第二端点设备为例, 则分配出第二端点设备的第二内存地址 206和 207。 另外, 除了为所述第二端点设备分配第二内存地址之外, 还需 要为所述第二端点设备分配第一内存地址(所述第一内存地址为所述第二端 点设备在所述主域的内存地址, 用于在主域中代表所述第二端点设备)。 具 体地, 所述第二端点设备的第一内存地址主要为所述 RCEP的内存地址的全 部或者一部分,根据所述扩展域的第二端点设备的个数将所述 RCEP的内存 地址 205进行分割, 若所述第二端点设备为 n个, 则所述 RCEP的内存地址 205被分割成 n个部分, 每一部分内存地址对应于一个第二端点设备, 如图 2 ( a )所示的所述 RCEP的内存地址 205被划分为 208和 209两部分, 其中 208与第二端点设备 114的内存地址 206对应, 为所述第二端点设备 114的 第一内存地址, 209与第二端点设备 116的内存地址 207对应, 为所述第二 端点设备 114的第一内存地址。
由于所述扩展域的第二端点设备 114和 116与所述主域之间进行消息交 互时可以采用 4种访问方式,具体为配置空间访问、消息信号中断(Message Signaled Interrupts , MSI )访问、 内存映射输入输出 MMIO访问和直接内存 存取(Direct Memory Access, DMA )访问, 所述系统为所述第二端点设备 分配的第二内存地址 206和第一内存地址 208实际上分别可以为 4种内存地 址, 如图 2 ( b )主域的第一内存地址与扩展域的第二内存地址的映射关系所 示 , 第二端点设备 114的第二内存地址 206可以被划分为: 206a、 206b, 206c和 206d, 分别用于对所述第二端点设备 114进行配置空间访问、 MSI 访问、 MMIO访问和 DMA访问时使用。 所述系统为所述第二端点设备 114 分配该 4种内存地址时,相应地还将所述 RCEP的内存地址中的对应于所述 第二端点设备 114的第一内存地址 208切割为 4部分, 具体为: 配置空间地 址 208a、 MSI地址 208b、 MMIO地址 208c和 DMA地址 208d, 所述第二端 点设备的第一内存地址 208a、 208b, 208c和 208d分别与所述第二端点设备 114的第二内存地址 206a、 206b, 206c和 206d存在映射关系, 具体地, 该 映射关系可以通过地址偏移关系来体现, 例如 208a与 206a之间存在第一地 址偏移关系, 208b与 206b之间存在第二地址偏移关系, 208c与 206c之间 存在第三地址偏移关系, 208d与 206d之间存在第四地址偏移关系。 所述第 二端点设备的第一内存地址与所述第二端点设备的第二内存地址之间的映 射关系可以保存在所述 RCEP106, 例如保存在所述 RCEP 106的地址转换模 块, 所述地址转换模块保存了所述地址偏移关系, 所述地址转换模块可以根 据保存的第二内存地址与第一内存地址之间的映射关系进行地址转换。
系统对整个扩展域的第二端点设备进行扫描的过程中, 除了为所述扩展 域的每一个第二端点设备分配第二内存地址外,还为所述扩展域的每一个第 二端点设备分配了总线 /设备 /功能(Bus /Device /Function, BDF )标识, 所 述第二端点设备的 BDF标识与所述第二端点设备的第二内存地址之间存在 映射关系, 所述 RCEP可以保存所述映射关系, 例如, 所述 RCEP 106的地 址转换模块保存了所述第二端点设备 114的 BDF标识与第二内存地址之间 的映射关系, 使得所述 RCEP 106根据保存的所述第二端点设备 114的 BDF 标识与第二内存地址的映射关系, 进行该第二端点设备 114 的 BDF标识与 第二内存地址之间的相互转换。
若所述第二端点设备 114发生故障, 由于从所述第二端点设备 114产生 中断消息到操作系统处理该中断消息, 存在一个时间窗口, 在这个时间窗口 内, 所述扩展域的故障的第二端点设备 114仍然可能与其它端点设备进行相 互访问,例如所述第二端点设备 114对主域中的端点设备或通过主域的 CPU 对其它设备进行通信, 或者, 所述 CPU或主域的其它端点设备也可以对所 述第二端点设备 114进行访问, 然而, 与故障的第二端点设备 114相关的访 问或者通信将可能导致其它设备产生故障, 例如导致所述第一端点设备 108 产生故障, 或者导致 CPU进行不必要的重复的错误消息处理, 使系统性能 受到影响, 严重影响了系统的可靠性。
一种故障隔离的方法
本发明实施例一
本发明实施例提供一种故障隔离方法, 用于在扩展域的端点设备发生故 障时, 阻止所述主域与所述扩展域端点设备之间的相互访问, 防止故障扩散 到主域。
如图 3所示, 为本发明实施例提供的故障隔离方法的流程图,用于 PCIe 互联的计算机系统, 所述计算机系统包括主域和扩展域, 所述主域由根复合 体、 第一端点设备与 RCEP形成, 所述扩展域由所述 RCEP与第二端点设备 形成, 所述方法包括:
101: 监控所述扩展域的第二端点设备的状态。
所述第二端点设备的状态可以包括故障状态和非故障状态,故障状态表 明所述第二端点设备发生故障, 无法进行正常工作, 非故障状态表明所述扩 展域的第二端点设备可以正常工作, 所述 RCEP对所述扩展域的第二端点设 备的状态进行监控, 可以是接收所述第二端点设备发送的错误消息, 或者接 收用于指示所述第二端点设备是否存在的设备探测响应消息,根据所述错误 消息或所述设备探测响应消息, 确定所述第二端点设备的状态。
102: 根据所述第二端点设备的状态建立设备状态记录, 所述设备状态 记录包括所述第二端点设备的标识信息与所述第二端点设备的状态的对应 关系。
所述 RCEP可以根据所述第二端点设备的状态, 建立设备状态记录, 所 述设备状态记录包括所述第二端点设备的标识信息与所述第二端点设备的 状态的对应关系, 使得所述 RCEP可以根据所述第二端点设备的标识信息, 确定所述第二端点设备的状态。
103: 接收访问请求, 所述访问请求包括所述第二端点设备对所述主域 的访问请求或者所述主域对所述第二端点设备的访问请求。
所述扩展域的第二端点设备通过所述访问请求对所述主域进行访问时, 或者所述主域通过所述访问请求对所述第二端点设备进行访问时, 所述访问 请求被路由到所述 RCEP, 所述 RCEP接收所述访问请求。
104: 根据所述访问请求中的所述第二端点设备的标识信息, 查询所述 设备状态记录, 确定所述第二端点设备的状态。
所述访问请求携带所述第二端点设备的标识信息, 所述 RCEP可以查询 所述设备状态记录中的所述第二端点设备的标识信息与所述第二端点设备 的状态的对应关系, 确定所述第二端点设备的状态。
105: 若所述第二端点设备的状态为故障状态, 丢弃所述访问请求以阻 止所述第二端点设备与所述主域之间的通信。
若确定所述第二端点设备的状态为故障状态, 则丢弃所述访问请求以阻 止所述 RCEP将所述访问请求进行转发,从而阻止所述第二端点设备与所述 主域之间的通信。
在本发明实施例中, 对所述扩展域的第二端点设备的状态进行监控, 并 根据所述第二端点设备的状态建立设备状态记录, 所述设备状态记录包括所 述第二端点设备的标识信息与所述第二端点设备的状态的对应关系,在接收 到所述第二端点设备与所述主域之间的访问请求后,根据所述访问请求中的 所述第二端点设备的标识信息, 查询所述设备状态记录, 确定所述第二端点 设备的状态, 若所述第二端点设备的状态为故障状态, 丢弃所述访问请求, 从而阻止所述故障的第二端点设备与所述主域之间的通信, 防止故障扩散到 主域, 保障了系统的可靠性。 本发明实施例二
如图 4所示, 为本发明实施例提供的故障隔离方法的流程图,用于 PCIe 互连的计算机系统, 所述计算机系统包括主域和扩展域, 所述主域由根复合 体、 第一端点设备与 RCEP形成, 所述扩展域由所述 RCEP与第二端点设备 形成, 所述第二端点设备通过所述 RCEP与所述主域中的根复合体或第一端 点设备进行通信交互, 所述方法可以包括:
201: 监控所述扩展域的第二端点设备的状态。
所述第二端点设备的状态包括故障状态和非故障状态,故障状态表明所 述第二端点设备发生故障, 无法进行正常工作, 非故障状态表明所述扩展域 的第二端点设备可以正常工作, 所述 RCEP对所述扩展域的第二端点设备的 状态进行监控包括: 接收所述第二端点设备发送的错误消息, 或者接收用于 指示所述第二端点设备是否存在的设备探测响应消息; 根据所述错误消息或 所述设备探测响应消息, 确定所述第二端点设备的状态。
具体地, 所述 RCEP可以发送设备探测消息到所述第二端点设备的配置 空间寄存器, 获取所述第二端点设备返回的设备探测响应消息, 如果所述设 备探测响应消息指示所述第二端点设备不存在,表明该第二端点设备由于故 障以至于无法探测到, 确定所述第二端点设备的状态为故障状态, 否则, 确 定所述第二端点设备的状态为非故障状态; 或者,
所述 RCEP接收来自所述第二端点设备的错误消息,根据所述错误消息, 确定所述错误消息的类型, 若所述错误消息的类型是不可纠正的错误消息 ( Uncorrectable error )类型, 则确定所述第二端点设备的状态为故障状态, 否则, 确定所述第二端点设备的状态为非故障状态。
优选地, 在接收来自所述第二端点设备的错误消息, 确定所述第二端点 设备的状态为故障状态之后, 所述 RCEP还可以进一步确定所述错误消息是 否属于重复发送的错误消息, 如果属于重复发送的错误消息, 表明所述第二 端点设备已经发送了错误消息给主域进行相应的错误处理, 则丢弃所述错误 消息, 避免 CPU进行不必要的重复的错误消息处理, 保障了系统的可靠性, 如果不属于重复发送的错误消息,表明所述错误消息为所述第二端点设备第 一次发送的错误消息, 所述 RCEP将所述错误消息发送给 CPU, 使得 CPU 对所述第二端点设备进行错误处理。
所述确定所述错误消息是否为重复发送的错误消息具体包括:
获取所述错误消息携带的所述第二端点设备的 BDF标识或第二内存地 址;
查询所述设备状态记录中记录的所述第二端点设备的第二内存地址与 所述第二端点设备的状态的对应关系,确定所述第二端点设备的状态,或者, 查询所述设备状态记录中记录的所述第二端点设备的 BDF标识与所述第二 端点设备的状态的对应关系, 确定所述第二端点设备的状态, 或者, 根据所 述访问请求中的所述第二端点设备的第二内存地址或者 BDF标识, 确定所 述第二端点设备的第一内存地址,通过查询所述设备状态记录中记录的所述 第二端点设备的第一内存地址与所述第二端点设备的状态的对应关系,确定 所述第二端点设备的状态;
如果确定所述第二端点设备的状态为故障状态,确定所述错误消息属于 重复发送的错误消息, 如果确定所述第二端点设备的状态为非故障状态, 确 定所述错误消息属于不属于重复发送的错误消息。
其中, 所述第一内存地址为所述第二端点设备在所述主域的内存地址, 用于在主域中代表所述第二端点设备, 所述第二内存地址为所述第二端点设 备在所述扩展域的内存地址, 用于在扩展域中代表所述第二端点设备。
202: 根据所述第二端点设备的状态建立设备状态记录, 所述设备状态 记录包括所述第二端点设备的第一内存地址与所述第二端点设备的状态的 对应关系。
所述 RCEP根据所述第二端点设备的状态, 建立设备状态记录, 所述设 备状态记录包括所述第二端点设备的第一内存地址与所述第二端点设备的 状态的对应关系, 使得所述 RCEP根据所述第二端点设备的第一内存地址, 可以确定所述第二端点设备的状态。
所述根据所述第二端点设备的状态,建立设备状态记录,具体可以包括: 获取所述错误消息或者设备探测响应消息中携带的所述第二端点设备 的 BDF标识或第二内存地址;
根据所述 BDF标识或第二内存地址, 获取所述第二端点设备的第一内 存地址, 可以是:
所述 RCEP根据所述保存的第二端点设备的第二内存地址与第一内存地 址之间的映射关系,将所述第二内存地址转换为所述第二端点设备的第一内 存地址; 或者, 所述 RCEP根据保存的第二端点设备的 BDF标识与第二内 存地址之间的映射关系, 先获取所述第二端点设备的第二内存地址, 再根据 保存的第二端点设备的第二内存地址与第一内存地址之间的映射关系,将所 述第二内存地址转换为所述第二端点设备的第一内存地址;
在所述设备状态记录中记录所述第二端点设备的第一内存地址与所述 第二端点设备的状态的对应关系,使得所述 RCEP可以根据所述第二端点设 备的第一内存地址, 确定所述第二端点设备的状态;
进一步,还可以在所述设备状态记录中记录所述第二端点设备的第一内 存地址与所述第二端点设备的状态的对应关系, 或者所述第二端点设备的 BDF标识与所述第二端点设备的状态的对应关系,使得所述 RCEP还可以根 据所述第二端点设备的第一内存地址或者 BDF标识, 确定所述第二端点设 备的状态。
具体地, 由于所述第二端点设备的第一内存地址包括配置空间访问的第 一内存地址、 MSI访问的第一内存地址、 MMIO访问的第一内存地址和 DMA 访问的第一内存地址, 所述第二端点设备的第二内存地址包括配置空间访问 的第二内存地址、 MSI访问的第二内存地址、 MMIO访问的第二内存地址和 DMA访问的第二内存地址, 所述 RCEP可以根据保存的所述第二端点设备 的每种第二内存地址与每种第一内存地址之间的映射关系, 获取所述第二端 点设备的配置空间访问的第一内存地址、 MSI访问的第一内存地址、 MMIO 访问的第一内存地址和 DMA访问的第一内存地址;
或者, 所述 RCEP可以根据第二端点设备的 BDF标识与每种第二内存 地址之间的映射关系, 获取所述第二端点设备的配置空间访问的第二内存地 址、 MSI访问的第二内存地址、 MMIO访问的第二内存地址和 DMA访问的 第二内存地址,再根据保存的所述第二端点设备的每种第二内存地址与每种 第一内存地址之间的映射关系, 获取所述第二端点设备的配置空间访问的第 一内存地址、 MSI访问的第一内存地址、 MMIO访问的第一内存地址和 DMA 访问的第一内存地址;
则, 所述在所述设备状态记录中记录所述第二端点设备的第一内存地址 与所述第二端点设备的状态的对应关系具体是指: 记录所述第二端点设备的 每种第一内存地址与所述第二端点设备的状态的对应关系; 所述在所述设备 状态记录中记录所述第二端点设备的第二内存地址与所述第二端点设备的 状态的对应关系具体是指: 记录所述第二端点设备的每种第二内存地址与所 述第二端点设备的状态的对应关系。
203: 接收访问请求, 所述访问请求包括所述第二端点设备对所述主域 的访问请求或者所述主域对所述第二端点设备的访问请求。
所述第一端点设备与所述主域之间通过所述访问请求进行消息交互时, 所述访问请求可以是扩展域的第二端点设备对主域进行访问的访问请求,还 可以是主域的根复合体或者所述主域的第一端点设备对所述第二端点设备 进行访问的访问请求, 当所述访问请求来自所述主域时, 所述访问请求携带 所述第二端点设备的第一内存地址, 当所述访问请求来自所述扩展域时, 所 述访问请求携带所述第二端点设备的第二内存地址或者所述第二端点设备 的 BDF标识。
204: 根据所述访问请求中的所述第二端点设备的标识信息, 查询所述 设备状态记录, 确定所述第二端点设备的状态。
所述第二端点设备的标识信息包括以下信息之一或其组合: 所述第二端 点设备的第一内存地址, 所述第二端点的第二内存地址。
当所述访问请求来自所述主域时,根据所述访问请求中的所述第二端点 设备的第一内存地址, 查询所述设备状态记录中记录的所述第二端点设备的 第一内存地址与所述第二端点设备的状态的对应关系,确定所述第二端点设 备的状态, 例如, 当采用 MMIO的访问方式时, 所述访问请求携带所述第 二端点设备的 MMIO访问的第一内存地址, 所述设备状态记录中记录了所 述第二端点设备的每种第一内存地址与所述第二端点设备的状态的对应关 系, 所述 RCEP可以利用所述访问请求中的第二端点设备的 MMIO访问的 第一内存地址, 查询所述设备状态记录, 确定所述第二端点设备的状态。
当所述访问请求来自所述扩展域时,所述 RCEP根据所述访问请求中的 所述第二端点设备的第二内存地址或者 BDF标识, 查询所述设备状态记录, 若所述设备状态记录中没有记录所述第二端点设备的第二内存地址或者 BDF标识与所述第二端点设备的状态的对应关系,则根据所述第二内存地址 或者 BDF标识获取所述第二端点设备的第一内存地址, 通过查询所述设备 状态记录中记录的所述第二端点设备的第一内存地址与所述第二端点设备 的状态的对应关系, 确定所述第二端点设备的状态, 若所述设备状态记录中 记录了所述第二端点设备的第二内存地址或者 BDF标识与所述第二端点设 备的状态的对应关系, 则直接查询所述设备状态记录中记录的所述第二端点 设备的第二内存地址或者 BDF标识与所述第二端点设备的状态的对应关系, 确定所述第二端点设备的状态,避免了将所述第二端点设备的第二内存地址 或者 BDF标识转换为所述第二端点设备的第一内存地址, 加速了确定设备 的状态的过程。
205: 若所述第二端点设备的状态为故障状态, 丢弃所述访问请求以阻 止所述第二端点设备与所述主域之间的通信。 若确定所述第二端点设备的状态为故障状态, 则丢弃所述访问请求以阻 止所述 RCEP将所述访问请求进行转发,从而阻止所述第二端点设备与所述 主域之间的通信。
进一步, 所述方法还可以包括:
206: 若所述第二端点设备的状态为故障状态, 发送故障隔离消息到
CPU, 所述故障隔离消息用于指示所述主域中的 CPU停止对所述扩展域的 第二端点设备的访问, 所述故障隔离消息携带所述第二端点设备的第一内存 地址。
若所述第二端点设备的状态为故障状态, 所述 RCEP可以发送故障隔离 消息给主域的 CPU, 使得所述主域中的 CPU停止对所述扩展域的第二端点 设备的访问, 例如可以卸载故障的所述第二端点设备的驱动, 或者隔离访问 故障的所述第二端点设备的 I/O路径。
进一步, 若所述访问请求为来自所述主域的对所述第二端点设备进行访 问的访问请求, 所述方法还可以包括:
206': 若所述访问请求为主域发送的访问请求, 向所述主域返回所述访 问请求的模拟响应报文。
具体地, 当所述主域对所述第二端点设备进行访问的访问请求为 Non-post类型的访问请求时, 需要为所述访问请求返回响应消息, 否则所述 主域可能产生返回报文超时错误而导致该计算机系统重启, 然而所述第二端 点设备发生故障后, 所述访问请求可能无法到达所述第二端点设备, 或者虽 然到达所述第二端点设备,所述第二端点设备由于故障无法产生正常的响应 消息, 所述 RCEP可以为所述访问请求生成模拟响应报文, 并返回给所述主 域, 避免产生返回报文超时错误而导致该计算机系统重启, 所述模拟响应报 文可以为可以是 Unsupported Request ( UR )报文或者 Completion Abort ( CA ) 报文。
其中, 所述步骤 206与 206,为两个可选步骤, 两者并非必须同时执行的 步骤。
在本发明实施例中, 对所述扩展域的第二端点设备的状态进行监控, 并 根据所述第二端点设备的状态建立设备状态记录, 所述设备状态记录中包括 所述第二端点设备的第一内存地址与所述第二端点设备的状态的对应关系, 在接收到所述第二端点设备与所述主域之间的访问请求后, 获取所述访问请 求中的所述第二端点设备的第一内存地址, 或者根据所述访问请求中的所述 第二端点设备的 BDF标识或者第二内存地址, 获取所述第二端点设备的第 一内存地址, 查询所述设备状态记录中的所述第二端点设备的第一内存地址 与所述第二端点设备的状态的对应关系, 确定所述第二端点设备的状态, 若 所述第二端点设备的状态为故障状态, 丢弃所述访问请求, 从而阻止所述故 障的第二端点设备与所述主域之间的通信, 并且还可以发送故障隔萬消息到 CPU, 指示 CPU停止对所述扩展域的第二端点设备的访问, 防止故障扩散 到主域。
进一步, 在本发明实施例中, 所述设备状态记录中还可以记录所述第二 端点设备的 BDF标识或者第二内存地址与所述第二端点设备的状态的对应 关系, 使得直接根据所述访问请求中的所述第二端点设备的 BDF标识或者 第二内存地址或者第一内存地址, 查询所述设备状态记录, 就能够确定所述 第二端点设备的状态,避免了将所述第二端点设备的第二内存地址或者 BDF 标识转换为所述第二端点设备的第一内存地址,加速了确定所述第二端点设 备的状态的过程。
此外, 在本发明实施例中, 对所述第二端点设备的状态进行监控时, 在 接收到所述第二端点设备发送的错误消息, 通过所述错误消息的类型, 确定 所述第二端点设备的状态位故障状态之后,还可以进一步确定所述第二端点 设备发送的错误消息是否属于重复发送的错误消息,如果属于重复发送的错 误消息, 则丢弃所述错误消息, 以阻止所述错误消息到达主域, 防止了错误 的扩散, 避免 CPU进行不必要的重复的错误消息处理, 保障了系统的可靠 性。
本发明实施例三
结合图 1所示的计算机系统, 本发明实施例提供的故障隔离方法如图 5 所示,所述扩展域的第二端点设备 116为故障设备,利用 DMA的访问方式, 所述主域的第一端点设备 108发送 Non-post类型的访问请求对所述故障的第 二端点设备 116进行访问, 所述访问请求先被路由到所述 RCEP 106, 由于 所述第二端点设备发生故障时, 所述访问请求可能已经越过所述 RCEP 106 的边界,即可能已经经过所述 RCEP 106的转发,还可能还未越过所述 RCEP 106的边界, 即还未经过所述 RCEP 106的转发, 所述方法具体可以包括: 301: 所述 RCEP 106监控所述扩展域的所有第二端点设备的状态。
所述设备的状态包括故障状态和非故障状态, 所述 RCEP 106对所述扩 展域的第二端点设备 114和所述第二端点设备 116的状态进行监控, 具体包 括: 接收所述第二端点设备 114或 116发送的错误消息, 或者接收用于指示 所述第二端点设备 114或 116是否存在的设备探测响应消息; 根据所述错误 消息或所述设备探测响应消息, 确定所述第二端点设备 114或 116的状态。
302: 根据所述扩展域的所有第二端点设备的状态建立设备状态记录, 所述设备状态记录包括所述扩展域的第二端点设备的第一内存地址与该设 备的状态的对应关系。
例如, 所述第二端点设备 116发送的错误消息中包括所述第二端点设备 116的 BDF标识, 所述 RCEP 106获取所述第二端点设备 116的 BDF标识; 根据第二端点设备 116的 BDF标识与每种第二内存地址之间的映射关系, 获取所述第二端点设备 116的配置空间访问的第二内存地址、 MSI访问的第 二内存地址、 MMIO访问的第二内存地址和 DMA访问的第二内存地址, 根 据保存的所述第二端点设备 116的每种第二内存地址与每种第一内存地址之 间的映射关系,获取所述第二端点设备 116的配置空间访问的第一内存地址、 MSI访问的第一内存地址、 MMIO访问的第一内存地址和 DMA访问的第一 内存地址; 在所述设备状态记录中记录所述第二端点设备 116的每种第一内 存地址与所述第二端点设备 116的状态的对应关系,例如将所述第二端点设 备 116的每种第一内存地址都标记为故障。
同理, 若述第二端点设备 114故障, 在所述设备状态记录中记录所述第 二端点设备 114的每种第一内存地址与所述第二端点设备 114的状态的对应 关系, 例如将所述第二端点设备 116的每种第一内存地址都标记为故障。
303: 接收所述第一端点设备 108对所述第二端点设备 116进行访问的 访问请求, 所述访问请求携带所述第二端点设备 116的 DMA访问的第一内 存地址。
所述第一端点设备 108对所述第二端点设备 116进行 DMA访问时, 所 述访问请求通过地址路由发送到所述 RCEP 106, 所述 RCEP获取所述访问 请求携带的所述第二端点设备 116的 DMA访问的第一内存地址。
304: 根据所述访问请求中的所述第二端点设备 116的 DMA访问的第 一内存地址, 确定所述第二端点设备 116的状态。
根据所述访问请求中的所述第二端点设备 116的 DMA访问的第一内存 地址, 查询所述设备状态记录中记录的所述第二端点设备的第一内存地址与 所述第二端点设备的状态的对应关系, 确定所述第二端点设备 116的状态。
具体地, 当所述第二端点设备 116发生故障时, 如果所述访问请求未越 过所述 RCEP的边界, 则所述设备状态记录中记录的所述第二端点设备的状 态为故障状态, 根据查询所述设备状态记录中记录的所述第二端点设备 116 的 DMA访问的第一内存地址与所述第二端点设备 116的状态的关系, 将确 定的所述第二端点设备 116的状态为故障状态; 当所述第二端点设备 116发 生故障时, 如果所述访问请求已经越过所述 RCEP的边界, 则此时所述设备 状态记录中记录的所述第二端点设备的状态为非故障状态, 查询所述设备状 态记录中记录的所述第二端点设备 116的 DMA访问的第一内存地址与所述 第二端点设备的状态的对应关系,将确定的所述第二端点设备 116的状态为 非故障状态。
305: 若所述第二端点设备 116的状态为故障状态, 丢弃所述访问请求 以阻止所述第一端点设备 108与对所述第二端点设备 116的访问, 然后执行 步骤 306。
当所述第二端点设备 116发生故障时, 如果所述访问请求未越过所述
RCEP 106的边界, 则所述 RCEP接收到所述访问请求后, 确定所述被访问 的第二端点设备 116的状态为故障状态, 丢弃所述访问请求, 以阻止所述第 一端点设备 108对所述第二端点设备 116的访问,避免了故障扩散到所述主 域。
306: 向所述第一端点设备 108返回所述访问请求的模拟响应报文。 由于所述访问请求为 Non-post类型的访问请求,为所述访问请求生成模 拟响应报文, 将所述生成的模拟响应报文返回给所述第一端点设备 108, 避 免所述主域的 CPU产生返回报文超时错误而导致该计算机系统重启。
在本发明实施例中, 所述 RCEP 116对所述所述扩展域的所有第二端点 设备的状态进行监控, 并根据所述扩展域的所有第二端点设备的状态建立设 备状态记录, 所述主域的第一端点设备 108发送访问请求对所述扩展域的第 二端点设备 116进行访问时, 所述 RCEP接收所述访问请求, 并根据所述访 问请求中的 DMA访问的第一内存地址, 查询所述设备状态记录, 确定所述 第二端点设备的状态, 如果所述第二端点设备 116发生故障时, 所述访问请 求还未越过所述 RCEP 106的边界, 则步骤 304确定所述第二端点设备 116 的状态为故障状态, 此时所述 RCEP丢弃所述访问请求, 以阻止所述第一端 点设备 108对所述第二端点设备 116的访问, 避免了故障扩散到所述主域, 并且所述 RCEP还可以向所述第一端点设备 108返回所述访问请求的模拟响 应报文, 避免所述主域的 CPU产生返回报文超时错误而导致该计算机系统 重启。
进一步, 如果所述第二端点设备 116发生故障时, 所述访问请求已经越 过所述 RCEP 106的边界, 则步骤 304将确定所述第二端点设备 116的状态 为非故障状态, 所述 RCEP 106按照正常的工作流程, 将所述访问请求发送 给所述第二端点设备 116, 所述故障的第二端点设备 116接收到所述访问请 求之后, 可能受到所述访问请求的触发, 向所述 RCEP 106发送错误消息, 所述故障的第二端点设备 116还可能主动向所述 RCEP发送错误消息以上报 故障, 所述 RCEP接收来自所述第二端点设备的错误消息, 对所述第二端点 设备的状态进行监控, 如果所述错误消息的类型是不可纠正的错误消息 ( Uncorrectable error )类型, 则确定所述第二端点设备的状态为故障状态, 所述 RCEP可以进一步查询所述设备状态记录,确定所述错误消息是否属于 重复发送的错误消息, 如果属于重复发送的错误消息, 则丢弃所述重复发送 的错误消息, 避免 CPU进行不必要的重复的错误消息处理, 保障了系统的 可靠性。
本发明的实施例四
结合图 1所示的计算机系统, 本发明实施例提供的故障隔离方法如图 6 所示, 所述扩展域的第二端点设备 116为故障设备, 利用 MMIO的访问方 式,所述故障的第二端点设备 108发送 Non-post类型的访问请求对所述主域 的主 CPU 101进行访问, 所述访问请求先被路由到所述 RCEP 106, 由于所 述第二端点设备发生故障时, 所述访问请求可能已经越过所述 RCEP 106的 边界, 即可能已经经过所述 RCEP 106的转发, 还可能还未越过所述 RCEP 106的边界, 即还未经过所述 RCEP 106的转发, 所述方法具体可以包括: 401: 所述 RCEP106监控所述扩展域的所有第二端点设备的状态。
所述设备的状态包括故障状态和非故障状态, 所述 RCEP 106对所述扩 展域的第二端点设备 114和所述第二端点设备 116的状态进行监控, 具体包 括: 接收所述第二端点设备 114或 116发送的错误消息, 或者接收用于指示 所述第二端点设备 114或 116是否存在的设备探测响应消息; 根据所述错误 消息或所述设备探测响应消息, 确定所述第二端点设备 114或 116的状态。 402: 根据所述扩展域的所有第二端点设备的状态建立设备状态记录, 所述设备状态记录包括所述扩展域的第二端点设备的第一内存地址与该设 备的状态的对应关系。
例如, 所述第二端点设备 116发送的错误消息中包括所述第二端点设备 116的 BDF标识, 所述 RCEP 106获取所述第二端点设备 116的 BDF标识; 根据第二端点设备 116的 BDF标识与第二内存地址之间的映射关系, 获取 所述第二端点设备 116的配置空间访问的第二内存地址、 MSI访问的第二内 存地址、 MMIO访问的第二内存地址和 DMA访问的第二内存地址, 根据保 存的所述第二端点设备 116 的第二内存地址与第一内存地址之间的映射关 系, 获取所述第二端点设备 116的配置空间访问的第一内存地址、 MSI访问 的第一内存地址、 MMIO访问的第一内存地址和 DMA访问的第一内存地址; 在所述设备状态记录中记录所述第二端点设备 116的每种第一内存地址与所 述第二端点设备 116的状态的对应关系, 例如将所述第二端点设备 116的每 种第二内存地址都标记为故障。
同理, 若述第二端点设备 114故障, 在所述设备状态记录中记录所述第 二端点设备 114的每种第一内存地址与所述第二端点设备 114的状态的对应 关系, 以及所述第二端点设备 114的 BDF标识与所述第二端点设备 114的 状态的对应关系。
403: 接收所述第二端点设备 116对所述主 CPU 101进行访问的访问请 求, 所述访问请求携带所述第二端点设备 116的 MMIO访问的第二内存地 址。
所述第二端点设备 116对所述主 CPU 101进行 MMIO访问时, 所述访 问请求通过地址路由发送到所述 RCEP 106, 所述 RCEP获取所述访问请求 携带的所述第二端点设备 116的 MMIO访问的第二内存地址。
404: 根据所述访问请求中的所述第二端点设备 116的 MMIO访问的第 二内存地址, 确定所述第二端点设备 116的状态。 根据所述访问请求中的所述第二端点设备 116的 MMIO访问的第二内 存地址, 利用所述保存的所述第二端点设备的每种第一内存地址与每种第二 内存地址的映射关系, 获取所述第二端点设备 116的 MMIO访问的第一内 存地址, 查询所述设备状态记录中记录的所述第二端点设备的第一内存地址 与所述第二端点设备的状态的对应关系,确定所述第二端点设备 116的状态。
具体地, 当所述第二端点设备 116发生故障时, 如果所述访问请求未越 过所述 RCEP的边界, 则根据查询所述设备状态记录中记录的所述第二端点 设备 116的 DMA访问的第一内存地址与所述第二端点设备 116的状态的关 系, 将确定的所述第二端点设备 116的状态为故障状态; 当所述第二端点设 备 116发生故障时, 如果所述访问请求已经越过所述 RCEP的边界, 则此时 查询所述设备状态记录中记录的所述第二端点设备 116的 DMA访问的第一 内存地址与所述第二端点设备 116的状态的关系,将确定的所述第二端点设 备 116的状态为非故障状态。
405: 若所述第二端点设备 116的状态为故障状态, 丢弃所述访问请求 以阻止所述第二端点设备 116与对所述主 CPU 101的访问。
当所述第二端点设备 116发生故障时, 如果所述访问请求未越过所述 RCEP 106的边界, 则所述 RCEP接收到所述访问请求后, 确定所述被访问 的第二端点设备 116的状态为故障状态, 丢弃所述访问请求, 以阻止所述第 二端点设备 116对所述主 CPU 101的访问, 避免了故障扩散到所述主域。
在本发明实施例中, 所述 RCEP 116对所述扩展域的所有第二端点设备 的状态进行监控, 并根据所述扩展域的所有第二端点设备的状态建立设备状 态记录, 所述主域的第二端点设备 116 发送访问请求对所述主域的主 CPU101进行访问时, 所述 RCEP接收所述访问请求, 并根据所述访问请求 中的 MMIO访问的第二内存地址, 获取所述第二端点设备的 MMIO访问的 第一内存地址, 查询所述设备状态记录, 确定所述第二端点设备的状态, 如 果所述第二端点设备 116发生故障时,所述访问请求还未越过所述 RCEP 106 的边界, 则步骤 404确定所述第二端点设备 116的状态为故障状态, 此时所 述 RCEP丢弃所述访问请求,以阻止所述第二端点设备 116对所述主 CPU101 的访问, 避免了故障扩散到所述主域。
进一步, 如果所述第二端点设备 116发生故障时, 所述访问请求已经越 过所述 RCEP 106的边界, 则步骤 404将确定所述第二端点设备 116的状态 为非故障状态, 所述 RCEP 106按照正常的工作流程, 将所述访问请求发送 给所述主 CPU 101 , 所述主 CPU 101接收到所述访问请求之后, 为所述访问 请求返回响应报文, 所述返回的响应报文先到达所述 RCEP, 由于所述第二 端点设备已经发生故障, 此时将所述返回的响应报文发送给所述故障的第二 端点设备 116已经没有意义, 并可能触发所述故障的第二端点设备 116重复 发送错误消息, 因此, 所述 RCEP可以将所述返回的响应报文丢弃。
此外, 所述故障的第二端点设备 116可能主动向所述 RCEP发送错误消 息以上报故障, 所述 RCEP接收来自所述第二端点设备的错误消息, 对所述 第二端点设备的状态进行监控,如果所述错误消息的类型是不可纠正的错误 消息(Uncorrectable error )类型, 则确定所述第二端点设备的状态为故障状 态, 所述 RCEP可以进一步查询所述设备状态记录, 确定所述错误消息是否 属于重复发送的错误消息, 如果属于重复发送的错误消息, 则丢弃所述重复 发送的错误消息, 防止了故障的扩散,
本发明实施例的装置
本发明实施例提供了一种故障隔离装置, 用于在扩展域的端点设备发生 故障时, 阻止所述主域与所述扩展域端点设备之间的相互访问, 防止故障扩 散到主域。
如图 7所示,为本发明实施例提供的故障隔离装置的组成图,用于 PCIe 互连的计算机系统, 所述计算机系统包括主域和扩展域, 所述主域由根复 合体、 第一端点设备与 RCEP形成, 所述扩展域由所述 RCEP与第二端点 设备形成, 所述装置包括: 监控单元 701 , 用于监控所述扩展域的第二端点设备的状态。 记录单元 702, 用于根据所述第二端点设备的状态建立设备状态记录, 所述设备状态记录包括所述第二端点设备的标识信息与所述第二端点设备 的状态的对应关系。
接收单元 703, 用于接收访问请求, 所述访问请求包括所述第二端点设 备对所述主域的访问请求或者所述主域对所述第二端点设备的访问请求。
确定单元 704, 用于根据所述访问请求中的所述第二端点设备的标识信 息, 查询所述设备状态记录, 确定所述第二端点设备的状态。
处理单元 705, 在所述第二端点设备的状态为故障状态时, 用于丢弃所 述访问请求以阻止所述第二端点设备与所述主域之间的通信。
具体地, 所述第二端点设备的状态包括故障状态和非故障状态, 所述 监控单元 701 可以接收所述第二端点设备发送的错误消息或者接收用于指 示所述第二端点设备是否存在的设备探测响应消息, 根据所述错误消息或 所述设备探测响应消息,确定所述第二端点设备的状态,所述记录单元 702 根据所述监控单元 701 中的所述第二端点设备的状态建立设备状态记录, 所述设备状态记录包括所述第二端点设备的标识信息与所述第二端点设备 的状态的对应关系, 所述接收单元 703接收所述第二端点设备与所述主域 之间的访问请求之后, 所述确定单元 704根据所述访问请求中的所述第二 端点设备的标识信息, 查询所述设备状态记录, 确定所述第二端点设备的 状态, 所述处理单元 705在所述确定单元 704确定第二端点设备的状态为 故障状态时, 用于丢弃所述访问请求, 从而阻止所述故障的第二端点设备 与所述主域之间的通信, 防止故障扩散到主域, 保障了系统的可靠性。
如图 8所示,为本发明实施例提供的故障隔离装置的组成图,用于 PCIe 互连的计算机系统, 所述计算机系统包括主域和扩展域, 所述主域由根复 合体、 第一端点设备与 RCEP形成, 所述扩展域由所述 RCEP与第二端点 设备形成, 所述第二端点设备通过所述 RCEP与所述主域中的根复合体或 第一端点设备进行通信交互, 所述装置可以包括: 监控单元 801、 记录单元 802、 接收单元 803、 确定单元 804、 处理单元 805 , 所述故障隔离装置可以 为所述 RCEP。
所述监控单元 801用于监控所述扩展域的第二端点设备的状态, 所述第 二端点设备的状态包括故障状态和非故障状态,故障状态表明所述第二端点 设备发生故障, 无法进行正常工作, 非故障状态表明所述扩展域的第二端点 设备可以正常工作, 所述监控单元 801对所述扩展域的第二端点设备的状态 进行监控包括: 接收所述第二端点设备发送的错误消息, 或者接收用于指示 所述第二端点设备是否存在的设备探测响应消息,根据所述错误消息或所述 设备探测响应消息, 确定所述第二端点设备的状态, 具体地, 所述监控单元 801可以发送设备探测消息到所述第二端点设备的配置空间寄存器, 获取所 述第二端点设备返回的设备探测响应消息,如果所述设备探测响应消息指示 所述第二端点设备不存在, 表明该第二端点设备由于故障以至于无法探测 到, 确定所述第二端点设备的状态为故障状态, 否则, 确定所述第二端点设 备的状态为非故障状态; 或者, 所述监控单元 801接收来自所述第二端点设 备的错误消息, 根据所述错误消息, 确定所述错误消息的类型, 若所述错误 消息的类型是不可纠正的错误消息( Uncorrectable error )类型, 则确定所述 第二端点设备的状态为故障状态, 否则, 确定所述第二端点设备的状态为非 故障状态。
记录单元 802, 用于根据所述第二端点设备的状态建立设备状态记录, 所述设备状态记录包括所述第二端点设备的第一内存地址与所述第二端点 设备的状态的对应关系, 其中, 所述第一内存地址为所述第二端点设备在所 述主域的内存地址, 用于在主域中代表所述第二端点设备。
所述记录单元 802具体包括: 地址转换模块子单元 802a和状态记录子 单元 802b, 所述地址转换模块子单元 802a用于获取所述错误消息或者设备 探测响应消息中携带的所述第二端点设备的 BDF标识或第二内存地址, 根 据所述 BDF标识或第二内存地址, 获取所述第二端点设备的第一内存地址; 所述地址转换模块子单元 802a保存了第二端点设备的第二内存地址与第一 内存地址之间的映射关系, 以及第二端点设备的 BDF标识与第二内存地址 之间的映射关系,根据所述保存的第二端点设备的第二内存地址与第一内存 地址之间的映射关系,将所述第二内存地址转换为所述第二端点设备的第一 内存地址, 或者, 根据保存的第二端点设备的 BDF标识与第二内存地址之 间的映射关系, 获取所述第二端点设备的第二内存地址, 根据保存的第二端 点设备的第二内存地址与第一内存地址之间的映射关系,将所述第二内存地 址转换为所述第二端点设备的第一内存地址; 所述状态记录子单元 802b用 于在所述设备状态记录中记录所述第二端点设备的第一内存地址与所述第 二端点设备的状态的对应关系,使得所述 RCEP可以根据所述第二端点设备 的第一内存地址, 确定所述第二端点设备的状态, 其中, 所述第二端点设备 的第二内存地址为所述第二端点设备在所述扩展域的内存地址,用于在扩展 域中代表所述第二端点设备。
进一步, 所述状态记录子单元 802b还可以用于在所述设备状态记录中 记录所述第二端点设备的第一内存地址与所述第二端点设备的状态的对应 关系, 或者所述第二端点设备的 BDF标识与所述第二端点设备的状态的对 应关系,使得所述确定单元 803还可以根据所述第二端点设备的第一内存地 址或者 BDF标识, 确定所述第二端点设备的状态。
具体地, 由于所述第二端点设备的第一内存地址包括配置空间访问的第 一内存地址、 MSI访问的第一内存地址、 MMIO访问的第一内存地址和 DMA 访问的第一内存地址, 所述第二端点设备的第二内存地址包括配置空间访问 的第二内存地址、 MSI访问的第二内存地址、 MMIO访问的第二内存地址和 DMA访问的第二内存地址,所述地址转换模块子单元 802a具体用于保存所 述第二端点设备的每种第二内存地址与每种第一内存地址之间的映射关系 , 以及所述第二端点设备的 BDF标识与每种第二内存地址之间的映射关系; 根据所述保存的所述第二端点设备的每种第二内存地址与每种第一内存地 址之间的映射关系, 获取所述第二端点设备的配置空间访问的第一内存地 址、 MSI访问的第一内存地址、 MMIO访问的第一内存地址和 DMA访问的 第一内存地址, 或者先根据第二端点设备的 BDF标识与每种第二内存地址 之间的映射关系, 获取所述第二端点设备的配置空间访问的第二内存地址、 MSI访问的第二内存地址、 MMIO访问的第二内存地址和 DMA访问的第二 内存地址,再根据保存的所述第二端点设备的每种第二内存地址与每种第一 内存地址之间的映射关系, 获取所述第二端点设备的配置空间访问的第一内 存地址、 MSI访问的第一内存地址、 MMIO访问的第一内存地址和 DMA访 问的第一内存地址; 所述记录子单元 802b具体用于记录所述第二端点设备 的每种第一内存地址与所述第二端点设备的状态的对应关系, 或者还用于记 录所述第二端点设备的每种第二内存地址与所述第二端点设备的状态的对 应关系, 或者还用于记录所述第二端点设备的 BDF标识与所述第二端点设 备的状态的对应关系。
所述接收单元 803用于接收访问请求, 所述访问请求包括所述第二端 点设备对所述主域的访问请求或者所述主域对所述第二端点设备的访问请 求, 当所述访问请求来自所述主域时, 所述访问请求携带所述第二端点设 备的第一内存地址, 当所述访问请求来自所述扩展域时, 所述访问请求携 带所述第二端点设备的第二内存地址或者所述第二端点设备的 BDF标识。
所述确定单元 804用于根据所述访问请求中的所述第二端点设备的标 识信息, 查询所述设备状态记录, 确定所述第二端点设备的状态, 其中, 所述第二端点设备的标识信息包括以下信息之一或其组合: 所述第二端点 设备的第一内存地址, 所述第二端点的第二内存地址, 所述第二端点设备 的 BDF标识,具体地, 当所述访问请求来自所述主域时,所述确定单元 804 根据所述访问请求中的所述第二端点设备的第一内存地址, 查询所述设备 状态记录中记录的所述第二端点设备的第一内存地址与所述第二端点设备 的状态的对应关系, 确定所述第二端点设备的状态, 例如, 当采用 MMIO 的访问方式, 所述访问请求携带所述第二端点设备的 MMIO访问的第一内 存地址, 所述设备状态记录中记录了所述第二端点设备的每种第一内存地 址与所述第二端点设备的状态的对应关系, 所述确定单元 804可以利用所 述访问请求中的第二端点设备的 MMIO访问的第一内存地址, 查询所述设 备状态记录, 确定所述第二端点设备的状态; 当所述访问请求来自所述扩 展域时, 所述确定单元 804根据所述访问请求中的所述第二端点设备的第 二内存地址或者 BDF标识, 查询所述设备状态记录, 若所述设备状态记录 中没有记录所述第二端点设备的第二内存地址或者 BDF标识与所述第二端 点设备的状态的对应关系, 则根据所述第二内存地址或者 BDF标识获取所 述第二端点设备的第一内存地址, 通过查询所述设备状态记录中记录的所 述第二端点设备的第一内存地址与所述第二端点设备的状态的对应关系, 确定所述第二端点设备的状态, 若所述设备状态记录中记录了所述第二端 点设备的第二内存地址或者 BDF标识与所述第二端点设备的状态的对应关 系, 则直接查询所述设备状态记录中记录的所述第二端点设备的第二内存 地址或者 BDF标识与所述第二端点设备的状态的对应关系, 确定所述第二 端点设备的状态, 避免了将所述第二端点设备的第二内存地址或者 BDF标 识转换为所述第二端点设备的第一内存地址, 加速了确定设备的状态的过 程。
所述处理单元 805在所述确定单元 804确定所述第二端点设备的状态 为故障状态时, 用于丢弃所述访问请求以阻止所述第二端点设备与所述主 域之间的通信。
所述处理单元 805在所述确定单元 804确定所述第二端点设备的状态 为故障状态时, 还用于发送故障隔离消息到 CPU, 使得所述主域中的 CPU 停止对所述扩展域的第二端点设备的访问, 例如可以卸载故障的所述第二 端点设备的驱动, 或者隔离访问故障的所述第二端点设备的 I/O路径, 所 述故障隔离消息携带所述第二端点设备的第一内存地址。
所述处理单元 805, 在所述访问请求所述访问请求为主域发送的访问请 求时, 还用于向所述主域返回所述访问请求的模拟响应 4艮文, 具体地, 当所 述主域对所述第二端点设备进行访问的访问请求为 Non-post类型的访问请 求时, 需要为所述访问请求返回响应消息, 否则所述主域可能产生返回报文 超时错误而导致该计算机系统重启, 然而所述第二端点设备发生故障后, 所 述访问请求可能无法到达所述第二端点设备,或者虽然到达所述第二端点设 备,所述第二端点设备由于故障无法产生正常的响应消息,所述处理单元 805 可以为所述访问请求生成模拟响应报文, 并返回给所述主域, 避免产生返回 报文超时错误而导致该计算机系统重启, 所述模拟响应报文可以为可以是 Unsupported Request ( UR )报文或者 Completion Abort ( CA )报文。
优选地, 所述监控单元 801在通过接收的错误消息确定所述第二端点设 备的状态为故障状态之后,还用于确定所述错误消息是否属于重复发送的错 误消息, 如果属于重复发送的错误消息, 表明所述第二端点设备已经发送过 错误消息给主域进行相应的错误处理, 则丢弃所述错误消息, 避免 CPU进 行不必要的重复的错误消息处理, 保障了系统的可靠性, 如果不属于重复发 送的错误消息,表明所述错误消息为所述第二端点设备第一次发送的错误消 息, 所述 RCEP将所述错误消息发送给 CPU, 使得 CPU对所述第二端点设 备进行错误处理,所述确定所述错误消息是否为重复发送的错误消息具体包 括:
获取所述错误消息携带的所述第二端点设备的 BDF标识或第二内存地 址; 查询所述设备状态记录中记录的所述第二端点设备的第二内存地址与所 述第二端点设备的状态的对应关系, 确定所述第二端点设备的状态, 或者, 查询所述设备状态记录中记录的所述第二端点设备的 BDF标识与所述第二 端点设备的状态的对应关系, 确定所述第二端点设备的状态, 或者, 根据所 述访问请求中的所述第二端点设备的第二内存地址或者 BDF标识, 确定所 述第二端点设备的第一内存地址,通过查询所述设备状态记录中记录的所述 第二端点设备的第一内存地址与所述第二端点设备的状态的对应关系,确定 所述第二端点设备的状态; 如果确定所述第二端点设备的状态为故障状态, 确定所述错误消息属于重复发送的错误消息,如果确定所述第二端点设备的 状态为非故障状态, 确定所述错误消息属于不属于重复发送的错误消息。
在本发明实施例中, 所述监控单元 801对所述扩展域的第二端点设备的 状态进行监控,所述记录单元 802根据所述监控单元 801确定的所述第二端 点设备的状态建立设备状态记录,所述设备状态记录中包括所述第二端点设 备的第一内存地址与所述第二端点设备的状态的对应关系, 所述确定单元 804在所述接收单元 803接收到所述第二端点设备与所述主域之间的访问请 求后, 获取所述访问请求中的所述第二端点设备的第一内存地址, 或者根据 所述访问请求中的所述第二端点设备的 BDF标识或者第二内存地址, 获取 所述第二端点设备的第一内存地址, 查询所述设备状态记录中的所述第二端 点设备的第一内存地址与所述第二端点设备的状态的对应关系,确定所述第 二端点设备的状态, 所述处于单元 805在所述确定单元 804确定所述第二端 点设备的状态为故障状态时,丢弃所述访问请求从而阻止所述故障的第二端 点设备与所述主域之间的通信, 并且还可以发送故障隔离消息到 CPU,指示 CPU停止对所述扩展域的第二端点设备的访问, 防止故障扩散到主域。
进一步, 在本发明实施例中, 所述记录单元 802还可以在所述设备状态 记录中记录所述第二端点设备的 BDF标识或者第二内存地址与所述第二端 点设备的状态的对应关系,使得所述确定单元 804直接根据所述访问请求中 的所述第二端点设备的 BDF标识或者第二内存地址或者第一内存地址, 查 询所述设备状态记录, 就能够确定所述第二端点设备的状态, 避免了将所述 第二端点设备的第二内存地址或者 BDF标识转换为所述第二端点设备的第 一内存地址, 加速了确定所述第二端点设备的状态的过程。
此外, 在本发明实施例中, 所述监控单元 801对所述第二端点设备的状 态进行监控时, 在接收到所述第二端点设备发送的错误消息, 通过所述错误 消息的类型, 确定所述第二端点设备的状态为故障状态之后, 还可以进一步 确定所述第二端点设备发送的错误消息是否属于重复发送的错误消息,如果 属于重复发送的错误消息, 则丢弃所述错误消息, 以阻止所述错误消息到达 主域, 避免 CPU进行不必要的重复的错误消息处理, 保障了系统的可靠性。
如图 9为本发明实施例提供的故障隔离系统 900,所述系统 900包括 PCIe 主域 910和扩展域 920, 所述主域包括根复合体 911、 第一端点设备 912与 根复合体端点设备 913, 所述扩展域 920包括所述根复合体端点设备 913和 第二端点设备 921 , 所述根复合体端点设备 913用于监控所述扩展域的第二 端点设备 921的状态,根据所述第二端点设备 921的状态建立设备状态记录, 所述设备状态记录包括所述第二端点设备 921的标识信息与所述第二端点设 备 921的状态的对应关系, 接收访问请求, 所述访问请求包括所述第二端点 设备 921对所述主域 910的访问请求或者所述主域 910对所述第二端点设备 921的访问请求,根据所述访问请求中的所述第二端点设备 921的标识信息, 查询所述设备状态记录, 确定所述第二端点设备 921的状态, 若所述第二端 点设备 921的状态为故障状态,丢弃所述访问请求以阻止所述第二端点设备 921与所述主域 910之间的通信。
在本发明实施例中, 对所述扩展域的第二端点设备的状态进行监控, 并 根据所述第二端点设备的状态建立设备状态记录,在接收到所述第二端点设 备与所述主域之间的访问请求后,根据所述访问请求中的所述第二端点设备 的标识信息, 查询所述设备状态记录, 确定所述第二端点设备的状态, 若所 述第二端点设备的状态为故障状态, 丢弃所述访问请求, 从而阻止所述故障 的第二端点设备与所述主域之间的通信, 防止故障扩散到主域, 保障了系统 的可靠性。
如图 10, 为本发明实施例提供的故障隔离装置的结构组成示意图。 本发 明实施例提供的故障隔离装置用于 PCIe互连的计算机系统, 该计算机系统包 括主域和扩展域, 所述主域由根复合体、 第一端点设备与根复合体端点设备 形成, 所述扩展域由所述根复合体端点设备与第二端点设备形成;
该故障隔离装置可包括:
处理器 1001、存储器 1002、系统总线 1004和通信接口 1005。处理器 1001、 存储器 1002和通信接口 1005之间通过系统总线 1004连接并完成相互间的通 信。
处理器 1001可能为单核或多核中央处理单元, 或者为特定集成电路, 或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器 1002 可以为高速 RAM 存储器, 也可以为非易失性存储器 ( non-volat i le memory ), 例如至少一个磁盘存储器。
存储器 1002用于计算机执行指令 1003。 具体的, 计算机执行指令 1003 中可以包括程序代码。
当所述故障隔离装置运行时, 处理器 1001运行计算机执行指令 1003 , 可以执行如下方法:
监控所述扩展域的第二端点设备的状态;
根据所述第二端点设备的状态建立设备状态记录, 所述设备状态记录包 括所述第二端点设备的标识信息与所述第二端点设备的状态的对应关系; 接收访问请求, 所述访问请求包括所述第二端点设备对所述主域的访问 请求或者所述主域对所述第二端点设备的访问请求;
根据所述访问请求中的所述第二端点设备的标识信息, 查询所述设备状 态记录, 确定所述第二端点设备的状态;
若所述第二端点设备的状态为故障状态,丢弃所述访问请求以阻止所述 第二端点设备与所述主域之间的通信。
所述方法具体还可以包括:
监控所述扩展域的第二端点设备的状态;
根据所述第二端点设备的状态建立设备状态记录, 所述设备状态记录包 括所述第二端点设备的第一内存地址与所述第二端点设备的状态的对应关 系;
接收访问请求, 所述访问请求包括所述第二端点设备对所述主域的访问 请求或者所述主域对所述第二端点设备的访问请求;
根据所述访问请求中的所述第二端点设备的标识信息, 查询所述设备状 态记录, 确定所述第二端点设备的状态;
若所述第二端点设备的状态为故障状态,丢弃所述访问请求以阻止所述 第二端点设备与所述主域之间的通信;
若所述第二端点设备的状态为故障状态,发送故障隔离消息到 CPU, 所 述故障隔离消息用于指示所述主域中的 CPU停止对所述扩展域的第二端点 设备的访问, 所述故障隔离消息携带所述第二端点设备的第一内存地址; 若所述访问请求为主域发送的访问请求, 向所述主域返回所述访问请求 的模拟响应报文。
本领域普通技术人员将会理解, 本发明的各个方面、 或各个方面的可能 实现方式可以被具体实施为系统、 方法或者计算机程序产品。 因此, 本发明 的各方面、 或各个方面的可能实现方式可以采用完全硬件实施例、 完全软件 实施例 (包括固件、驻留软件等等), 或者组合软件和硬件方面的实施例的形 式, 在这里都统称为"电路"、 "模块 "或者 "系统"。 此外, 本发明的各方面、 或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产 品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。 计算机可读存储介质包含但不限于电子、 磁性、 光学、 电磁、 红外或半导体 系统、 设备或者装置, 或者前述的任意适当组合, 如随机存取存储器 (RAM), 只读存储器 (ROM)、 可擦除可编程只读存储器 (EPROM 或者快闪 存储器)、 光纤、 便携式只读存储器 (CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代 码, 使得处理器能够执行在流程图中每个步骤、 或各步骤的组合中规定的功 能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计 算机上执行、 作为单独的软件包、 部分在用户的计算机上并且部分在远程计 算机上, 或者完全在远程计算机或者服务器上执行。 也应该注意, 在某些替 代实施方案中, 在流程图中各步骤、 或框图中各块所注明的功能可能不按图 中注明的顺序发生。 例如, 依赖于所涉及的功能, 接连示出的两个步骤、 或 两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执 行。
本领域普通技术人员可以意识到, 结合本文中所公开的实施例描述的各 示例的单元及算法步骤, 能够以电子硬件、 或者计算机软件和电子硬件的结 合来实现。 这些功能究竟以硬件还是软件方式来执行, 取决于技术方案的特 定应用和设计约束条件。 专业技术人员可以对每个特定的应用来使用不同方 法来实现所描述的功能, 但是这种实现不应认为超出本发明的范围。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易 想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护 范围应所述以权利要求的保护范围为准。

Claims (1)

  1. 权利要求
    1、 一种故障隔离的方法, 其特征在于, 用于高速外围组件互联 PCIe互 连的计算机系统,该计算机系统包括主域和扩展域,所述主域包括根复合体、 第一端点设备与根复合体端点设备, 所述扩展域包括所述根复合体端点设备 与第二端点设备, 所述方法包括:
    监控所述扩展域的第二端点设备的状态;
    根据所述第二端点设备的状态建立设备状态记录, 所述设备状态记录包 括所述第二端点设备的标识信息与所述第二端点设备的状态的对应关系; 接收访问请求, 所述访问请求包括所述第二端点设备对所述主域的访问 请求或者所述主域对所述第二端点设备的访问请求;
    根据所述访问请求中的所述第二端点设备的标识信息, 查询所述设备状 态记录, 确定所述第二端点设备的状态;
    若所述第二端点设备的状态为故障状态,丢弃所述访问请求以阻止所述 第二端点设备与所述主域之间的通信。
    2、 根据权利要求 1所述的方法, 其特征在于, 所述监控所述扩展域的 第二端点设备的状态, 包括:
    接收所述第二端点设备发送的错误消息, 或者接收用于指示所述第二端 点设备是否存在的设备探测响应消息;
    根据所述错误消息或所述设备探测响应消息,确定所述第二端点设备的 状态。
    3、 根据权利要求 2所述的方法, 其特征在于, 所述第二端点设备的标 识信息包括所述第二端点设备的第一内存地址, 所述第一内存地址为所述第 二端点设备在所述主域的内存地址;
    所述根据所述第二端点设备的状态建立设备状态记录,所述设备状态记 录包括所述第二端点设备的标识信息与所述第二端点设备的状态的对应关 系, 包括: 获取所述错误消息或者设备探测响应消息中携带的所述第二端点设备 的总线 /设备 /功能 BDF标识或第二内存地址, 其中, 所述第二内存地址为所 述第二端点设备在所述扩展域的内存地址;
    根据所述 BDF标识或第二内存地址, 获取所述第二端点设备的第一内 存地址 ^
    在所述设备状态记录中记录所述第二端点设备的第一内存地址与所述 第二端点设备的状态的对应关系。
    4、 根据权利要求 3所述的方法, 其特征在于, 所述第二端点设备的标 识信息还包括所述第二端点设备的第二内存地址;
    所述在所述设备状态记录中记录所述第二端点设备的第一内存地址与 所述第二端点设备的状态的对应关系之后, 还包括: 在所述设备状态记录中 记录所述第二端点设备的第二内存地址与所述第二端点设备的状态的对应 关系。
    5、 根据权利要求 3或 4所述的方法, 其特征在于, 所述第二端点设备 的标识信息还包括所述第二端点设备的 BDF标识;
    所述在所述设备状态记录中记录所述第二端点设备的第一内存地址与 所述第二端点设备的状态的对应关系之后, 还包括: 在所述设备状态记录中 记录所述第二端点设备的 BDF标识与所述第二端点设备的状态的对应关系。
    6、 根据权利要求 3所述的方法, 其特征在于, 所述根据所述 BDF标识 或第二内存地址, 获取所述第二端点设备的第一内存地址, 包括:
    根据保存的所述第二端点设备的第二内存地址与第一内存地址之间的 映射关系, 将所述第二内存地址转换为所述第二端点设备的第一内存地址; 或者,
    根据保存的所述第二端点设备的 BDF标识与第二内存地址之间的映射 关系, 获取所述第二端点设备的第二内存地址, 根据保存的所述第二端点设 备的第二内存地址与第一内存地址之间的映射关系,将所述第二内存地址转 换为所述第二端点设备的第一内存地址。
    7、 根据权利要求 3或 6所述的方法, 其特征在于, 所述第二端点设备 的第一内存地址包括配置空间访问的第一内存地址、 消息信号中断访问的第 一内存地址、 内存映射输入输出访问的第一内存地址和 DMA访问的第一内 存地址 ^
    则, 所述在所述设备状态记录中记录所述第二端点设备的第一内存地址 与所述第二端点设备的状态的对应关系包括:
    在所述设备状态记录中记录所述第二端点设备的每种第一内存地址与 所述第二端点设备的状态的对应关系。
    8、 根据权利要求 7所述的方法, 其特征在于, 所述第二端点设备的第 二内存地址包括配置空间访问的第二内存地址、 消息信号中断访问的第二内 存地址、 内存映射输入输出访问的第二内存地址和 DMA访问的第二内存地 址;
    所述第二端点设备的第二内存地址与第一内存地址之间的映射关系包 括所述第二端点设备的每种第二内存地址与每种第一内存地址之间的映射 关系;
    所述根据保存的所述第二端点设备的第二内存地址与第一内存地址之 间的映射关系,将所述第二内存地址转换为所述第二端点设备的第一内存地 址, 包括: 根据保存的所述第二端点设备的每种第二内存地址与每种第一内 存地址之间的映射关系, 获取所述第二端点设备的配置空间访问的第一内存 地址、 消息信号中断访问的第一内存地址、 内存映射输入输出访问的第一内 存地址和 DMA访问的第一内存地址。
    9、 根据权利要求 3-8任意一项所述的方法, 所述方法还包括: 发送故障隔离消息到 CPU, 所述故障隔离消息用于指示所述主域中的 CPU停止对所述扩展域的第二端点设备的访问,所述故障隔离消息携带所述 第二端点设备的第一内存地址。 10、 根据权利要求 3-8任意一项所述的方法, 若所述访问请求为所述主 域对所述第二端点设备的访问请求, 所述方法还包括:
    向所述主域返回所述访问请求的模拟响应报文。
    11、 根据权利要求 2所述的方法, 在接收所述第二端点设备发送的错误 消息之后, 还包括:
    确定所述错误消息是否属于重复发送的错误消息,如果属于重复发送的 错误消息, 则丢弃所述错误消息。
    12、 一种故障隔离的装置, 其特征在于, 用于高速外围组件互联 PCIe 互连的计算机系统, 该计算机系统包括主域和扩展域, 所述主域包括根复合 体、 第一端点设备与根复合体端点设备, 所述扩展域包括所述根复合体端点 设备与第二端点设备, 所述装置包括:
    监控单元, 用于监控所述扩展域的第二端点设备的状态;
    记录单元, 用于根据所述第二端点设备的状态建立设备状态记录, 所述 设备状态记录包括所述第二端点设备的标识信息与所述第二端点设备的状 态的对应关系;
    接收单元, 用于接收访问请求, 所述访问请求包括所述第二端点设备对 所述主域的访问请求或者所述主域对所述第二端点设备的访问请求;
    确定单元, 用于根据所述访问请求中的所述第二端点设备的标识信息, 查询所述设备状态记录, 确定所述第二端点设备的状态;
    处理单元, 在所述第二端点设备的状态为故障状态时, 用于丢弃所述访 问请求以阻止所述第二端点设备与所述主域之间的通信。
    13、 根据权利要求 12所述的装置, 其特征在于, 所述监控单元具体用 于:
    接收所述第二端点设备发送的错误消息, 或者接收用于指示所述第二端 点设备是否存在的设备探测响应消息,根据所述错误消息或所述设备探测响 应消息, 确定所述第二端点设备的状态。 14、 根据权利要求 13所述的装置, 其特征在于, 所述第二端点设备的 标识信息包括所述第二端点设备的第一内存地址, 所述第一内存地址为所述 第二端点设备在所述主域的内存地址;
    所述记录单元具体包括:
    地址转换模块子单元, 用于在所述监控单元确定所述第二端点设备的故 障状态时, 获取所述错误消息或者所述设备探测响应消息中携带的所述第二 端点设备的 BDF标识或第二内存地址,根据所述 BDF标识或第二内存地址, 获取所述第二端点设备的第一内存地址, 其中, 所述第二内存地址为所述第 二端点设备在所述扩展域的内存地址;
    状态记录子单元, 用于在所述设备状态记录中记录所述第二端点设备的 第一内存地址与所述第二端点设备的状态的对应关系。
    15、 根据权利要求 14所述的装置, 其特征在于, 所述第二端点设备的 标识信息还包括所述第二端点设备的第二内存地址;
    所述状态记录子单元还用于在所述设备状态记录中记录所述第二端点 设备的第二内存地址与所述第二端点设备的状态的对应关系。
    16、 根据权利要求 14或 15所述的装置, 其特征在于, 所述第二端点设 备的标识信息还包括所述第二端点设备的 BDF标识;
    所述状态记录子单元还用于在所述设备状态记录中记录所述第二端点 设备的 BDF标识与所述第二端点设备的状态的对应关系。
    17、 根据权利要求 14所述的装置, 其特征在于, 所述地址转换模块子 单元还用于保存所述第二端点设备的第二内存地址与第一内存地址之间的 映射关系, 以及保存所述第二端点设备的 BDF标识与第二内存地址之间的 映射关系;
    所述地址转换模块子单元具体用于根据保存的所述第二端点设备的第 二内存地址与第一内存地址之间的映射关系,将所述第二内存地址转换为所 述第二端点设备的第一内存地址; 或者, 根据保存的所述第二端点设备的 BDF标识与第二内存地址之间的映射 关系, 获取所述第二端点设备的第二内存地址, 根据保存的所述第二端点设 备的第二内存地址与第一内存地址之间的映射关系,将所述第二内存地址转 换为所述第二端点设备的第一内存地址。
    18、 根据权利要求 14或 17所述的装置, 其特征在于, 所述第二端点设 备的第一内存地址包括配置空间访问的第一内存地址、 消息信号中断访问的 第一内存地址、 内存映射输入输出访问的第一内存地址和 DMA访问的第一 内存地址;
    所述地址转换模块子单元具体用于记录所述第二端点设备的每种第一 内存地址与所述第二端点设备的对应关系。
    19、 根据权利要求 18所述的装置, 其特征在于, 所述第二端点设备的 第二内存地址包括配置空间访问的第二内存地址、 消息信号中断访问的第二 内存地址、 内存映射输入输出访问的第二内存地址和 DMA访问的第二内存 地址;
    所述地址转换模块子单元具体用于保存所述第二端点设备的每种第二 内存地址与每种第一内存地址之间的映射关系; 根据保存的所述第二端点设 备的每种第二内存地址与每种第一内存地址之间的映射关系 , 获取所述第二 端点设备的配置空间访问的第一内存地址、 消息信号中断访问的第一内存地 址、 内存映射输入输出访问的第一内存地址和 DMA访问的第一内存地址。
    20、 根据权利要求 14-19任意一项所述的装置, 所述处理单元还用于发 送故障隔离消息到 CPU, 所述故障隔离消息用于指示所述主域中的 CPU停 止对所述扩展域的第二端点设备的访问, 所述故障隔离消息携带所述第二端 点设备的第一内存地址。
    21、 根据权利要求 14-19任意一项所述的装置, 其特征在于, 所述处理 单元还用于: 在所述访问请求为所述主域对所述第二端点设备的访问请求 时, 向所述主域返回所述访问请求的模拟响应 ^艮文。 22、 根据权利要求 13所述的装置, 其特征在于, 所述监控单元还用于, 在接收所述第二端点设备发送的错误消息之后,确定所述错误消息是否属于 重复发送的错误消息,如果属于重复发送的错误消息,则丢弃所述错误消息。
    23、 根据权利要求 12-22任意一项所述的装置, 其特征在于, 所述故障 隔离装置为所述根复合体端点设备。
    24、 一种故障隔萬系统, 所述系统包括高速外围组件互联 PCIe主域和 扩展域, 所述主域包括根复合体、 第一端点设备与根复合体端点设备, 所述 扩展域包括所述根复合体端点设备和第二端点设备, 所述根复合体端点设备 用于:
    监控所述扩展域的第二端点设备的状态,根据所述第二端点设备的状态 建立设备状态记录, 所述设备状态记录包括所述第二端点设备的标识信息与 所述第二端点设备的状态的对应关系,接收所述第二端点设备发送的访问请 求, 或者所述主域对所述第二端点设备的访问请求, 根据所述访问请求中的 所述第二端点设备的标识信息, 查询所述设备状态记录, 确定所述第二端点 设备的状态, 若所述第二端点设备的状态为故障状态, 丢弃所述访问请求以 阻止所述第二端点设备与所述主域之间的通信。
    25、 一种故障隔离装置, 其特征在于, 用于高速外围组件互联 PCIe互 连的计算机系统,该计算机系统包括主域和扩展域,所述主域包括根复合体、 第一端点设备与根复合体端点设备,所述扩展域包括所述根复合体端点设备 与第二端点设备;
    所述装置包括包括处理器、 存储器、 总线和通信接口;
    所述存储器用于存储计算机执行指令, 所述处理器与所述存储器通过所 述总线连接, 当所述故障隔离装置运行时, 所述处理器执行所述存储器存储 的所述计算机执行指令,以使所述故障隔离装置执行如权利要求 1-11中任一 所述的故障隔离方法。
    26、 一种计算机可读介质, 其特征在于, 包括计算机执行指令, 以供计 算机的处理器执行所述计算机执行指令时,所述计算机执行如权利要求 1-11 中任一所述的故障隔离方法。
CN201380001454.4A 2013-09-11 2013-09-11 一种故障处理的方法、计算机系统和装置 Active CN104756081B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/083325 WO2015035574A1 (zh) 2013-09-11 2013-09-11 一种故障处理的方法、计算机系统和装置

Publications (2)

Publication Number Publication Date
CN104756081A true CN104756081A (zh) 2015-07-01
CN104756081B CN104756081B (zh) 2016-08-17

Family

ID=52664929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380001454.4A Active CN104756081B (zh) 2013-09-11 2013-09-11 一种故障处理的方法、计算机系统和装置

Country Status (5)

Country Link
US (1) US9678826B2 (zh)
EP (1) EP2869201B1 (zh)
CN (1) CN104756081B (zh)
ES (1) ES2656464T3 (zh)
WO (1) WO2015035574A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824622A (zh) * 2016-03-11 2016-08-03 联想(北京)有限公司 数据处理方法及电子设备
CN108259212A (zh) * 2017-05-25 2018-07-06 新华三技术有限公司 报文处理方法及装置
WO2019129022A1 (zh) * 2017-12-28 2019-07-04 华为技术有限公司 一种设备的故障处理方法、装置及系统
CN111767242A (zh) * 2020-05-28 2020-10-13 西安广和通无线软件有限公司 Pcie设备控制方法、装置、计算机设备和存储介质
CN112306913A (zh) * 2019-07-30 2021-02-02 华为技术有限公司 一种端点设备的管理方法、装置及系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015100672A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种扩展PCIe总线域的方法和装置
US9804942B2 (en) * 2014-06-10 2017-10-31 Analog Devices, Inc. Safety node in interconnect data buses
US10114688B2 (en) * 2015-02-16 2018-10-30 Dell Products L.P. System and method for peripheral bus device failure management
CN105874442B (zh) * 2015-09-21 2017-07-14 华为技术有限公司 计算机系统和计算机系统中端点设备访问的方法
US20170091013A1 (en) * 2015-09-28 2017-03-30 Netapp, Inc. Pcie error reporting and throttling
US9354967B1 (en) 2015-11-30 2016-05-31 International Business Machines Corporation I/O operation-level error-handling
US9384086B1 (en) 2015-11-30 2016-07-05 International Business Machines Corporation I/O operation-level error checking
CN108762962A (zh) * 2018-05-18 2018-11-06 网易宝有限公司 防止应用异常的方法和装置、存储介质及电子设备
US11614986B2 (en) * 2018-08-07 2023-03-28 Marvell Asia Pte Ltd Non-volatile memory switch with host isolation
US11544000B2 (en) 2018-08-08 2023-01-03 Marvell Asia Pte Ltd. Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services
CN109815043B (zh) * 2019-01-25 2022-04-05 华为云计算技术有限公司 故障处理方法、相关设备及计算机存储介质
US20220220469A1 (en) 2019-05-20 2022-07-14 The Broad Institute, Inc. Non-class i multi-component nucleic acid targeting systems
WO2023196818A1 (en) 2022-04-04 2023-10-12 The Regents Of The University Of California Genetic complementation compositions and methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1197954A (zh) * 1997-03-31 1998-11-04 国际商业机器公司 Pci总线差错的故障隔离方法和隔离系统
CN1547706A (zh) * 2001-08-24 2004-11-17 ض� 提供同步信道的通用输入/输出体系结构、协议和方法
US20070208899A1 (en) * 2006-03-02 2007-09-06 International Business Machines Corporation System and method of implementing multiple internal virtual channels based on a single external virtual channel
CN102906707A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 管理与硬件事件关联的处理

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7134052B2 (en) * 2003-05-15 2006-11-07 International Business Machines Corporation Autonomic recovery from hardware errors in an input/output fabric
JP2006195821A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
US20090063894A1 (en) * 2007-08-29 2009-03-05 Billau Ronald L Autonomic PCI Express Hardware Detection and Failover Mechanism
US7752346B2 (en) * 2007-12-21 2010-07-06 Aprius, Inc. Universal routing in PCI-Express fabrics
US7929919B2 (en) 2008-05-15 2011-04-19 Hewlett-Packard Development Company, L.P. Systems and methods for a PLL-adjusted reference clock
US7992058B2 (en) 2008-12-16 2011-08-02 Hewlett-Packard Development Company, L.P. Method and apparatus for loopback self testing
US7873068B2 (en) * 2009-03-31 2011-01-18 Intel Corporation Flexibly integrating endpoint logic into varied platforms
US8645767B2 (en) * 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
US8930609B2 (en) * 2010-08-18 2015-01-06 Intel Corporation Method, apparatus, and system for manageability and secure routing and endpoint access
US8751713B2 (en) * 2011-05-06 2014-06-10 International Business Machines Corporation Executing virtual functions using memory-based data in a PCI express SR-IOV and MR-IOV environment
CN103248737B (zh) * 2012-02-10 2016-08-17 联想(北京)有限公司 一种界面显示控制方法、装置和通信终端
CN102662788A (zh) * 2012-04-28 2012-09-12 浪潮电子信息产业股份有限公司 一种计算机系统故障诊断决策及处理方法
US8806098B1 (en) * 2013-03-15 2014-08-12 Avalanche Technology, Inc. Multi root shared peripheral component interconnect express (PCIe) end point
US9286258B2 (en) * 2013-06-14 2016-03-15 National Instruments Corporation Opaque bridge for peripheral component interconnect express bus systems
US9135200B2 (en) * 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1197954A (zh) * 1997-03-31 1998-11-04 国际商业机器公司 Pci总线差错的故障隔离方法和隔离系统
CN1547706A (zh) * 2001-08-24 2004-11-17 ض� 提供同步信道的通用输入/输出体系结构、协议和方法
US20070208899A1 (en) * 2006-03-02 2007-09-06 International Business Machines Corporation System and method of implementing multiple internal virtual channels based on a single external virtual channel
CN102906707A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 管理与硬件事件关联的处理

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824622A (zh) * 2016-03-11 2016-08-03 联想(北京)有限公司 数据处理方法及电子设备
CN105824622B (zh) * 2016-03-11 2020-04-24 联想(北京)有限公司 数据处理方法及电子设备
CN108259212A (zh) * 2017-05-25 2018-07-06 新华三技术有限公司 报文处理方法及装置
CN108259212B (zh) * 2017-05-25 2019-09-17 新华三技术有限公司 报文处理方法及装置
WO2019129022A1 (zh) * 2017-12-28 2019-07-04 华为技术有限公司 一种设备的故障处理方法、装置及系统
US11144416B2 (en) 2017-12-28 2021-10-12 Huawei Technologies Co., Ltd. Device fault processing method, apparatus, and system
CN112306913A (zh) * 2019-07-30 2021-02-02 华为技术有限公司 一种端点设备的管理方法、装置及系统
CN112306913B (zh) * 2019-07-30 2023-09-22 华为技术有限公司 一种端点设备的管理方法、装置及系统
CN111767242A (zh) * 2020-05-28 2020-10-13 西安广和通无线软件有限公司 Pcie设备控制方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
EP2869201A1 (en) 2015-05-06
US20150082080A1 (en) 2015-03-19
EP2869201B1 (en) 2017-12-06
EP2869201A4 (en) 2015-11-18
CN104756081B (zh) 2016-08-17
ES2656464T3 (es) 2018-02-27
US9678826B2 (en) 2017-06-13
WO2015035574A1 (zh) 2015-03-19

Similar Documents

Publication Publication Date Title
CN104756081A (zh) 一种故障处理的方法、计算机系统和装置
US11429550B2 (en) System and method for extended peripheral component interconnect express fabrics
JP7118922B2 (ja) スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法
JP5274730B2 (ja) PCIeアーキテクチャ中でのI/O拡張要求および応答のルーティング
WO2016153727A1 (en) A method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch
EP2738679A1 (en) Computer program and management computer
US20080273456A1 (en) Port Trunking Between Switches
US20130259053A1 (en) Switch, information processing apparatus, and communication control method
KR102350379B1 (ko) 복수의 칩 사이의 통신 지원 방법, 장치, 전자 기기 및 컴퓨터 저장 매체
CN109889411A (zh) 一种数据传输的方法及装置
CN104049692A (zh) 一种刀片服务器
CN110971540B (zh) 一种数据信息的传输方法、装置、交换机及控制器
JP4754018B2 (ja) 経路データ収集方法、レイヤ2装置、キャリア網内装置及び経路データ収集装置
JP4869714B2 (ja) 情報処理装置、信号伝送方法、およびブリッジ
WO2014147699A1 (ja) 管理装置、方法及びプログラム
Tu et al. Seamless fail-over for PCIe switched networks
WO2021047655A1 (zh) 车载系统异常处理的方法及装置
CN106156069B (zh) 日志系统和日志记录方法
US20050215128A1 (en) Remote device probing for failure detection
CN105530124A (zh) 一种afdx端系统故障快速定位方法
JP6515653B2 (ja) 情報処理装置、監視方法、及び、プログラム
JP2004193966A (ja) ネットワークシステム、ネットワークシステムにおける接続構成情報生成方法、プログラム及び可搬記憶媒体
JP2005235008A (ja) ストレージ制御装置およびサーバ

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant