CN101410813A - 在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品 - Google Patents

在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN101410813A
CN101410813A CNA2007800112575A CN200780011257A CN101410813A CN 101410813 A CN101410813 A CN 101410813A CN A2007800112575 A CNA2007800112575 A CN A2007800112575A CN 200780011257 A CN200780011257 A CN 200780011257A CN 101410813 A CN101410813 A CN 101410813A
Authority
CN
China
Prior art keywords
main bridge
state
physical page
described main
migration
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
CNA2007800112575A
Other languages
English (en)
Other versions
CN101410813B (zh
Inventor
C·A·本德
P·A·巴克兰
S·M·瑟伯
A·G·亚内斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101410813A publication Critical patent/CN101410813A/zh
Application granted granted Critical
Publication of CN101410813B publication Critical patent/CN101410813B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Abstract

公开一种从源物理页向目的物理页迁移数据的计算机实现的方法、设备和计算机程序产品。开始从所述源物理页向所述目的物理页迁移数据的迁移处理,以使得主桥进入第一状态。然后,当所述主桥处于所述第一状态时,所述主桥暂停由所述主桥的直接存储器存取(DMA)请求的处理。在所述主桥处于所述第一状态时,从源物理页向目的物理页迁移数据。

Description

在存储器迁移期间停止DMA操作的计算机实现的方法、设备和计算机程序产品
技术领域
本发明总的涉及数据处理系统,更具体地,涉及在存储器迁移期间停止DMA操作的计算机实现的方法、设备和计算机程序产品。
背景技术
根据计算机系统的趋势,可以在系统运行时不需中断数据处理的情况下进行重新配置。例如,在计算机上运行多个操作系统时,当第一操作系统正在使用特定的存储器块时,可能需要重新分配用于第二操作系统的存储器块。在这种情况下,在对存储器重新分配之前,第一操作系统必须首先停止使用物理存储器块。或者,例如,在物理存储器块中可能检测到问题,在这种情况下期望将该存储器从操作中移除,从而可对其进行替换。而且,过去曾经使用该存储器块的任何操作系统都必须停止使用它。
在某些情况下,相对简单地停止使用一个物理存储器块并开始使用另一个,这是由于在传统操作系统中已经存在与虚拟存储器管理相关的机构以解决与访问该存储器的操作系统相关的这个问题的多个方面,但是这些机构取决于仅由操作系统访问而不是由I/O设备访问的程序数据的存储器块。如果存储器块由I/O设备访问,则问题更加困难。由I/O设备的这种访问一般是直接存储器存取(DMA),尽管这不总是这种情况。
直接存储器存取(DMA)是在没有软件直接辅助的情况下从I/O设备到另一个实体(例如,存储器或另一个I/O设备)的数据传送。DMA需要赢得用于发起I/O设备的I/O总线控制,以执行DMA操作。对于例如传统PCI和PCI-X的共享总线,通过对I/O总线仲裁来获得I/O总线的控制。对执行仲裁的代理的关闭(从而允许对I/O总线仲裁),即仲裁器将关闭,即防止对于使用该I/O总线的所有实体的DMA。对于每个总线(也称为链路)仅存在一个设备的类似PCI Express的I/O总线,通过具有缓存点来获得对总线的访问,并且停止DMA涉及不向总线另一端的设备归还任意缓存点。
不使用分离传输的存储器映射I/O(MMIO)负载是在不需要操作目标(即用以提供数据的I/O设备)在I/O总线上必须产生它自己的传输以返回所请求的数据的情况下从I/O设备到处理器的数据传送。这些MMIO操作需要请求者(例如用于处理器的I/O桥)连续向目标要求(有时称为向目标轮询)数据,直到在其中一个轮询操作上的目标具有可用的数据并在请求者仲裁循环中将其返回至请求者。在该操作期间,目标并不是独立地访问I/O总线,因此不需要赢得总线的控制。目标通过执行MMIO负载应答操作返回数据。所请求的数据包括在MMIO负载应答中。
使用分离传输的存储器映射I/O(MMIO)负载是在操作目标(即用以提供数据的I/O设备)可延迟将数据回传至请求者的情况下从I/O设备到处理器的数据传送。目标必须在I/O总线上产生它自己的传输以返回所请求的数据。一旦目标具有要返回的数据,则目标在I/O总线上产生MMIO负载应答操作,以向请求者传送数据。
由I/O设备访问的数据可能需要从一个物理页向另一个迁移。当需要迁移由I/O设备访问的数据时,在迁移处理期间需要暂停对该数据的DMA访问。特别对于使用分离传输实现存储器映射I/O(MMIO)的系统来说,现有技术没有提供有效迁移该数据的解决方案。
在不实施用于存储器映射I/O(MMIO)操作的分离传输的系统中,一旦请求者赢得总线的控制,则请求者发出他的MMIO负载请求。然后,请求者保持对操作的控制,直到I/O设备通过所请求的数据对MMIO负载请求作出应答。从而,不需要目标赢得总线的控制。
在实施分离传输的系统中,一旦请求者赢得总线的控制,则请求者发出他的MMIO负载请求。一旦请求者发出他的MMIO负载请求,则请求者让出总线的控制。一旦目标I/O设备具有所请求的数据,则它必须赢得总线的控制,以应答该请求并向请求者发送它的数据。
如果通过关闭由I/O设备对总线的访问来停止DMA,则在使用分离传输的系统中,使用I/O系统的停止部分的部分系统将停止。这是因为需要赢得总线的控制以执行MMIO负载应答的I/O设备再不能够赢得总线的控制。如果I/O设备不能够赢得总线的控制,因此不能够执行它的MMIO负载应答,则MMIO负载操作将不再能够完成,从而停止发出MMIO负载操作的处理器。
此外,如果在更靠近处理器的位置而不是与I/O设备直接邻近地停止DMA,从而I/O设备能够仍旧访问总线,则得到停止的DMA写请求可防止MMIO负载分离响应返回至处理器。这样的原因是PCI操作排序规则需要MMIO负载应答不能够返回进行负载操作的处理器,直到已经完成来自相同I/O设备的所有先前DMA写操作。因此,MMIO负载应答阻塞在等待处理的先前DMA写请求之后的队列中,但是由于存储器迁移操作所以不能够处理这些请求。
发明内容
公开一种从源物理页向目的物理页迁移数据的计算机实现的方法、设备和计算机程序产品。在使用分离传输实现MMIO加载操作(还称为MMIO加载请求)的系统中,当从一个物理页向另一个物理页迁移数据时,所述方法、设备和计算机程序产品提供在主桥中停止直接存储器存取(DMA)操作,而不停止MMIO加载操作。
开始从所述源物理页向所述目的物理页迁移数据的迁移处理,以使得主桥进入第一状态。然后,当所述主桥处于所述第一状态时,它中止它的直接存储区存取(DMA)请求的处理。然后,开始数据迁移处理,以从源物理页向目的物理页复制数据。
在第一状态时,如果MMIO加载操作需要处理,则将主桥转移到第二状态,以使得主桥继续它的DMA和MMIO操作的处理。进入第二状态的处理向数据迁移处理信号通知需要重新开始数据迁移处理。
然而,如果在完成从所述源物理页向所述目的物理页对所述数据的复制时确定所述主桥仍旧处于所述第一状态,则所述主桥转移到第三状态。当所述主桥处于第三状态时,所述主桥完全停止它的所有I/O操作(包括DMA和MMIO操作)的处理,从而完成数据迁移处理的最终状态,包括从指向源页的地址改变为现在指向目的页。
附图说明
在所附的权利要求中阐述本发明的特征所实现的新颖性特征。以下,参照附图仅通过实例描述包括优选使用模式和进一步目的和优点的本发明实施例,其中:
图1描述包括示例性实施例的数据处理系统的框图;
图2示出包括示例性实施例的逻辑分区平台的框图;
图3是示出根据示例性实施例的转换和控制项目(TCE)表和物理存储器的框图;
图4示出包括示例性实施例的主桥;
图5示出根据示例性实施例的页迁移和控制机构以及地址转换和控制机构;
图6是示出根据示例性实施例的设置软停止位以使得主桥进入软停止状态的高级流程图;
图7是示出根据示例性实施例的设置软停止故障位的高级流程图;
图8是示出根据示例性实施例的设置硬停止位的高级流程图;
图9是示出根据示例性实施例主桥基于在主桥中包括的软停止、硬停止和软停止故障位的当前设置处理新DMA和中断请求的高级流程图;
图10是示出根据示例性实施例如果主桥的存储器映射I/O(MMIO)队列变满则处于退出硬停止状态的主桥退出硬停止状态的高级流程图;
图11是示出根据示例性实施例不管源页是否被访问当从源页向目的页迁移数据时临时停止DMA操作的高级流程图;
图12示出根据示例性实施例包括进行中的迁移(MIP)位的转换和控制项目(TCE);
图13是示出根据示例性实施例利用转换和控制项目的进行中的迁移(MIP)位来确定是否应该进入软停止状态的高级流程图;和
图14是示出根据示例性实施例仅如果源页被向源页写入的I/O设备访问,则在从源物理页向目的物理页迁移数据时的暂时停止DMA操作的高级流程图。
具体实施方式
示例性实施例是一种计算机实现的方法、这种和计算机程序产品,用于当使用分离传输在执行MMIO负载操作的系统中从源物理页向目的物理页迁移数据时,停止主桥中的DMA操作,而不停止MMIO负载操作。根据该示例性实施例,当在停止DMA操作同时需要处理MMIO负载操作时,重新开始数据迁移处理。
该示例性实施例提供了在主桥(例如PCI主桥(PHB))中实现的软停止状态和硬停止状态。
在本发明第一实施例中,当遇到DMA写操作时,不管DMA写操作是否尝试对源页的访问,在从源页到目的页的数据迁移期间暂停通过主桥的所有DMA操作。当需要将数据从源物理页迁移到目的物理页时,软件设置在主桥中的软停止位。当设置了软停止位并且在主桥发生DMA写操作时,主桥进入软停止状态。在软停止状态下时,主桥暂停从与该主桥连接的I/O设备到存储器的直接存储器存取(DMA)流量。在软停止状态激活时间段内,主桥继续处理MMIO存储流量。如果在主桥处于软停止状态时主桥接收到MMIO负载操作,则将暂停软停止状态,以允许处理MMIO负载操作。如果暂停软停止状态以允许处理MMIO负载操作,则需要重新开始迁移处理。
如果能够在不暂停软停止状态的情况下完成迁移,则主桥将进入硬停止状态,从而软件可完成迁移处理(包括改变地址)的最终步骤。当主桥将进入硬停止状态时,暂停通过该主桥的所有DMA和所有MMIO流量(包括MMIO负载和负载应答操作两者)。当主桥处于硬停止状态时,软件可完成迁移处理的最终步骤。
本发明第一示例性实施例描述了在主桥中包括的软停止位、硬停止位和软停止故障位。当将主桥的软停止位设置为等于1并且主桥接收到DMA写操作以进行处理时,主桥进入软停止状态。软停止故障位表示在主桥处于软停止状态时主桥是否接收到MMIO负载操作。当将主桥的软停止位设置为等于0时,主桥不处于软停止状态。当将主桥的硬停止位设置为等于0时,主桥不处于硬停止状态。
这里描述包括多个项目的表。该表称为转换和控制表。在表中的每个项目将特定源物理页与特定I/O适配器相关。所述项目称为转换和控制项目(TCE)。按照DMA操作的I/O总线地址对表进行索引。
更具体地,当软件需要从源物理页向目的物理页迁移数据时,软件将可访问源页的所有主桥中的软停止位设置为等于1。然后,软件通过向可使用指向源页的表项目的所有主桥发出MMIO负载操作的方式刷新来自那些主桥的任意剩余DMA写处理。然后,软件从源页向目的页复制数据。
在可访问源页的每个主桥中,在数据的迁移期间,软件检查以观察软停止故障位是否被设置为等于1。如果在数据正迁移时主桥接收到MMIO复制操作,则将软停止故障位设置为等于1。如果软停止故障位被设置为等于1,则软件必须重新开始迁移处理。
如果软停止故障位被设置为等于0,则当由软件读取软停止位时,硬件将硬停止位设置为等于1。将硬停止位设置为等于1,以使得主桥进入硬停止状态。当主桥处于硬停止状态时,将指向源页的表项目中的值改变为指向目的页。一旦表项目改变,则软件将受影响的主桥中的软停止位、硬停止位、和软停止故障位重设为等于0。
在本发明第二实施例中,在从源物理页向目的物理页的数据迁移期间,仅如果DMA操作尝试向具有要迁移数据的特定源物理页写处理,则暂停通过主桥的DMA操作。如果在迁移进行期间没有DMA操作尝试向源页写操作,则在数据的迁移期间DMA操作将继续通过主桥的处理。
在第二实施例中,每个转换和控制项目(TCE)包括新的控制位,这里称为进行中的迁移(MIP)位。在TCE中的转换信息指向特定物理页。当要迁移在物理页中的数据时,将指向该物理页的TCE中的MIP位设置为等于1。当TCE中的MIP位被设置为等于0时,当前不迁移在TCE所指向的页中的数据。
地址转换和控制逻辑以及DMA控制逻辑都包括每个主桥中。当在主桥中的地址转换和控制逻辑提取将其MIP位设置为等于1的TCE时,DMA控制逻辑将主桥的软停止位设置为等于1,以使得主桥进入软停止状态。当主桥进入软停止状态时,主桥继续处理通过主桥的MMIO存储流量,除非主桥接收到对于其I/O设备之一的MMIO复制操作。
在软停止状态期间,主桥暂停从与该主桥连接的I/O设备到系统存储器的DMA操作。在软停止状态激活期间,主桥将继续处理MMIO存储操作。如果在主桥处于软停止状态时主桥接收到对于I/O设备的MMIO复制操作,则将暂停软停止状态,以允许处理MMIO复制操作。在这种情况下,将软停止故障位设置为等于1,以向软件通过信号传输需要重新开始迁移处理。
如果能够在不暂停软件停止状态下完成迁移,则软件将读出软停止故障位,并且其值为0,在这种情况下主桥硬件将设置硬停止位,并且主桥将进入硬停止状态。当主桥进入硬停止状态时,暂停通过该主桥的所有DMA和所有MMIO流量。当主桥处于硬停止状态时,软件可完成迁移处理的最终步骤。
更具体地,当软件需要从源页向目的页迁移数据时,在所有主桥中软件将指向源页的所有TCE中的MIP位设置为等于1。然后,软件通过向可使用指向源页表项目的所有主桥发出MMIO负载操作的方式刷新来自那些主桥的任意剩余DMA写处理。然后,软件从源页向目的页复制数据。然后,在数据的迁移期间,软件检查每个主桥以观察主桥的软停止故障位是否被设置为等于1。如果在迁移期间主桥接收到以源页为目标的DMA写操作并且还接收到MMIO复制操作,则将软停止故障位设置为等于L如果将软停止故障位设置为等于1,则软件必须重新开始迁移处理。如果将软停止故障位设置为等于0,则当软件读取软停止故障位时,硬件将硬停止位设置为等于1,以使得主桥进入硬停止状态。当主桥处于硬停止状态时,然后将TCE改变为指向目的页。在将TCE改变为指向目的页之后,将TCE中的MIP位设置为等于0。一旦TCE表项目改变,则软件将软停止位、硬停止位、和软停止故障位重设为等于0。
现在参照附图,图1示出包括示例性实施例的数据处理系统的框图。数据处理系统100可以是对阵多处理器(SMP)系统,其包括与系统总线106连接的多个处理器101、102、103和104。例如,数据处理系统100可以是作为网络中的服务器实现的IBM eServer,即纽约Armonk的国际商业机器公司的产品。或者,可采用单处理器系统。与系统总线106连接的还有存储控制器/缓存108,其提供对于多个本地存储器160-163的接口。包括转换和控制项目(TCE)表110a的I/O总线桥110连接至系统总线106,并且提供对I/O总线112的接口。可如图所示集成存储控制器/缓存108和I/O总线桥110。
I/O桥110包括表110a。转换和控制项目(TCE)存储在TCE表110a中。表110a是I/O地址转换和保护机构,其基于I/O页提供用以控制从I/O设备向物理页的I/O操作的能力。
TCE项目将物理存储器160-163的物理页与在I/O总线112上可用于I/O适配器120-124、148-150的I/O总线地址页相关。每个项目将特定物理页与特定I/O地址页相关。按照DMA操作的I/O总线地址对TCE表110a进行索引。将该表用作间接寻址机构,几乎相同于从软件向物理存储器提供间接寻址机构的处理器中的虚拟地址机构。这种处理器虚拟地址转换机构在本领域中已知。
数据处理系统100是逻辑分区(LPAR)的数据处理系统;然而,应该理解,本发明不限于LPAR系统,但是也可以在其他数据处理系统中实现。LPAR数据处理系统100具有同时运行的多个异构操作系统(或多个单操作系统的副本)。所述多个操作系统中的每个可具有在其中执行的任意数目的软件程序。数据处理系统100被逻辑分区,从而可对不同逻辑分区分配不同的PCI输入/输出适配器(IOA)120、121、122、123和124,图形适配器148和硬盘适配器149,或其部分。在这种情况下,图形适配器148提供对显示设备(未示出)的连接,而硬盘适配器149提供用以控制硬盘150的连接。
因此,例如,假设将数据处理系统100分成3个逻辑分区P1、P2和P3。对这3个分区的每个分配每个PCI IOA 120-124、图形适配器148、硬盘适配器149、每个主机处理器101-104以及来自本地存储器160-163的存储器。在该实例中,存储器160-163可采用双列存储器模块(DIMM)的形式。并不是正常地基于每个DIMM对于分区分配DIMM。相反,分区将得到通过平台所观察的总存储器的一部分。例如,可对逻辑分区P1分配处理器101、来自本地存储器160-163的存储器的某些部分、PCI IOA121、123和124;对逻辑分区P2分配处理器102-103、来自本地存储器160-163的存储器的某些部分、PCI IOA 120和122;以及对逻辑分区P3分配处理器104、来自本地存储器160-163的存储器的某些部分、图形适配器148、硬盘适配器149。
对不同逻辑分区分配在逻辑分区的数据处理系统100中执行的每个操作系统。因此,在逻辑分区的数据处理系统100中执行的每个操作系统仅可访问在其逻辑分区中的那些IOA。例如,高级交互执行体(AIX)操作系统的一个实例可在分区P1中执行,AIX操作系统的第二实例(副本)可在分区P2中执行,Linux或OS/400操作系统可在逻辑分区P3中运行。
外围组件互连(PCI)主桥(PHB)130、131、132和133连接至I/O总线112,并提供分别与PCI局部总线140、141、142和143的接口。优选地,PCI总线140、141、142和143符合PCI规范。在以下所述的实施例中,PCI总线140、141、142和143符合利用MMIO操作的分离传输的PCI规范。
PCI IOA 120-121通过包括交换器和桥接器的I/O结构(fabric)180连接至PCI局部总线140。以类似方式,PCI IOA 122通过I/O结构181连接至PCI局部总线141,PCI IOA 123和124通过I/O结构182连接至PCI局部总线142,图形适配器148和硬盘适配器149通过I/O结构183连接至PCI局部总线143。I/O结构180-183提供对PCI总线140-143的接口。典型的PCI主桥将支持4和8个之间的IOA(例如,用于插件连接的扩展槽)。PCI IOA 120-124中的每个提供在数据处理系统100和作为对数据处理系统100的客户端的输入/输出设备(例如,其他网络计算机)之间的接口。
PCI主桥130提供用于PCI总线140的接口,以连接至I/O总线112。这种PCI总线还将PCI主桥130连接至服务处理器邮箱接口和ISA总线访问经过逻辑194和I/O结构180。服务处理器邮箱接口和ISA总线访问经过逻辑194转发指向PCI/ISA桥193的PCI访问。NVRAM存储装置192连接至ISA总线196。服务处理器135通过其本地PCI总线195耦合至服务处理器邮箱接口和ISA总线访问经过逻辑194。服务处理器135还经由多个JTAG/I2C总线134连接至处理器101-104。JTAG/I2C总线134是JTAG/扫描总线(见IEEE 1149.1)和飞利浦I2C总线的组合。然而,可选择地,JTAG/I2C总线134可通过仅飞利浦I2C总线或仅JTAG/扫描总线代替。将主处理器101、102、103和104的所有SP-ATTN信号连接在一起,以中断服务处理器的输入信号。服务处理器135具有它自己的本地存储器191,并访问硬盘OP-面板190。
当数据处理系统100最初通电时,服务处理器135使用JTAG/I2C总线134,以询问系统(主机)处理器101-104、存储控制器/缓存108和I/O桥110。在该步骤完成时,服务处理器135具有对数据处理系统100的目录和拓扑结构的理解。服务处理器135还在通过询问主机处理器101-104、存储控制器/缓存108和I/O桥110所找到的所有元件上执行内建自测试(BIST)、基本保证测试(BAT)和存储器测试。通过服务处理器135聚集和报告对于在BIST、BAT和存储器测试期间检测的故障的任意错误信息。
如果在去除了在BIST、BAT和存储器测试期间发现故障的元件之后仍旧可能进行系统资源的有用/有效配置,则允许数据处理系统100继续将可执行代码加载到本地(主机)存储器160-163中。然后,服务处理器135释放用于执行被加载到本地存储器160-163中的代码的主机处理器101-104。在主机处理器101-104执行来自数据处理系统100中的各个操作系统的代码时,服务处理器135进入监控和报告错误模式。由服务处理器135监控的项目类型包括,例如,散热风扇速度和操作、热传感器、电源调节器、以及由处理器101-104、本地存储器160-163和I/O桥110报告的可恢复和不可恢复错误。
服务处理器135负责保存和报告与数据处理系统100中所有监控的项目相关的错误信息。服务处理器135还基于错误类型和预定阈值采取行动。例如,服务处理器135可在处理器的高速缓存上记录过多不可恢复的错误,并确定这是否为硬故障的预测。基于所述确定操作,服务处理器135可标记在当前运行会话和未来初始化装入程序(IPL)期间用于重新配置的资源。IPL有时还称作“启动程序”或“引导程序”。
可使用各种商业可用的计算机系统来实现数据处理系统100。例如,可使用从国际商业机器公司得到的IBM eServer iSeries Model 840系统来实现数据处理系统100。这种系统可支持使用OS/400操作系统(同样可从国际商业机器公司得到)的逻辑分区。
本领域普通技术人员可以理解,图1中所述的硬件可以改变。例如,也可以额外地或代替所述硬件地使用其他外围设备,例如光盘驱动器等。所示实例并非暗示对于本发明的结构的限制。
图2示出包括示例性实施例的逻辑分区平台的框图。在逻辑分区平台200中的硬件可作为例如图1中的数据处理系统100来实现。逻辑分区平台200包括:分区硬件230、操作系统202、204、206、208和分区管理固件210。操作系统202、204、206和208可以是在逻辑分区平台200上同时运行的单操作系统的多个副本或多个异构操作系统。这些操作系统可使用OS/400实现,所述OS/400被设计为与分区管理固件210(还称为管理程序)对接。OS/400仅用作这些示例性实施例的实例。可根据具体实现使用其他类型的操作系统,例如AIX和Linux。
操作系统202、204、206和208位于分区203、205、207和209中。管理程序软件是可用以实现分区管理固件210以及可从国际商业机器公司得到的软件实例。固件是在存储器芯片中存储的“软件”,所述存储器芯片在不需要电力的情况下保存固件的内容,例如只读存储器(ROM)、可编程ROM(PROM)、可擦除可编程(EPROM)、电可擦除可编程(EEPROM)和非易失性随机存取存储器(非易失性RAM)。
此外,这些分区还包括分区固件211、213、215和217。可使用初始引导程序代码、IEEE-1275标准开放固件以及从国际商业机器公司得到的运行时抽象软件(RTAS)来实现固件211、213、215和217。
当对分区203、205、207和209实例化时,通过分区管理固件210将引导程序代码的副本加载到分区203、205、207和209上。之后,将控制传输到引导程序代码,然后通过引导程序代码加载开放固件和RTAS。然后,将与分区相关或分配给分区的处理器分派给分区的存储器,以执行分区固件。
分区硬件230包括:多个处理器232-238、多个系统存储器单元240-246、多个IOA 248-262、存储单元270和TCE表272。对于逻辑分区平台200中的多个分区之一分配处理器232-238、存储器单元240-246、NVRAM存储装置298、IOA 248-262或其部分中的每个,其中逻辑分区平台200中的多个分区中的每个对应于操作系统202、204、206和208之一。
分区管理固件210执行用于分区203、205、207和209的多个功能和服务,以创建和执行逻辑分区平台200的分区。分区管理固件210是与基础硬件相同的固件实现的虚拟机。因此,分区管理固件210允许通过虚拟化逻辑分区平台200的硬件资源来同时执行独立的OS映像202、204、206和208。
服务处理器290可用于提供各种服务,例如处理分区中的平台错误。这些服务还用作向厂家(例如国际商业机器公司)报告错误的服务代理。可通过硬件管理控制台(例如硬件管理控制台280)控制不同分区的操作。硬件管理控制台280是单独数据处理系统,系统管理员可从中执行包括对不同分区重新分配资源的各种功能。
在LPAR环境中,不允许在一个分区中的资源或程序影响另一个分区中的操作。此外,有利地,资源的分配需要细分。例如,由于将限制系统可配置性(包括在分区之间动态移动资源的能力),所以通常不接受将连接至特定PCI主桥(PHB)的所有IOA分配给相同分区。
因此,在将IOA连接至I/O,总线的PCI主桥中需要一些功能,以能够将资源(例如独立的IOA或IOA的部分)分配给独立的分区,并且同时,例如通过获得对其他分区的资源的访问防止所分配的资源影响其他分区。
图3是示出根据示例性实施例的转换和控制项目(TCE)表和物理存储器的框图。页迁移是从一个物理页复制数据并将其存储在不同物理页中的处理。
物理存储器302包括物理页304和物理页306。在所示实例中,要将物理页304的内容迁移到物理页306。允许发生这种迁移的基础机构是经由TCE表对I/O适配器的I/O总线地址的重定向。
TCE表300包含基于位于I/O总线上的页地址提取的项目。在TCE表中包含的是将I/O总线页地址转换成新系统存储页地址的项目。例如,在从源页304向目的页306迁移数据之前,TCE 308指向物理页304,TCE310指向物理页304。在从源页304向目的页306迁移数据之后,改变了在TCE表300中的地址,从而TCE 308现在指向物理页306,TCE 310现在指向物理页306。
图4示出包括示例性实施例的主桥,例如PCI主桥(PHB)。主桥400通过主总线402与主机通信。主总线可以是与I/O桥耦合的I/O总线,例如I/O总线112(见图1)。由主桥400通过主总线402接收存储器映射I/O(MMIO)加载和存储请求以及DMA读取应答。MMIO加载和存储请求通过MMIO队列和控制器404来排队和控制。在DMA队列和控制器406排队的DMA写和读请求以及在MMIO加载应答队列和控制器408排队的MMIO加载应答通过主总线402流出主桥400。
主桥400通过二级总线410与一个或多个I/O适配器通信。DMA写和读请求以及MMIO加载应答通过二级总线410流入主桥400。优选地,二级总线410是实施PCI规范(例如PCI Express)的PCI总线,其中所述PCI规范利用MMIO操作的分离传输。
主桥400包括地址转换和控制器412,其提取TCE以用于转换控制DMA操作。地址转换和控制器412耦合至页迁移和控制器414。
图5示出根据示例性实施例的页迁移和控制机构以及地址转换和控制机构。页迁移和控制机构414耦合至地址转换和控制机构412(见图4)。页迁移和控制机构414包括:迁移控制状态机500、软停止位寄存器502、硬停止位寄存器504、和软停止故障位寄存器506。将软停止位、硬停止位和软停止故障位的当前值存储到它们各自的寄存器502、504或506中,并且可从中读出。
在从源页向目的物理页迁移源物理页中的数据时,将软停止位设置为等于1。在软停止位被设置为等于1时,如果将DMA写操作接收到DMA队列406中,则软停止位通过链路508向迁移控制状态机500信号通知停止DMA流水线。在流水线停止时,主桥400将不进一步处理通过二级链路410接收的DMA写流量,除非从MMIO队列和控制器404处理MMIO加载请求(见图4)。如果从MMIO队列和控制器404处理MMIO加载请求,则需要释放DMA停止,从而可接收MMIO加载应答消息,否则MMIO队列将充满,使得软件不能够访问主桥控制逻辑,从而造成MMIO加载请求的死锁和最终超时。这将出现错误情形。
当主桥400处于软停止状态时,迁移控制状态机500可通过链路510感测已经由主桥400接收到MMIO加载。在这种情况下,迁移控制状态机500将软停止故障位设置为等于1,其表示需要重新开始迁移的软件。
如果当软件读取寄存器506时软停止位等于1并且软停止故障位等于0,则页迁移和控制逻辑414将设置硬停止位,其向迁移控制状态机500通知迁移控制状态机500不应该处理任何DMA请求,即使存在MMIO加载应答信号。
图6是示出根据示例性实施例的设置软停止位以使得主桥进入软停止状态的高级流程图。如框600所示,该过程开始,之后转到框602,其示出接收软件请求以设置软件停止位,从而可将源页中的数据迁移到目的页。接下来,框604表示将软停止位设置为等于1。然后,如框606所示,该处理中止。
图7是示出根据示例性实施例的设置软停止故障位的高级流程图。如框700所示,该过程开始,之后转到框702,其示出接收存储器映射输入/输出(MMIO)加载命令。接下来,框704示出确定软停止位是否等于1。如果确定软停止位不等于1,则处理转到框714。如果确定软停止位等于1,则处理转到框706。
框706示出确定在流水线中是否存在停止的DMA写命令。如果确定不存在停止的DMA写命令,则处理转到框714。如果确定存在停止的DMA写命令,则处理转到框708,其示出确定硬停止位是否等于1。如果确定硬停止位等于1,则处理转回框708,直到硬停止位等于0时为止。
再参照框708,如果确定硬停止位不等于1,即等于0,则处理转到框710,其示出将软停止故障位设置为等于1。接下来,框712示出处理DMA写操作。然后,处理转到框714。然后,框714示出处理MMIO加载命令。然后,如框716所示,该处理中止。
图8是示出根据示例性实施例的设置硬停止位的高级流程图。在从源页向目的页迁移数据之后执行图8的处理,并且TCE值需要更新,以指向目的页。如框800所示,该过程开始,之后转到框802,其示出接收软件请求,以读出对于硬停止位、软停止位和软停止故障位的当前设置。
接下来,框804示出确定软停止位是否等于1并且软停止故障位是否等于0。如果确定软停止位等于1并且软停止故障位等于0,则处理转到框806,其示出将硬停止位设置为等于1。然后,处理转到框808。
再参照框804,如果确定软停止位等于1并且软停止故障位等于0,则处理转到框808,其示出恢复对硬停止位、软停止位和软停止故障位的当前设置。然后,如框810所示,该处理中止。
图9是示出根据示例性实施例主桥基于在主桥中包括的软停止、硬停止和软停止故障位的当前设置处理新DMA和中断请求的高级流程图。如框900所示,该过程开始,之后转到框902,其示出接收请求。接下来,框904示出确定硬停止位是否设置为等于1。如果确定硬停止位设置为等于1,则处理转回框904,直到硬停止位不再等于1,即等于0时为止。
再参照框904,如果确定硬停止位不等于1,即等于0,则处理转到框906,其示出确定软停止位是否等于1。如果确定软停止位不等于1,则处理转到框912。
再参照框906,如果确定软停止位等于1,则处理转到框908,其示出确定软停止故障位是否等于1。如果确定软停止故障位不等于1,则处理转回框906。如果确定软停止故障位等于1,则处理转到框910。
框910示出确定所接收的请求是DMA请求还是中断。如果确定所接收的请求是中断,则处理转回框904。如果确定所接收的请求是DMA请求,则处理转到框912,其示出正常处理DMA。然后,如框914所示,该处理中止。
图10是示出根据示例性实施例如果主桥的存储器映射I/O(MMIO)队列充满则处于退出硬停止状态的主桥退出硬停止状态的高级流程图。如框1000所示,该过程开始,之后转到框1002,其示出确定硬停止位是否等于1。如果确定硬停止位不等于1,即等于0,则如框1004所示,该处理中止。
再参照框1002,如果确定硬停止位等于1,则处理转到框1006,其示出是否由于MMIO队列充满而使得MMIO流水线停止。如果MMIO队列充满并且不能接收任意新附加MMIO请求,则MMIO流水线停止。如果确定MMIO流水线没有停止,则处理转回框1002。如果确定MMIO流水线已经停止,则处理转到框1008,其示出丢弃使得流水线停止的MMIO复制,设置适当的错误状态,以及将硬停止位设置为等于0。从丢弃的MMIO负载的恢复是平台依赖性的。然而,恢复典型地包括检测错误、重设I/O子系统,重启未完成的I/O操作。I/O子系统的重设包括将硬停止位重设为等于0。然后,处理转回框1002。
图11是示出根据示例性实施例不管源页是否被访问当从源页向目的页迁移数据时暂时停止DMA操作的高级流程图。如框1100所示,该过程开始,之后转到框1102,其示出向对源页映射的每个主桥发出MMIO负载请求。该MMIO负载将使得任意未完成的DMA写操作被刷新。
接下来,框1104描述在具有指向要被迁移的页的TCE的所有主桥中将软停止位设置为等于1,将硬停止位设置为等于0,以及将软停止故障位设置为等于0。
然后,处理转到框1106,其示出从源页向目的页复制数据。之后,框1108示出读取在对源页映射的所有主桥中的页迁移控制寄存器。如果软停止位等于1并且软停止故障位等于0,则读取这些寄存器的处理使得硬停止位设置为等于1。
接下来,框1110示出确定所有软停止故障位是否仍旧等于0。如果确定所有软停止故障位没有仍旧等于0,则处理转回框1104。再参照框1110,如果确定所有软停止故障位仍旧等于0,则处理转到框1112,其示出设置所有受影响的TCE以指向目的页。接下来,框1114示出在所有主桥中将所有软停止、应停止和软停止故障位设置为等于0。然后,如框1116所示,该处理中止。
根据本发明第二示例性实施例,对TCE表中的每个转换和控制项目增加新的控制位。在这里,该位称为进行中的迁移(MIP)位。在TCE中的MIP位的值表示在TCE所指向的物理页中的数据当前是否被迁移。当MIP位设置为等于1时,该数据当前被迁移。当MIP位设置为等于0时,该数据当前没有被迁移。
图12示出根据示例性实施例包括进行中的迁移(MIP)位的转换和控制项目(TCE)1200。每个转换和控制项目(TCE)包括:转换信息1202,用于将命令中的地址(还称为请求)转换为特定物理页;进行中的迁移(MIP)位1204;和读/写控制信息1206。
图13是示出根据示例性实施例利用转换和控制项目的进行中的迁移(MIP)位来确定主桥是否应该进入软停止状态的高级流程图。如框1300所示,该过程开始,之后转到框1302,其示出接收要处理的DMA操作。接下来,框1304示出读取用于该DMA操作的TCE。
然后,框1306示出确定这是否为DMA写操作,并且进行中的迁移(MIP)位是否等于1。如果确定这不是DMA写操作并且进行中的迁移(MIP)位等于1,则如框1310所示,该处理中止。再参照框1306,如果确定这是DMA写操作并且进行中的迁移(MIP)位等于1,则处理转到框1308,其示出将软停止位设置为等于1。然后,如框1310所示,该处理中止。
图14是示出根据示例性实施例仅如果源页被向源页写入的I/O设备访问,则在从源物理页向目的物理页迁移数据时暂时停止DMA操作的高级流程图。如框1400所示,该过程开始,之后转到框1402,其示出在指向源页的所有TCE中将进行中的迁移(MIP)位设置为等于1。改变MIP位的处理使得那些TCE的任意缓存的副本无效。
接下来,框1404示出向具有所映射的源页的每个主桥发出存储器映射输入/输出(MMIO)加载请求。该MMIO加载在向处理器返回MMIO加载应答之前使得TCE的任意硬件无效到达主桥,并且将保证对存储器刷新在该无效之前对TCE的所有写操作。
然后,该处理转到框1406,其示出从源页向目的页复制数据。接下来,框1408示出在可具有指向源页的TCE的所有主桥中将软停止位设置为等于0。之后,框1410示出在已经对源页映射的所有主桥中读取页迁移控制寄存器。如果软停止位和软停止故障位等于0,则读取这些存储器的处理使得将硬停止位设置为等于1。
接下来,框1412示出所有软停止故障位是否仍旧等于0。如果确定不是所有软停止故障位仍旧等于0,则处理返回框1414,其示出在所有主桥中将软停止位设置为等于0,将硬停止位设置为等于0,以及将软停止位设置为等于0。然后,处理转回框1404。
再参照框1412,如果确定所有软停止故障位仍旧等于0,则处理转到框1416,其示出设置所有受影响的TCE以指向目的页。然后,在那些TCE中,将所有进行中的迁移(MIP)位设置为等于0。之后,框1418将所有主桥中的软停止位设置为等于0,将硬停止位设置为等于0,以及将软停止故障位设置为等于0。然后,如框1420所示,该处理中止。
本发明可采用完全硬件实施例或包含硬件和软件元素的实施例。在优选实施例中,在包括但不限于固件、驻留软件、微码等的硬件和软件中实现本发明。
此外,本发明可采用从计算机可用或计算机可读介质可访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供用于计算机或任意指令执行系统或与其连接的程序代码。为了这里说明的目的,计算机可用或计算机可读介质可以是可包含、存储、通信、传播或传输用于指令执行系统、装置或设备或与其连接的程序的任意有形装置。
介质可以是电子、磁、光、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括:半导体或固态存储器、磁带、可卸计算机磁盘、随机存取存储区(RAM)、只读存储区(ROM)、硬盘和光盘。光盘的当前实例包括压缩盘-只读存储区(CD-ROM)、压缩盘-读/写(CD-R/W)和DVD。
适用于存储和/或执行程序代码的数据处理系统包括直接或通过系统总线间接与存储区元件耦合的至少一个处理器。存储器元件可包括在程序代码的实际执行期间采用的本地存储器、海量存储装置、以及提供至少一些程序代码的临时存储以减少在执行期间必须从海量存储装置提取代码的次数的高速缓存。
输入/输出或I/O设备(包括但不限于键盘、显示器、定点设备等)可直接或通过中间I/O控制器耦合至系统。
网络适配器也可耦合至系统,以使得数据处理系统能够通过中间专用网络或公共网络耦合至其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是网络适配器的几个当前可用类型。
为了说明和描述的目的提出本发明实施例的以上描述,并且其不是穷尽的,以及并没有将本发明限制在所公开的特定形式。对于本领域普通技术人员,许多变形和改变是清楚的。选择和描述实施例以最佳地解释发明原理、实际应用,以及使得本领域普通技术人员能够通过适用于特定用途的具有各种修改的各种实施例理解本发明。

Claims (19)

1.一种从源物理页向目的物理页迁移数据的计算机实现的方法,所述计算机实现的方法包括:
开始从所述源物理页向所述目的物理页迁移数据的迁移处理;
使得主桥进入第一状态;
当所述主桥处于所述第一状态时,通过所述主桥暂停所述主桥的直接存储器存取(DMA)请求的处理;和
在所述主桥处于所述第一状态时,如果由所述主桥接收到存储器映射输入/输出(MMIO)加载请求,则中断所述第一状态,以使得所述主桥进入第二状态。
2.根据权利要求1所述的方法,还包括:
响应于所述主桥接收到所述MMIO加载请求,使得所述主桥进入第二状态;和
在所述主桥处于所述第二状态时,通过所述主桥继续直接存储器存取请求的处理。
3.根据权利要求2所述的方法,还包括:
响应于所述主桥进入所述第二状态,需要重新开始所述迁移处理。
4.根据权利要求1至3中任一个所述的方法,还包括:
响应于开始所述迁移处理,开始从所述源物理页向所述目的物理页复制数据;
响应于完成从所述源物理页向所述目的物理页对所述数据的复制,确定所述主桥是否仍旧处于所述第一状态;和
响应于在完成所述复制时确定所述主桥仍旧处于所述第一状态,使得所述主桥进入第三状态。
5.根据权利要求4所述的方法,还包括:
响应于所述主桥进入所述第三状态,通过所述主桥停止所述主桥的所有I/O操作的处理。
6.根据权利要求5所述的方法,还包括:
完成所述迁移处理。
7.根据权利要求6所述的方法,还包括:
改变对于所述数据的地址,以指向所述目的页;和
使得所述主桥退出所述第三状态。
8.根据权利要求1至7中任一个所述的方法,还包括:
将迁移位包括在转换和控制表中的每个项目中,其中在所述转换和控制表中的每个项目与特定物理页相关;和
仅如果DMA写请求尝试对所述源页写入并且在与所述源物理页相关的项目中设置迁移位,则使得所述主桥进入所述第一状态。
9.根据权利要求8所述的方法,还包括:
通过所述主桥接收DMA请求;
使用与所述源物理页相关的迁移位,确定所述DMA请求是否尝试对所述源物理页写入;
响应于确定所述DMA请求尝试对所述源物理写入,使得所述主桥进入所述第一状态;和
响应于确定所述DMA请求没有尝试对所述源物理写入,通过所述主桥执行所述DMA请求。
10.一种计算机程序产品,包括:
含有计算机可用程序代码的计算机可用介质,所述计算机可用程序代码用于从源物理页向目的物理页迁移数据,所述计算机程序产品包括:
计算机可用程序代码,开始从所述源物理页向所述目的物理页迁移数据的迁移处理;
计算机可用程序代码,使得主桥进入第一状态;
计算机可用程序代码,当所述主桥处于所述第一状态时,通过所述主桥暂停所述主桥的直接存储器存取(DMA)请求的处理;和
计算机可用程序代码,在所述主桥处于所述第一状态时,如果由所述主桥接收到存储器映射输入/输出(MMIO)加载请求,则中断所述第一状态,以使得所述主桥进入第二状态。
11.一种从源物理页向目的物理页迁移数据的设备,所述设备包括:
开始从所述源物理页向所述目的物理页迁移数据的迁移处理的装置;
使得主桥进入第一状态的页迁移机构;
当所述主桥处于所述第一状态时,所述主桥暂停所述主桥的直接存储器存取(DMA)请求的处理;和
在所述主桥处于所述第一状态时,如果由所述主桥接收到存储器映射输入/输出(MMIO)加载请求,则所述页迁移机构中断所述第一状态,以使得所述主桥进入第二状态。
12.根据权利要求11所述的设备,还包括:
响应于所述主桥接收到所述MMIO加载请求,所述页迁移机构使得所述主桥进入第二状态;和
在所述主桥处于所述第二状态时,所述主桥继续直接存储器存取请求的处理。
13.根据权利要求12所述的设备,还包括:
响应于所述主桥进入所述第二状态,所述页迁移机构需要重新开始所述迁移处理。
14.根据权利要求11至13中任一个所述的设备,还包括:
响应于开始所述迁移处理,所述迁移处理开始从所述源物理页向所述目的物理页复制数据;
响应于完成从所述源物理页向所述目的物理页对所述数据的复制,所述页迁移机构确定所述主桥是否仍旧处于所述第一状态;和
响应于在完成所述复制时确定所述主桥仍旧处于所述第一状态,所述页迁移机构使得所述主桥进入第三状态。
15.根据权利要求14所述的设备,还包括:
响应于所述主桥进入所述第三状态,所述主桥停止所有I/O操作的处理。
16.根据权利要求15所述的设备,还包括:
完成所述迁移处理。
17.根据权利要求16所述的设备,还包括:
所述迁移处理改变对于所述数据的地址,以指向所述目的页。
18.根据权利要求11至17中任一个所述的设备,还包括:
将迁移位包括在转换和控制表中的每个项目中,其中在所述转换和控制表中的每个项目与特定物理页相关;和
仅如果DMA写请求尝试对所述源页写入并且在与所述源物理页相关的项目中设置迁移位,则所述页迁移机构使得所述主桥进入所述第一状态。
19.根据权利要求18所述的设备,还包括:
所述主桥接收DMA请求;
使用与所述源物理页相关的迁移位,以确定所述DMA请求是否尝试对所述源物理页写入;
响应于确定所述DMA请求尝试对所述源物理写入,所述页迁移机构使得所述主桥进入所述第一状态;和
响应于确定所述DMA请求没有尝试对所述源物理写入,所述主桥执行所述DMA请求。
CN2007800112575A 2006-05-25 2007-05-23 在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品 Active CN101410813B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/420,236 2006-05-25
US11/420,236 US7734843B2 (en) 2006-05-25 2006-05-25 Computer-implemented method, apparatus, and computer program product for stalling DMA operations during memory migration
PCT/EP2007/055020 WO2007137983A1 (en) 2006-05-25 2007-05-23 Computer-implemented method, apparatus, and computer program product for stalling dma operations during memory migration

Publications (2)

Publication Number Publication Date
CN101410813A true CN101410813A (zh) 2009-04-15
CN101410813B CN101410813B (zh) 2011-11-16

Family

ID=38335617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800112575A Active CN101410813B (zh) 2006-05-25 2007-05-23 在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品

Country Status (7)

Country Link
US (1) US7734843B2 (zh)
EP (1) EP2033101B1 (zh)
JP (1) JP5016028B2 (zh)
CN (1) CN101410813B (zh)
AT (1) ATE484797T1 (zh)
DE (1) DE602007009835D1 (zh)
WO (1) WO2007137983A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110546623A (zh) * 2017-04-24 2019-12-06 超威半导体公司 静默活动页面迁移错误

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101400597B1 (ko) * 2008-02-18 2014-05-27 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 통신 결합 방법 및 시스템
US20120023302A1 (en) * 2010-07-20 2012-01-26 Ibm Corporation Concurrent Atomic Operations with Page Migration in PCIe
US9336029B2 (en) 2010-08-04 2016-05-10 International Business Machines Corporation Determination via an indexed structure of one or more partitionable endpoints affected by an I/O message
US8549202B2 (en) 2010-08-04 2013-10-01 International Business Machines Corporation Interrupt source controller with scalable state structures
US8495271B2 (en) * 2010-08-04 2013-07-23 International Business Machines Corporation Injection of I/O messages
US9032146B2 (en) 2010-11-30 2015-05-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic use of raid levels responsive to workload requirements
US8452819B1 (en) 2011-03-22 2013-05-28 Amazon Technologies, Inc. Methods and apparatus for optimizing resource utilization in distributed storage systems
US9473561B2 (en) * 2013-03-15 2016-10-18 International Business Machines Corporation Data transmission for transaction processing in a networked environment
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
US9785451B1 (en) 2016-10-21 2017-10-10 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9760512B1 (en) 2016-10-21 2017-09-12 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9715469B1 (en) 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9740647B1 (en) 2016-10-21 2017-08-22 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US11526278B2 (en) 2017-12-21 2022-12-13 Advanced Micro Devices, Inc. Adaptive page close prediction
US11455264B2 (en) * 2020-08-10 2022-09-27 International Business Machines Corporation Minimizing delay while migrating direct memory access (DMA) mapped pages

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923859A (en) * 1995-04-13 1999-07-13 Compaq Computer Corporation Dual arbiters for arbitrating access to a first and second bus in a computer system having bus masters on each bus
US6587961B1 (en) * 1998-06-15 2003-07-01 Sun Microsystems, Inc. Multi-processor system bridge with controlled access
US6932471B2 (en) * 2003-08-06 2005-08-23 Gary M. Zelman Eyeglasses having magnetically coupled primary lens frame and auxiliary frame
US6931471B2 (en) 2002-04-04 2005-08-16 International Business Machines Corporation Method, apparatus, and computer program product for migrating data subject to access by input/output devices
US7480911B2 (en) * 2002-05-09 2009-01-20 International Business Machines Corporation Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
US6941436B2 (en) * 2002-05-09 2005-09-06 International Business Machines Corporation Method and apparatus for managing memory blocks in a logical partitioned data processing system
US7103728B2 (en) * 2002-07-23 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for memory migration in distributed-memory multi-processor systems
JP2004086451A (ja) * 2002-08-26 2004-03-18 Matsushita Electric Ind Co Ltd 半導体集積回路
US6804729B2 (en) * 2002-09-30 2004-10-12 International Business Machines Corporation Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel
US7318140B2 (en) * 2004-06-10 2008-01-08 International Business Machines Corporation Method and apparatus for dynamic hosting partition page assignment
US20060069818A1 (en) * 2004-09-27 2006-03-30 Cliff Mather Synchronizing direct memory access and evacuation operations in a computer system
US7500072B2 (en) * 2006-04-25 2009-03-03 International Business Machines Corporation Migrating data that is subject to access by input/output devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110546623A (zh) * 2017-04-24 2019-12-06 超威半导体公司 静默活动页面迁移错误
CN110546623B (zh) * 2017-04-24 2023-11-07 超威半导体公司 以计算系统中迁移页面为目标的转换请求的静默重试请求

Also Published As

Publication number Publication date
EP2033101B1 (en) 2010-10-13
US20080005383A1 (en) 2008-01-03
JP5016028B2 (ja) 2012-09-05
WO2007137983A1 (en) 2007-12-06
US7734843B2 (en) 2010-06-08
JP2009537922A (ja) 2009-10-29
DE602007009835D1 (de) 2010-11-25
ATE484797T1 (de) 2010-10-15
EP2033101A1 (en) 2009-03-11
CN101410813B (zh) 2011-11-16

Similar Documents

Publication Publication Date Title
CN101410813B (zh) 在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品
CN100495375C (zh) 用于选择性地停止dma操作的方法、设备和系统
CN102023932B (zh) 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持
CN101290593B (zh) 追踪转移逻辑分区的存储器状态的系统和方法
US8706941B2 (en) Interrupt virtualization
US8103815B2 (en) Lazy handling of end of interrupt messages in a virtualized environment
CN101221540B (zh) 用于减少存储器访问时延的方法和设备以及数据处理系统
US20060179177A1 (en) Method, apparatus, and computer program product for migrating data pages by disabling selected DMA operations in a physical I/O adapter
CN100589089C (zh) 处理直接存储器访问请求的设备和方法
US20090083467A1 (en) Method and System for Handling Interrupts Within Computer System During Hardware Resource Migration
CN103399833A (zh) 用于在计算机系统中传递中断的技术
US20170139721A1 (en) Implementation of reset functions in an soc virtualized device
CN101449244A (zh) 使用冗余虚拟机的错误检测
CN112148424A (zh) 用于加速虚拟机迁移的方法和装置
US6976191B2 (en) Method and apparatus for analyzing hardware errors in a logical partitioned data processing system
US10545697B1 (en) Reverse order request queueing by para-virtual device drivers
US6189117B1 (en) Error handling between a processor and a system managed by the processor
US20090182967A1 (en) Packet transfer in a virtual partitioned environment
CN107480075B (zh) 低开销的转换后备缓冲器下拉
CN104049951A (zh) 在解决存储器访问故障的同时重播存储器事务
US20230069152A1 (en) Low latency host processor to coherent device interaction

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