检测和清除I/O架构锁定情况以恢复错误的方法和装置制造方法及图纸

技术编号:2835239 阅读:181 留言:0更新日期:2012-04-11 18:40
一种通过计算机实施的恢复I/O架构的方法、装置和机制,所述I/O架构由于故障而终端拥塞或死锁,该故障造成缓冲区/队列填充,并因此造成根联合体无法访问其I/O子系统。在检测到终端拥塞或死锁的传输队列时,暂停其他根联合体对该队列的访问,同时检查队列中的每个项目并进行相应处理。丢弃队列中的存储请求和DMA读取应答分组,并且通过返回一个特殊完成分组而对队列中的加载请求进行处理。随后恢复根联合体对该队列的访问。

【技术实现步骤摘要】

本专利技术一般地涉及主机和输入/输出(I/O)适配器之间通过1/0架 构进行的通信。更特别地,本专利技术解决由于I/0架构上某一点发生故障 而导致I/O架构拥塞或死锁的情况。特别地,本专利技术涉及PCI Express 协议,其中PCI Express架构上某一点未能返回信用值(credit),致使架 构锁定或死锁并且不能再通过该架构进行I/O操作。
技术介绍
PCI Express规范(根据俄勒冈州比弗顿PCI-SIG的定义)详细规定 了向链路另一端发送与空援冲区相关的信用值的链路行为。如果所述链 路另 一端未能返回信用值,例如由于緩冲区没有清空而未能返回信用 值,那么由于对操作的排序要求,直至根联合体(root complex)的所 有组件中的緩冲区都将填满,使得根联合体不能再访问其I/O子系统。 PCI Express规范没有详述此种情况下硬件应如何反应。在此情况下,可 以预期,所述架构和连接到所述架构的根联合体需要关闭电源并且重启 电源以清除错误。示例性实施例详述了无须关闭I/O架构或任何连接到该架构的根 联合体的电源即可恢复1/0架构的计算机实施方法和机制。特别地,该 示例性实施例涉及PCI Express I/O架构,但是本领域的普通技术人员 将能够理解,本专利技术可以应用于其他类似的I/O架构。
技术实现思路
提供了一种通过计算机实施的恢复1/0架构的方法、装置和机制, 所述I/O架构由于故障而终端拥塞或死锁,该故障造成緩沖区/队列填充,并因此造成根联合体无法访问其I/0子系统。在检测到终端拥塞或 死锁的传输队列时,暂停其他根联合体对该队列的访问,同时检查队列中的每个项目并进行相应处理。丟弃队列中的存储请求和DMA读取应答分组,并且通过返回一个特殊完成分组而对队列中的加载请求进行处 理。随后恢复根联合体对该队列的访问。附图说明所附权利要求书中提出了相信为示例性实施例所特有的新颖'性特 征。然而需要根据下文参照附图对示例性实施例的详述,才能更好地理 解所述示例性实施例、优选使用方法、进一步的目的及其优点,其中附图如下图1是根据示例性实施例描绘的分布式计算机系统的示图; 图2是一个方框图,示出了其中可以实施示例性实施例的示例性逻 辑分区平台;图3是示出了 一个根联合体与若干I/O适配器之间以及若干根联合 体与一个I/O适配器之间的通信的高级示图,其中将根据示例性实施例 解决緩冲区阻塞;图4示出了队列控制,在其中实施各示例性方面; 图5是一个流程图,示出了根据示例性实施例如何检测锁定情况; 图6是一个流程图,示出了根据示例性实施例的硬件对架构锁定的 处理;图7是一个流程图,示出了根据示例性实施例硬件如何防止架构再 次锁定,暂停固件或软件对错误进行的处理;图8是一个流程图,示出了根据示例性实施例,当I/O架构在恢复 过程中时对DMA的处理;以及图9是根据示例性实施例,根联合体处理架构锁定错误的高级流程图。具体实施例方式本文所述的示例性实施例适用于任何通用或专用的计算机系统,其 中I/O架构使用诸如信用值之类的消息表明链路另一端的资源可用性。更特别地,下文描述的优选实施例提供了使用PCI Express I/O链路的实 施方法。现在参照附图,特别是参照图1,该图根据示例性实施例描绘了分 布式计算机系统100。图1中所示的分布式计算机系统采取如下形式 一个或多个根联合体(RQ108、 118、 128、 138和139通过1/0链路110、 120、 130、 142和143连接到I/O架构144,并且连接到根节点(RN) 160-163的存储器控制器104、 114、 124和134。所述I/O架构通过链 路151-158连接到I/O适配器(IOA)145-150。所述IOA可以是单一功能 的IOA如145-146和149,或者是多功能IOA如147-148和150。并且, IOA可以通过单一链^各连接到所述I/O架构,如145-148,或者可以具 有多个链^各以实现冗余,如149-150。RC 108、 118、 128、 138和139中每一个均为相应的RN 160-163 的组成部分。每个RN可以有多个RC,例如在RN163中那样。除RC 外,每个RN还包括一个或多个中央处理单元(CPU) 101-102、 111-112、 121-122、 131-132,存储器103、 113、 123和133以及存储器控制器 104、 114、 124和134,所述存储控制器连接CPU、存储器和I/ORC并 执行诸如管理存储器相干业务之类的功能。多个RN可以通过各自的存储器控制器104和114在159处连接到 一起,以构成一个相干域,其可以作为单个对称性多处理(SMP)系统 工作,或者多个RN可以作为具有单独相干域的独立节点,如RN 162-163。配置管理器164可以单独连接到I/O架构144 (如图1所示)或 作为RN 160-163之一的组成部分。配置管理器配置1/0架构的共享资 源并将资源分配给RN。分布式计算机系统100可以使用各种商业可得的计算机系统实施。 例如,分布式计算机系统100可以使用国际商业机器公司的IBMeServer iSeries Model 840系统实施。这样的系统可以支持使用国际商业冲几器公司提供的OS/400操作系统进行逻辑分区。本领域的普通技术人员将可以理解图1示出的硬件可能有所不同。 例如,其他外围设备如光盘驱动器等,也可以作为对所示出的硬件的补 充或代替来使用。所示出的例子并不意味着对示例性实施例的体系结构 限制。现在参考图2,图2是示例性逻辑分区平台的方框图,所述示例性 实施例可以在所述平台上实施。所述逻辑分区平台200上的硬件可以实 施为例如图1中的分布式计算机系统100。所述逻辑分区平台200包括 分区硬件230,操作系统(OS)202、 204、 206、 208,以及平台固件210。 所述操作系统202、 204、 206和208可以是一个才喿作系统的多个副本或 同时在所述逻辑分区平台200上运行的多个不同的操作系统。所述操作 系统可以使用OS/400⑧操作系统实施,该系统设计为与平台或分区管理 固件例如Hypervisor接口连接。在这些示例性实施例中OS/400操作系 统的使用仅作为例子。根据特定的实施方法,也可以使用其他类型的操 作系统例如AIX⑧和Linux⑧操作系统(AIX是国际商业机器公司在美国 和其他国家的注册商标,Linux是Linus Torvalds在美国和其他国家的 注册商标)。操作系统202、 204、 206和208分别位于分区203、 205、 207和209上。Hypervisor软件是可以用于实施平台固件210的软件的 例子,并且可从国际商业机器公司获得。固件是存储在无需电源也能够 保持其内容的存储器芯片中的"软件",其中存储器例如是只读存储器(ROM),可编程只读存储器(PROM),可擦除可编程只读存储器 (EPROM),电可擦除可编程只读存储器(EEPROM),以及非易失性随 机存取存储器(非易失性RAM )。另外,分区203、 205、 207和209还分别包括分区固件211、 213、 215和217。所述分区固件本文档来自技高网...

【技术保护点】
一种用于清理输入/输出(I/O)架构中队列的方法,包括以下步骤:检测到所述队列死锁;禁止访问所述队列;清理所述队列中的条目;并且重新启动对所述队列的访问。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:SM瑟伯RL阿尔恩特T施利普夫
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1