CN1815462A - 迁移数据页面的方法和装置 - Google Patents
迁移数据页面的方法和装置 Download PDFInfo
- Publication number
- CN1815462A CN1815462A CNA2006100024073A CN200610002407A CN1815462A CN 1815462 A CN1815462 A CN 1815462A CN A2006100024073 A CNA2006100024073 A CN A2006100024073A CN 200610002407 A CN200610002407 A CN 200610002407A CN 1815462 A CN1815462 A CN 1815462A
- Authority
- CN
- China
- Prior art keywords
- physical
- adapter
- request
- data
- pattern position
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling 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)
- Bus Control (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
在数据处理系统中,所公开的方法、装置和计算机程序产品通过暂时禁用物理I/O适配器内所选定的DMA操作来迁移受到DMA访问的数据页面。对是否禁用物理I/O适配器的数据访问DMA能力做出判断。物理I/O适配器的一种操作模式为根据是否禁用数据访问DMA能力的判断结果,采用模式位设定特定的模式。当设置所述模式位时,仅仅禁用物理I/O适配器的数据访问DMA能力。禁用物理I/O适配器的数据访问DMA能力时,管理服务操作由所述物理I/O适配器继续进行。
Description
技术领域
本发明涉及数据处理系统,尤其涉及在受到输入/输出[I/O]设备访问的物理页面之间进行数据迁移。更确切地说,本发明涉及在物理I/O适配器中仅仅禁用所选定的DMA操作,以便允许在受到物理I/O适配器访问的物理页面之间进行数据迁移。
背景技术
根据计算机系统的发展趋势,在系统运行时不必中断数据处理而重新配置。例如,在计算机上运行多个操作系统时,所述操作系统中的第一个可能正在使用特定的存储器块,此时可能需要重新分配所述存储器块,以便由所述操作系统中的第二个使用。因此,第一个操作系统必须首先停止使用物理存储器的所述块。另一个实例为,在物理存储器的一块中可能检测到问题,在这种情况下可能期望从操作中移走所述存储器以便能够更换。因此,特定物理页面之内的数据可能需要移动,或者说所述物理页面的使用可能需要阻断一段时间。如果存储器的这个块要受到I/O设备访问,迁移或者阻断物理页面使用的问题会变得困难。
受到I/O设备所访问数据的一种迁移方法,是暂时但是完全禁用所述I/O设备所连接的I/O适配器所进行的全部仲裁,以便访问所述特定物理页面。仲裁过程是DMA过程期间所采用的第一步。所以当禁用仲裁时,就禁用了物理I/O适配器的全部DMA操作。因此,当禁用仲裁时,需要访问将被迁移数据的物理I/O适配器的全部DMA操作短期内被完全禁用。在此短期内,物理页面数据或者迁移或者更新。一旦完成了所述物理页面的迁移或更新,就再次启用I/O适配器中的DMA操作。
DMA操作既包括访问数据的数据访问操作,也包括管理服务操作。典型情况下,这些管理服务操作在后台执行。某些物理I/O适配器需要能够执行管理服务操作的能力,以便恰当地操作。例如,某些物理I/O适配器使用管理服务操作以访问特定的物理I/O适配器中包括的寄存器。如上所述在物理I/O适配器中禁用仲裁时,就禁用了全部DMA操作,包括数据访问和管理服务操作。在为了正常运行而需要管理服务操作的I/O适配器中,如果禁用了执行这些管理服务操作的能力,即使是暂时禁用,物理I/O适配器也将进入出错状态。这将导致处理器停止处理。
所以需要有一种方法、装置和计算机程序产品,在物理I/O适配器中仅仅禁用所选定的DMA操作,以便允许迁移受到物理I/O适配器访问的物理页面。
发明内容
在数据处理系统中,所公开的方法、装置和计算机程序产品用于暂时禁用物理I/O适配器内所选定的DMA操作。对是否禁用物理I/O适配器的数据访问DMA能力做出判断。物理I/O适配器的一种操作模式为根据是否禁用数据访问DMA能力的判断结果,采用模式位设定特定的模式。当设置所述模式位时,仅仅禁用物理I/O适配器的数据访问DMA能力。禁用物理I/O适配器的数据访问DMA能力时,管理服务操作由所述物理I/O适配器继续进行。
在以下的详细书面说明中,本发明的以上以及其他目的、特性和优点将变得显而易见。
附图简要说明
在附带的权利要求书中阐明了本发明据信有特征的新颖特性。不过,连同附图参考一个展示性实施例的以下详细说明,将会最好地理解发明本身以及其使用的优选模式、进一步的目的和优点,其中:
图1是根据本发明的高层次框图,描绘了包括本发明的计算机系统;
图2展示了根据本发明,从第一个物理页面迁移数据之前,图1中计算机系统的状态实例;
图3展示了根据本发明,从第一个物理页面迁移数据之后,图1中计算机系统的状态实例;
图4A描绘了根据本发明的高层次流程图,展示了将物理I/O适配器的操作模式设定为特定模式,以便仅仅禁用物理I/O适配器的数据访问DMA能力,而不禁用管理服务操作,所以阻断了对物理I/O适配器的全部数据访问;
图4B描绘了根据本发明的高层次流程图,展示了将物理I/O适配器的操作模式设定为特定模式,以便恢复物理I/O适配器的数据访问DMA能力,所以允许对物理I/O适配器的全部数据访问;
图5描绘了根据本发明的高层次流程图,展示了根据特定的物理I/O适配器的当前模式处理I/O请求;
图6是根据本发明的框图,图中逻辑分区平台包括本发明。
具体实施方式
通过参考附图,会更好地理解本发明的优选实施例及其优点,相同的编号用于附图中相同的和对应的部件。
本发明是一种方法、装置和计算机程序产品,用于暂时禁用物理I/O适配器内所选定的DMA操作,以便允许页面迁移。数据页面将要迁移时,I/O控制器将设定模式位,以便暂时禁用物理I/O适配器对这些页面的数据访问。
数据页面将要迁移时,对禁用数据访问DMA能力做出判断。物理I/O适配器的一种操作模式为根据是否禁用数据访问DMA能力的判断结果,采用模式位设定特定的模式。当设置所述模式位时,仅仅禁用物理I/O适配器的数据访问DMA能力。禁用物理I/O适配器的数据访问DMA能力时,管理服务操作由所述物理I/O适配器继续进行。
收到将要由特定物理I/O适配器处理的I/O请求时,I/O控制器将做出两项判断。I/O控制器将判断与这个特定物理I/O适配器相关联的模式位是否被设置——它表明对于这个物理I/O适配器,数据访问被暂时禁用。I/O控制器也将查看I/O请求本身,以便判断所述请求是数据访问请求还是管理服务请求。
如果I/O控制器判定模式位被设置而且所述请求是数据访问请求,I/O控制器将通过把所述请求放回处理队列而推迟这项请求的处理。如果I/O控制器判定或者模式位未被设置或者所述请求不是数据访问请求,I/O控制器当时将处理所述请求。
图1是根据本发明的高层次框图,描绘了包括本发明的计算机系统100。数据102存储在计算机系统100中。数据102存储在存储器中,如磁盘存储器135。数据102的块104从非易失性存储器135写入主存110。数据102的块104是指数据的物理页面115,以便区分它们与按照虚拟存储器映射的观点对数据102的引用,正如本文下面的进一步讲解。存储器110可以指主存或物理存储器。
存储器110中的数据块可由计算机系统100的I/O设备135、140和145以及中央处理器(CPU)访问。正如本文所用,术语I/O设备是指多种设备中的任何一种,它们连接到计算机系统100并向所述系统提供信息或从所述系统接收信息。I/O设备的实例包括存储器、磁盘存储器135、鼠标、跟踪球、触摸板等、键盘、显示器、打印机、摄像头、调制解调器、光学扫描仪、话筒、音频扬声器等等。
更确切地说,物理页面115通过第一总线125连接到I/O桥路130。I/O设备135、140、145中的每一种都通过对应的I/O适配器136、141和146以及I/O总线180的分支137、142、147连接到I/O桥路130。I/O桥路130也具有逻辑150,包括总线逻辑,它在I/O设备135、140、145之间进行仲裁,即准许所述I/O设备每次一个地访问I/O总线180。逻辑150在I/O总线180与第一总线125之间进行仲裁。I/O桥路130也包括I/O数据缓冲区156,用于高速缓存来自物理页面115或I/O设备比如存储器135的数据102,以响应I/O设备的请求。逻辑150包括应对数据缓冲的逻辑。I/O桥路逻辑包括I/O控制器153,也称为I/O处理器。
I/O控制器153包括模式位154。模式位154用于为具体的物理I/O适配器设置当前操作模式。虽然仅仅描绘了一个模式位,但是在I/O控制器153中会为每个物理I/O适配器包括单独的独立模式位。以这种方式,每个物理I/O适配器的操作模式都可以独立于其他物理I/O适配器的当前操作模式。
作为替代,在I/O控制器153中可以为每个队列对包括单独的模式位,所以每个物理I/O适配器中每个虚拟I/O适配器的操作模式都可以独立于每个物理I/O适配器中其他虚拟I/O适配器的当前操作模式。
CPU 120执行操作系统和固件指令,其影像在图1中表示为操作系统160和固件165。由CPU 120执行的指令包括固件指令165,在固件165支持下运行的操作系统指令160,以及在固件165和操作系统160支持下运行的应用程序指令(未显示)。应当认同,固件165在处理器120上的运行本质上独立于操作系统160,并提供了比操作系统160更低层次的接口,所以更多地访问硬件组件,比如处理器120。
操作系统160向CPU 120上运行的应用程序呈现数据102中块104的视野,表现为虚存162的页面,所以数据102的实际位置是透明的,无论数据是在存储器110中还是在例如磁盘存储器135中。所以,操作系统160包括分页机构163和页面表164,用于将数据102透明地移入、移出存储器110。P10
操作系统160指挥I/O逻辑150通过转换控制表目(TCE)表175中的表目,将数据102的块104映射到物理页面115。在展示的实施例中,固件165提供的服务用于从物理页面115的某个第一页面将数据移动到物理页面115的某个第二页面,使得第一页面能够用于不同的服务或空闲。为了做到这一点,操作系统160在TCE表175中为物理页面115的第一页面找到一组一个或多个表目。然后操作系统160指挥固件165的组件如管理程序170从给定I/O设备虚存页面152所关联的第一物理页面115把数据复制到第二物理页面115,然后在TCE表175中改变所关联的映射,使得将来对I/O设备虚存页面152的访问指向第二物理页面。管理程序170具有许多功能,除了其他功能,还包括保持TCE表175更新以及保持存储器与I/O操作一致。
为了理解TCE表175,考虑I/O设备135、140、145,各有其自己的数据102视野,表现为虚存152的页面,类似于CPU 120的虚存视野。I/O桥路逻辑150向I/O设备135、140、145呈现这个视野。在其他实施例中,I/O控制器153和固件165向I/O设备135、140、145呈现这个视野。为了维持这个视野,TCE表175中的若干表目(图1中未显示)将数据102的块104映射到I/O虚存页面152。所以,I/O设备135、140、145可以通过引用虚拟页面152而引用数据102,无论数据的实际位置在何处,换言之,无论哪个物理页面115可能当前正存储着此数据。
I/O桥路130提供了逻辑150,它介于总线125和总线180之间。总线180上的请求从I/O设备进入,带有虚拟地址以反映I/O设备虚存152。地址转换逻辑157有效地访问TCE表175(以I/O设备虚拟页面的次序保存)以确定应当应用于总线125的物理页面地址,以便访问来自总线180的存储器请求所关联的正确物理页面115。
每台I/O适配器135、140、145都能够模拟数以千计的虚拟I/O适配器。每个虚拟适配器都是I/O适配器的逻辑表达,这些I/O适配器的行为独立于其他的虚拟适配器,仿佛每个虚拟适配器都是其自己独立的物理I/O适配器。
I/O适配器146包括三个虚拟适配器180、182和184。每个虚拟适配器都有其自己的队列对。每个队列对都包含发送工作队列和接收工作队列。发送工作队列用于发送消息。接收工作队列接收消息。
虚拟I/O适配器180包括队列对186。虚拟I/O适配器182包括队列对188。虚拟I/O适配器184包括队列对190。
虚拟I/O适配器使用其队列对,以便在虚拟I/O适配器和DMA通道192之间发送和接收数据。在物理I/O适配器146之内有多条DMA通道。每个虚拟I/O适配器都有其自己的队列对,用于为虚拟I/O适配器提供单独的DMA通道。例如,队列对186由虚拟I/O适配器180用于通过专用DMA通道194与总线147通信。队列对188由虚拟I/O适配器182用于通过专用DMA通道196与总线147通信。队列对190由虚拟I/O适配器184用于通过专用DMA通道198与总线147通信。
物理I/O适配器146也包括寄存器200。寄存器200是存储器映射输入/输出(MMIO)寄存器,由包括在物理I/O适配器146之内的虚拟I/O适配器使用。物理I/O适配器146通过保存主存110中寄存器200的状态而实际使用寄存器200。对物理I/O适配器146的DMA操作必须能够访问寄存器200。如果禁用了访问寄存器200的能力,就无法操作I/O适配器146。要是禁用了对物理I/O适配器146的DMA操作并且处理器试图进行指向物理I/O适配器146的MMIO操作,处理器将不能完成此MMIO操作,导致处理器中的出错条件。
不过在数据迁移时,并非物理I/O适配器146中的全部DMA操作都需要禁用。DMA操作是两种不同的类型之一:数据访问操作或管理服务操作。保存存储器110中寄存器200状态的过程是由I/O适配器146的DMA操作进行的管理服务操作。为了能够正确地迁移数据,仅仅需要禁用数据访问操作。在数据进行迁移的同时,管理服务操作必须能够继续操作,以便使I/O适配器继续正常运行。所以,本发明提供了一种方法、系统和产品,在物理I/O适配器中仅仅禁用数据访问操作。禁用数据访问操作时,管理服务操作仍然可用。所以,在物理I/O适配器继续正常运行的同时,数据能够迁移。
参考图2和图3,以下是对数据迁移过程的说明。图2展示了根据本发明,从第一个物理页面迁移数据之前,图1中计算机系统的状态实例。为了展示从物理页面115的第一页面迁移数据的实例,更加详细地显示了TCE表175以及许多物理页面115和I/O虚存页面152。具体地说,物理页面115的各个页面可以称为115.1,115.2等。在所展示的实例中,来自页面115.3的数据是被迁移目标。从各台I/O设备135、140、145的角度显示了虚存页面152。换言之,页面的第一组152.1将要由第一I/O设备访问,如磁盘135,页面的第二组152.2将要由第二I/O设备访问,如设备140,第三组152.3将要由第三I/O设备145访问。
对TCE表175显示了210、220、230部分以及每个部分中的具体表目210.1、210.2等。这些部分对应于各自的第一、第二等I/O设备,如设备135、140、145。以这种方式,表175中定位了表目的部分表明可以访问该表目对应物理页面的I/O设备。在所展示的实例中,目标物理页面115.3被第一I/O设备视为虚存页面152.1.5,而被第三I/O设备视为虚存页面152.3.2。根据表175的第二部分220中对页面115.3表目缺失,管理程序170判定第二I/O设备没有到页面115.3的映射。因此,页面115.3不受到第二I/O设备的访问。
总结以上说明,管理程序170通过在表175中发现物理页面115.3的表目,已经识别出可以访问页面115.3的I/O设备(以及不可访问的I/O设备)。具体地说,管理程序170已经判定第一I/O设备135和第三I/O设备145可以访问页面115.3。
当DMA写入的数据缓冲区156充满时,桥路130的硬件将它们自动写回。如果它们部分填充并等待后续DMA请求,或者填充它们或者引用不连续的地址范围(表明DMA将不再填充缓冲区),那么它们是不定的。因此,在从一个物理页面115移动数据到另一个页面之前,管理程序170清洗I/O数据缓冲区156。在本实例中,来自I/O数据缓冲区156选择性地写回物理页面115.3。强制的写回是为了清洗部分写入的I/O缓冲区。
图3展示了根据本发明,从第一个物理页面迁移数据之后,图1中计算机系统的状态实例。一旦移动了数据,管理程序170就更新表175中的表目组。如图所示,更新之后,表目210.4将虚拟页面152.1.5指向新的物理页面115.5,表目230.1将虚拟页面152.3.5指向新的物理页面115.5。
图4A描绘了根据本发明的高层次流程图,展示了将物理I/O适配器的操作模式设定为特定模式,以便仅仅禁用物理I/O适配器的数据访问DMA能力,而不禁用管理服务操作,所以阻断了对物理I/O适配器的全部数据访问。过程开始于所示方框400,然后进至方框402,它展示了判断是否已经做出阻断全部数据访问请求的判断。如果已经做出判断,允许全部数据访问请求,过程回到方框402。再次参考方框402,如果做出了阻断全部数据访问请求的判断,过程进至方框404,它描绘了在I/O控制器中设置模式位,以指示阻断了全部数据访问。然后过程回到方框402。
图4B描绘了根据本发明的高层次流程图,展示了将物理I/O适配器的操作模式设定为特定模式,以便恢复物理I/O适配器的数据访问DMA能力,所以允许对物理I/O适配器的全部数据访问。过程开始于所示方框406,然后进至方框408,它展示了判断是否恢复执行全部数据访问请求的能力。如果已经做出判断,不恢复执行全部数据访问请求的能力,过程回到方框408。再次参考方框408,如果做出了恢复执行全部数据访问请求的能力,过程进至方框410,它描绘了在I/O控制器中设置模式位,以指示可以执行全部数据访问。然后过程回到方框408。
图5描绘了根据本发明的高层次流程图,展示了根据特定的物理I/O适配器的当前模式处理I/O请求。过程开始于所示方框500,然后进至方框502,它展示了I/O控制器为具体的物理I/O适配器获得下一个I/O操作。通过为将要处理的下一个队列对检索下一个状态块而获得下一个I/O操作。将要处理的下一个队列对是所述具体的物理I/O适配器内包括的队列对。随后,方框504展示了I/O控制器识别将要根据状态块进行的工作类型。工作类型或者是数据访问DMA操作,或者是管理服务DMA操作。每个状态块都包括将要根据此状态块进行的工作类型标志。因此,每个状态块都指明了此状态块将是数据访问操作还是管理服务操作。
然后过程进至方框506,它描述了I/O控制器检验这个物理I/O适配器的模式位以确定其状态。下一步,方框508展示了判断模式位是否被设置。如果做出了模式位未被设置的判断,过程就进至方框510,它描述了I/O控制器处理由状态块定义的工作。如果模式位未被设置,则全部DMA操作都可用。因此,如果模式位未被设置,数据访问以及管理服务操作都能够进行。然后过程回到方框502。
再次参考方框508,如果做出了模式位已被设置的判断,过程就进至方框512,它描述了判断将执行的工作是不是数据访问。如果模式位已被设置,就不允许对这个物理I/O适配器进行数据访问。不过,即使模式位已被设置,也允许管理服务操作。
如果做出此工作不是数据访问的判断,即它是管理服务操作,过程就回到方框510,它描述了I/O控制器处理由状态块定义的工作。因此,即使模式位已被设置,如果此工作是管理服务操作,此工作也将进行。
再次参考方框512,如果做出此工作是数据访问的判断,过程就进至方框514,它描述了判断是否启用了I/O控制器阻断DMA数据访问。如果做出已启用了I/O控制器阻断DMA数据访问的判断,过程就进至方框516,它描述了此时将状态块放回存储器而不处理状态块。通过将状态块放回存储器而不处理状态块,此时不进行这次数据访问。在后来一旦对这个物理I/O适配器再次启用了数据访问能力时,这个状态块将得到处理。然后过程回到方框502。
再次参考方框514,如果做出未启用I/O控制器阻断DMA数据访问的判断,过程就回到方框510,它描述了I/O控制器处理状态块的工作。然后过程回到方框502。
图6是包括本发明的逻辑分区平台的框图。数据处理系统620包括逻辑分区平台650。平台650包括分区的硬件652、分区管理固件——也称为管理程序654以及分区656-659。操作系统661-664存在于分区656-659之内。操作系统661-664可以是单一操作系统的多个副本,也可以是在平台650上同时运行的多个多机种操作系统。
分区硬件652包括多个SMT可用处理器665-668、多个系统存储器单元670-673、多个输入/输出(I/O)适配器674-681以及存储器单元682。处理器665-668、存储器单元670-673、NVRAM存储器683以及I/O适配器674-681中的每一个都可以分配给多个分区656-659之一。分区硬件652也包括服务处理器690。非易失性存储器器件691,比如NVRAM器件,包括在服务处理器690之内。
分区管理固件(管理程序)654执行许多功能和服务,使分区656-659创建和实施逻辑分区平台650的分区。管理程序654是固件实施的虚拟机,与基础硬件相同。固件是存储器芯片中存储的“软件”,保存其内容而无须电力,比如只读存储器(ROM)、可编程存储器(PROM)、可擦除可编程ROM(EPROM)、电擦除可编程ROM(EEPROM)、非易失性随机存储器(非易失性RAM)。因此,管理程序654通过实际使用逻辑分区平台250的全部硬件资源,允许同时执行独立OS影像661-664。管理程序654能够以独占模式通过I/O适配器674-681把I/O设备连接到单一虚拟机,以便被OS影像661-664之一使用。
硬件管理控制台(HMC)680可以连接到数据处理系统620中的服务处理器690。HMC 680是单独的计算机系统,它连接到服务处理器690并且可被用户用于通过服务处理器690控制系统620的多种功能。
重要的是注意,虽然已经在全功能数据处理系统的环境中介绍了本发明,但是本领域的普通技术人员将会认同,本发明的过程能够以计算机可读介质上指令的形式及多种形式发行,并且无论进行发行时实际所用信号承载介质的具体类型如何,本发明都能够等同地应用。计算机可读介质的实例包括可记录型介质,比如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM,以及传输型媒介,比如使用传输形式的数字和模拟通信链接、有线或无线通信链接,比如射频和光波传输。计算机可读介质可以采取编码格式的形式,在具体的数据处理系统中解码后实际使用。
已经对本发明做出的说明是为了展示和说明之用,并非试图面面俱到或将本发明局限在所公开的形式。对于本领域的普通技术人员,许多修改和变化将是显而易见的。所选择和介绍的实施例是为了最好地讲解本发明的原理和可行的应用,以及使本领域的其他普通技术人员能够理解本发明,以便使具有多种修改的多种实施例适于所期望的具体用途。
Claims (15)
1.一种在计算机系统中通过在物理I/O适配器内暂时禁用所选定的DMA操作来迁移受到DMA访问的数据页面的方法,所述方法包括:
判断是否禁用所述物理I/O适配器的数据访问DMA能力;
根据是否禁用数据访问DMA能力的判断结果,采用模式位将所述物理I/O适配器的操作模式设置为特定模式;以及
当设置所述模式位时,仅仅禁用所述物理I/O适配器的数据访问DMA能力,当禁用所述物理I/O适配器的所述数据访问DMA能力时,管理服务操作继续由所述物理I/O适配器执行。
2.根据权利要求1的方法,进一步包括:
接收将要执行的I/O请求;
判断所述I/O请求是否为数据访问请求;
判断所述模式位的当前状态;
响应所述I/O请求是数据请求以及设置了所述模式位的判断结果,延迟处理所述I/O请求。
3.根据权利要求2的方法,进一步包括:
响应所述I/O请求不是数据请求或者未设置所述模式位的判断结果,处理所述I/O请求。
4.根据权利要求2的方法,进一步包括:
通过将所述I/O请求放回等待处理的处理队列,延迟处理所述I/O请求。
5.根据权利要求1的方法,进一步包括:
将单独的模式位与多个物理I/O适配器的每一个相关联;
通过采用与所述多个物理I/O适配器中的所述一个相关联的所述模式位,以独立于所述多个物理I/O适配器的其他适配器的方式对所述多个物理I/O适配器的每一个禁用数据访问。
6.根据权利要求1的方法,进一步包括:
采用所述模式位设置所述物理I/O适配器的所述操作模式,所述模式位包括在I/O控制器中;
由所述I/O控制器接收将要执行的所述I/O请求;
由所述I/O控制器判断所述I/O请求是否为数据访问请求;
由所述I/O控制器判断所述模式位的当前状态;以及
响应所述I/O请求是数据请求以及设置了所述模式位的判断结果,由所述I/O控制器延迟处理所述I/O请求。
7.根据权利要求1的方法,进一步包括:
判断从一个物理页面向另一个物理页面迁移数据页面;
响应迁移数据页面的判断结果,判断禁用所述物理I/O适配器的数据访问DMA能力;以及
响应禁用数据访问DMA能力的判断结果,设置所述模式位。
8.一种在计算机系统中通过在物理I/O适配器内暂时禁用所选定的DMA操作来迁移受到DMA访问的数据页面的装置,所述装置包括:
所述计算机系统包括CPU,用于执行代码以判断是否禁用所述物理I/O适配器的数据访问DMA能力;
所述CPU执行的代码根据是否禁用数据访问DMA能力的判断结果,采用模式位将所述物理I/O适配器的操作模式设置为特定模式;以及
当设置所述模式位时,仅仅禁用所述物理I/O适配器的数据访问DMA能力,当禁用所述物理I/O适配器的所述数据访问DMA能力时,管理服务操作继续由所述物理I/O适配器执行。
9.根据权利要求8的装置,进一步包括:
将要执行的I/O请求;
所述CPU执行的代码判断所述I/O请求是否为数据访问请求;
所述CPU执行的代码判断所述模式位的当前状态;
响应所述I/O请求是数据请求以及设置了所述模式位的判断结果,所述CPU执行的代码延迟处理所述I/O请求。
10.根据权利要求9的装置,进一步包括:
响应所述I/O请求不是数据请求或者未设置所述模式位的判断结果,所述CPU执行的代码处理所述I/O请求。
11.根据权利要求9的装置,进一步包括:
通过将所述I/O请求放回等待处理的处理队列,所述CPU执行的代码延迟处理所述I/O请求。
12.根据权利要求8的装置,进一步包括:
与多个物理I/O适配器的每一个相关联的单独模式位;
所述单独模式位用于通过采用与所述多个物理I/O适配器中的所述一个相关联的所述模式位,以独立于所述多个物理I/O适配器的其他适配器的方式对所述多个物理I/O适配器的每一个禁用数据访问。
13.根据权利要求8的装置,进一步包括:
所述模式位用于设置所述物理I/O适配器的所述操作模式,所述模式位包括在I/O控制器中;
所述I/O控制器用于接收将要执行的所述I/O请求;
所述I/O控制器用于判断所述I/O请求是否为数据访问请求;
所述I/O控制器用于判断所述模式位的当前状态;以及
响应所述I/O请求是数据请求以及设置了所述模式位的判断结果,所述I/O控制器用于延迟处理所述I/O请求。
14.根据权利要求8的装置,进一步包括:
所述CPU执行的代码判断从一个物理页面向另一个物理页面迁移数据页面;
响应迁移数据页面的判断结果,所述CPU执行的代码判断禁用所述物理I/O适配器的数据访问DMA能力;以及
响应禁用数据访问DMA能力的判断结果,设置所述模式位。
15.一种计算机程序产品,通过在物理I/O适配器内暂时禁用所选定的DMA操作,迁移受到DMA访问的数据页面,所述产品包括:
若干指令,用于实施以上方法权利要求中的任何方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/050,332 US7574537B2 (en) | 2005-02-03 | 2005-02-03 | Method, apparatus, and computer program product for migrating data pages by disabling selected DMA operations in a physical I/O adapter |
US11/050,332 | 2005-02-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1815462A true CN1815462A (zh) | 2006-08-09 |
CN100543709C CN100543709C (zh) | 2009-09-23 |
Family
ID=36781183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100024073A Expired - Fee Related CN100543709C (zh) | 2005-02-03 | 2006-01-27 | 迁移数据页面的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7574537B2 (zh) |
CN (1) | CN100543709C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101765829B (zh) * | 2007-08-13 | 2013-04-17 | 国际商业机器公司 | 用于管理数据存储系统的逻辑分区中初始程序加载的方法和系统 |
CN103080871A (zh) * | 2010-08-31 | 2013-05-01 | 国际商业机器公司 | 资源管理和安全系统 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060253682A1 (en) * | 2005-05-05 | 2006-11-09 | International Business Machines Corporation | Managing computer memory in a computing environment with dynamic logical partitioning |
US7437529B2 (en) * | 2005-06-16 | 2008-10-14 | International Business Machines Corporation | Method and mechanism for efficiently creating large virtual memory pages in a multiple page size environment |
US7380049B2 (en) * | 2005-09-06 | 2008-05-27 | Intel Corporation | Memory protection within a virtual partition |
US7904692B2 (en) * | 2007-11-01 | 2011-03-08 | Shrijeet Mukherjee | Iommu with translation request management and methods for managing translation requests |
US8661211B2 (en) * | 2007-08-27 | 2014-02-25 | International Business Machines Corporation | Method for migrating contents of a memory on a virtual machine |
US8694990B2 (en) * | 2007-08-27 | 2014-04-08 | International Business Machines Corporation | Utilizing system configuration information to determine a data migration order |
US9274949B2 (en) * | 2007-08-27 | 2016-03-01 | International Business Machines Corporation | Tracking data updates during memory migration |
US20090063753A1 (en) * | 2007-08-27 | 2009-03-05 | International Business Machines Corporation | Method for utilizing data access patterns to determine a data migration order |
US20090063752A1 (en) * | 2007-08-27 | 2009-03-05 | International Business Machines Corporation | Utilizing data access patterns to determine a data migration order |
US8671256B2 (en) * | 2007-08-27 | 2014-03-11 | International Business Machines Corporation | Migrating contents of a memory on a virtual machine |
CN101796500A (zh) * | 2007-08-30 | 2010-08-04 | 松下电器产业株式会社 | 直接存储器存取控制装置和数据传输方法 |
US8495609B2 (en) * | 2008-02-25 | 2013-07-23 | Sas Institute, Inc. | Methods, systems, and computer program products for taking a snapshot of installed software on a data processing system as part of a software update process |
US8495750B2 (en) | 2010-08-31 | 2013-07-23 | International Business Machines Corporation | Filesystem management and security system |
US20120254582A1 (en) * | 2011-03-31 | 2012-10-04 | Ashok Raj | Techniques and mechanisms for live migration of pages pinned for dma |
KR102039537B1 (ko) * | 2013-03-15 | 2019-11-01 | 삼성전자주식회사 | 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법 |
CN105320678A (zh) * | 2014-07-10 | 2016-02-10 | 苏宁云商集团股份有限公司 | 用户访问路径的数据采集方法和装置 |
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 |
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 |
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 |
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 |
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 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5789128A (en) * | 1980-11-25 | 1982-06-03 | Hitachi Ltd | Controlling system for information interchange |
US5041964A (en) * | 1989-06-12 | 1991-08-20 | Grid Systems Corporation | Low-power, standby mode computer |
US5717952A (en) * | 1994-11-16 | 1998-02-10 | Apple Computer, Inc. | DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command |
US5634099A (en) * | 1994-12-09 | 1997-05-27 | International Business Machines Corporation | Direct memory access unit for transferring data between processor memories in multiprocessing systems |
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 |
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 |
US20060069818A1 (en) | 2004-09-27 | 2006-03-30 | Cliff Mather | Synchronizing direct memory access and evacuation operations in a computer system |
US8621120B2 (en) | 2006-04-17 | 2013-12-31 | International Business Machines Corporation | Stalling of DMA operations in order to do memory migration using a migration in progress bit in the translation control entry mechanism |
-
2005
- 2005-02-03 US US11/050,332 patent/US7574537B2/en not_active Expired - Fee Related
-
2006
- 2006-01-27 CN CNB2006100024073A patent/CN100543709C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101765829B (zh) * | 2007-08-13 | 2013-04-17 | 国际商业机器公司 | 用于管理数据存储系统的逻辑分区中初始程序加载的方法和系统 |
CN103080871A (zh) * | 2010-08-31 | 2013-05-01 | 国际商业机器公司 | 资源管理和安全系统 |
CN103080871B (zh) * | 2010-08-31 | 2016-06-01 | 国际商业机器公司 | 用于解决计算机系统中的资源管理和安全性的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100543709C (zh) | 2009-09-23 |
US7574537B2 (en) | 2009-08-11 |
US20060179177A1 (en) | 2006-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1815462A (zh) | 迁移数据页面的方法和装置 | |
US8135921B2 (en) | Automated paging device management in a shared memory partition data processing system | |
US8074017B2 (en) | On-disk caching for raid systems | |
CN101059786A (zh) | 用于选择性地停止dma操作的方法、设备和系统 | |
US20100262766A1 (en) | Garbage collection for failure prediction and repartitioning | |
AU2009308007B2 (en) | Opportunistic page largification | |
EP1934762B1 (en) | Apparatus and method for handling dma requests in a virtual memory environment | |
CN100576190C (zh) | 使用替代页池管理dma写入页错误的计算机实现方法和装置 | |
CN1961300A (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
US20120005445A1 (en) | Memory allocation with identification of requesting loadable kernel module | |
CN106843756A (zh) | 基于页面分类的内存页面回收方法及系统 | |
CN1786928A (zh) | 应用层高速缓存映像知晓和再分配的系统和方法 | |
CN1492323A (zh) | 多处理器地址转换的高效仿真方法和系统 | |
US8255639B2 (en) | Partition transparent correctable error handling in a logically partitioned computer system | |
CN1786927A (zh) | 应用层高速缓存映像知晓和再分配的系统和方法 | |
JP3910573B2 (ja) | 連続したメモリ・アドレスを提供する方法、システムおよびコンピュータ・ソフトウェア | |
CN1818890A (zh) | 用于实现卸载发起方功能的方法和系统 | |
JP3872968B2 (ja) | コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法 | |
US10459662B1 (en) | Write failure handling for a memory controller to non-volatile memory | |
CN1748198A (zh) | 存储装置和信息处理系统 | |
EP4033346B1 (en) | Affinity-based cache operation for a persistent storage device | |
CN112199044B (zh) | 面向多租户的ftl设置方法、系统、计算机程序及存储介质 | |
CN114741337A (zh) | 一种页表释放方法及计算设备 | |
CN117009258A (zh) | 一种文件系统磁盘的访问方法、装置及设备 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090923 Termination date: 20160127 |
|
EXPY | Termination of patent right or utility model |