CN112241305A - 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 - Google Patents
虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112241305A CN112241305A CN202011129770.8A CN202011129770A CN112241305A CN 112241305 A CN112241305 A CN 112241305A CN 202011129770 A CN202011129770 A CN 202011129770A CN 112241305 A CN112241305 A CN 112241305A
- Authority
- CN
- China
- Prior art keywords
- dirty page
- dirty
- virtual machine
- page
- record
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请的虚拟机脏页处理方法、处理芯片、计算机设备及存储介质,方法包括:在脏页记录功能启动的情况下,当虚拟机向虚拟机物理内存页写入数据而令对应的虚拟机物理地址为脏页地址时,判别所述脏页地址是否已记录于脏页记录中;在未记录时,将所述虚拟机物理地址记录至所述脏页记录,并对应更新脏页记录计数;在所述脏页记录计数满足预设条件时,从虚拟机切换至主机模式以执行脏页同步;通过设计与脏页地址记录计数相关的触发虚拟机和主机切换以执行各自流程的条件,替代原有需要对页表项的设计,兼顾避免过于频繁切换和省去对页表的读写,并可配合硬件的比较电路单元快速实现脏页地址判断,有效提升虚拟机运行效率。
Description
技术领域
本申请实施例涉及处理器芯片技术领域,尤其虚拟机脏页处理方法、处理芯片、计算机设备及存储介质。
背景技术
各大中央处理器(CPU)厂商相继推出硬件辅助的内存虚拟化技术,比如Intel的扩展页表技术(Extended Page Table,EPT)和AMD的嵌套页表技术(Nested Page Table,NPT),内存虚拟化技术可以实现在一台主机(也称“宿主机”)上运行多个客户机,即虚拟机(Virtual Machine,VM)。
计算机系统中的脏页指的有数据写入但没有完成数据同步的内存页面。某些场景需要利用虚拟机脏页来完成一些功能,比如在线迁移,显示等。在线迁移,即在虚拟机不停机的情况下,把源虚拟机迁移至目标计算机设备上,每次迁移时,拷贝源虚拟机脏页数据到目标计算机设备上,避免虚拟机停机造成客户业务停摆;另外,VMM利用显存脏页来优化虚拟机显示性能,每次只更新显存中脏页数据到前端显示,提高显示效率等。
但是,目前基于硬件辅助的虚拟化技术仍然存在较多不足。
通用的脏页管理技术是利用页表项(Page Table Entry,PTE)中R/W位的设置来实现的,该R/W位用于设置对应的实际物理内存页的只读或可写属性。以嵌套页表技术举例来说,CPU的内存管理单元(MMU)通过嵌套页表完成虚拟机地址到实际物理地址的转换,其中页表最后一级的页表项指向实际物理内存页,例如图1中的页表项的数据结构所示。
图中以64bit长度的页表项为示例,在其它示例中也可以变化,例如32bit长度等。
其中,bit12~bit51的Physical-Page Base Address表示物理页基地址项;P即存在(Present)标志,指明表项对地址转换是否有效;R/W即只读/可写标志,0表示只读,1表示可写;U/S即普通用户/超级用户(User/Supervisor)标志;PWT(Page Write Through),当数据写入缓存Cache时,标志写入内存的时机;PCD(Page Cache Disable)即页缓存禁止标志,标志是否禁止当前页写入缓存而直接写入内存;A即已访问(Accessed)标志,当处理器访问页表项映射的页面时,页表表项的这个标志就会被置为1;D即脏(Dirty)页标志,表示页面已被修改;AVL(Available for OS Use)字段保留专供程序使用;PAT(PT AttritubeIndex)标志页属性;G即全局页面(Global)标志;NX表示是否不可执行的标志位。
PTE中R/W位用于设置虚拟机物理地址(Guest Physical Address,GPA)的实际物理内存页的只读/可写属性,当设置为只读时,若实际物理内存页写入数据时,会产生嵌套页表的缺页异常,退出虚拟机到主机的操作系统;出现缺页异常的缺页地址对应于脏页地址,将脏页地址标记到脏页位图(Dirty Page Bitmap)中,再把R/W位设置成相应的实际物理内存页可写,而无缺页异常。当之后一次虚拟机的脏页同步开始时,虚拟机监视器(VMM)读取所述脏页位图,并再将各PTE的R/W位设为只读,重新运行虚拟机以等待下一次脏页获取。
在此第一种脏页管理机制中,主机的操作系统内核需要维护庞大的嵌套页表,通过遍历嵌套页表把其中各页表项的R/W标志位设置只读(例如标志位为“0”)或可写(例如标志位为“1”),在虚拟机频繁退出且每次只能记录一个脏页地址的GPA,脏页记录效率低同时降低虚拟机性能。
Intel引入页修改日志(Page Modification Log,PML)技术来解决上述利用设置页表项R/W的脏页管理技术的缺陷。在PML技术的实施方案中,初始时VMM遍历页表,把虚拟机的各页表项的D标志位设置为0,如图1中的页表项的数据结构中的D标志位,为1时表示内存页面为有修改的脏页,为0时表示没有;PML索引(index)设置为512;进而如图2所示,当虚拟机在运行过程中发生数据写入GPA对应虚拟机物理内存页事件(步骤S201)时,在步骤S202中设置页表项的D标志位为1,接着进行步骤S203:检测D标志位是否为从0变成1;若是,则步骤204:把相应的GPA更新到PML缓存中,并且PML index减1;若否,则在步骤207中继续虚拟机运行;在步骤S204之后,进行步骤205即判断PML index是否到上限,即PML index是否小于512;若是,则进行步骤S207;若否,则表明PML缓存已满,则进行步骤S206退出虚拟机,由主机的操作系统从PML缓存同步各脏页地址相应的GPA,并通过页表把脏页地址相应的GPA对应页表项中D标志位清0,PML index重新置位512;重新运行虚拟机,进入下一轮脏页检测过程。
在第二种脏页管理机制中,相比第一种脏页管理机制有所改进,即在脏页记录页面存满时才退出虚拟机,从而无需避免频繁退出虚拟机。但是,该第二种脏页管理机制中,主机仍然需要维护庞大的页表,当向脏页记录页面同步脏页地址相应的GPA后,需要通过遍历页表来复位页表项中的D标志位,主机的操作系统开销依然很大。另外,PML技术对于内存隔离型安全虚拟机脏页管理存在致命弱点,内存隔离型安全虚拟机的嵌套页表由安全处理器管理这就意味着主机的操作系统更新页表项的D标志位需要向安全处理器发送请求,由安全处理器来进行设置,主机CPU与安全处理器之间的交互开销非常大,影响安全虚拟机性能。
可见,上述两种虚拟机脏页管理方式皆需要借助庞大的虚拟地址转换到实际物理地址RMAP表(例如嵌套页表),而影响运行效率。
因此,如何找到一种改进的脏页管理机制,以解决上述问题,已成为业界亟待解决的技术问题。
发明内容
有鉴于此,本申请实施例中提供虚拟机脏页处理方法、处理芯片、计算机设备及存储介质,解决现有技术中的问题。
本申请实施例提供了一种虚拟机脏页处理方法,包括:在脏页记录功能启动的情况下,当虚拟机向虚拟机物理内存页写入数据而令对应的虚拟机物理地址为脏页地址时,判别所述脏页地址是否已记录于脏页记录中;在未记录时,将所述虚拟机物理地址记录至所述脏页记录,并对应更新脏页记录计数;在所述脏页记录计数满足预设条件时,从虚拟机切换至主机模式以执行脏页同步。
可选的,所述虚拟机具有相关的脏页记录字段结构,所述脏页记录字段结构包含:用于使能所述脏页记录功能的标志位。
可选的,所述脏页记录字段结构还包括以下至少一种:脏页计数字段,用于存放所述脏页记录计数;脏页记录地址字段,用于存放脏页记录所在内存页的实际物理地址;脏页阈值字段,用于存放脏页阈值;所述预设条件包括:脏页记录计数达到所述存放脏页阈值。
可选的,所述脏页记录字段结构存储在虚拟机控制信息中。
可选的,所述虚拟机控制信息位于能被主机及虚拟机访问的共享内存中。
可选的,所判别所述脏页地址是否已记录于脏页记录中,包括:获取所述脏页地址、脏页记录计数及存放脏页记录所在内存页的实际物理地址;根据所述脏页地址在脏页记录中对应所述脏页记录计数的脏页地址集合中匹配相同地址。
可选的,由比较电路单元执行判别所述脏页地址是否已记录于脏页记录中。
可选的,所述比较电路单元具有多路输入接口,用于并行接收脏页地址、脏页记录计数及存放脏页记录所在内存页的实际物理地址。
可选的,所述比较电路单元集成或连接于中央处理器。
可选的,所述预设条件包括以下至少一种:脏页数量达到脏页阈值;脏页数量达到脏页记录上限。
可选的,所述脏页同步包括:将所述脏页记录中对应所述脏页记录计数的脏页地址同步到脏页位图中;清空所述脏页记录及所述脏页记录计数;恢复所述虚拟机运行。
可选的,所述虚拟机和主机由中央处理器控制,所述中央处理器连接有安全处理器;
所述安全处理器分配有与所述中央处理器隔离的安全内存,所述安全内存以外的非安全内存中包括能被主机及虚拟机访问的共享内存;所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表。
本申请实施例提供了一种处理芯片,包括:
中央处理器,运行有虚拟机;
其中,所述中央处理器用于运行可执行程序代码,以执行所述的虚拟机脏页处理方法。
可选的,所述处理芯片包括:安全处理器,与所述中央处理器连接;
所述安全处理器分配有与所述中央处理器隔离的安全内存,所述安全内存以外的非安全内存中包括能被主机及虚拟机访问的共享内存;所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表。
可选的,由比较电路单元执行判别所述脏页地址是否已记录于脏页记录中。
可选的,所述比较电路单元具有多路输入接口,用于并行接收脏页地址、脏页记录计数及存放脏页记录所在内存页的实际物理地址。
可选的,所述比较电路单元集成或连接于中央处理器。
本申请实施例提供了一种计算机设备,包括:所述的处理芯片;内存储器,与所述处理芯片连接。
本申请实施例提供了一种计算机可读存储介质,其上存储有可执行程序代码,所述可执行程序代码运行时执行所述的虚拟机脏页处理方法。
与现有技术相比,本申请实施例的技术方案具有以下有益效果:
一方面,通过设计与脏页地址记录计数相关的触发虚拟机和主机切换以执行各自流程的条件,替代原有需要对页表项的设计,兼顾避免过于频繁切换和省去对页表的读写,可见至少在此脏页管理过程所对应的例如虚拟机显示、在线迁移场景中,无需设置页表项中的标志位,故主机的操作系统无需维护庞大页表,节省内存资源,提升运行效率。
另一方面,可配合硬件的比较电路单元快速实现脏页地址是否已记录的判断而实现记录流程,处理速度快,亦提升运行效率。
再一方面,对于内存隔离型的安全虚拟机而言,主机的操作系统无需修改页表项,在脏页管理过程中可以减少与安全处理器的交互,减少开销,亦提升虚拟机的运行效率。
在虚拟机在线迁移时的迁移效率、虚拟机显示的场景中,良好的运行效率意味着更少的迁移造成的中断,显示的卡顿等,对应于更好的虚拟机性能,能有效提升用户体验。
附图说明
图1展示页表项的数据结构示意图。
图2展示PML机制的流程示意图。
图3展示本申请实施例中虚拟机脏页处理方法的流程示意图。
图4展示本申请实施例中脏页记录字段结构的示意图。
图5展示本申请又一实施例中虚拟机脏页处理方法的流程示意图。
图6展示本申请实施例中比较电路单元的功能示意图。
图7展示本申请一具体实施例中脏页记录的流程示意图。
图8展示本申请实施例中脏页同步的流程示意图。
图9展示本申请一种实施例中应用场景的示意图。
图10展示本申请又一种实施例中应用场景的示意图。
图11展示本申请实施例中处理芯片的结构示意图。
图12展示本申请实施例中计算机设备的结构示意图。
具体实施方式
在之前的示例中,介绍了两种现有的脏页管理机制的方案原理。这两种脏页管理机制中,都无可避免地需要页表项的设置,只不过设置的标志位不同,以及频率程度不同。
故可以理解的是,现有技术中的脏页管理机制的主要问题还是在于需要对应于虚拟机的各个GPA的庞大页表的支持。
鉴于此,本申请的发明思想在于提供无需依赖页表的脏页管理机制,以从根源上解决现有技术的问题。如果要实现这样的脏页管理机制,则需要对现有技术中的页表项R/W、D标志位进行设置的方式进行替代的情形下实现脏页记录和脏页同步过程,以下通过多个实施例及附图对本申请方案实现进行具体说明。
如图3所示,展示本申请实施例中虚拟机脏页处理方法的流程示意图。
在具体实施中,所述虚拟机脏页处理方法,包括:
步骤S301:在脏页记录功能启动的情况下,当虚拟机向虚拟机物理内存页写入数据而令对应的虚拟机物理地址为脏页地址时,判别所述脏页地址是否已记录于脏页记录中;
步骤S302:在未记录时,将所述虚拟机物理地址记录至所述脏页记录,并对应更新脏页记录计数;
步骤S303:在所述脏页记录计数满足预设条件时,从虚拟机切换至主机模式以执行脏页同步。
在一些示例中,为实现所述脏页记录功能启动或关闭的触发,可以预先设计一种脏页记录字段结构,该脏页记录字段结构中可以包含用于使能所述脏页记录功能的标志位,其取值可例如为0或1,当为1时表示使能脏页记录功能,为0时表示不使能脏页记录功能。
在可选实现方式中,所述脏页记录字段结构可以存储在虚拟机控制信息中。举例来说,在AMD的内存虚拟化技术中,所述虚拟机控制信息为虚拟机控制块(Virtual MachineControl Block,VMCB),其原用于存储描述需要截取的指令或事件的字段列表,例如2个16位的字段用于控制对CR类控制寄存器读写的截取(CR表示控制寄存器,即ControlRegister),2个16位的字段用于控制对DR类调试寄存器的读写的截取(DR表示数据寄存器,即Data Register),一个64位的字段用于控制各种引起系统状态变化的事件或指令的截取,指向IO端口访问VMCB涉及的控制位图和内存管理寄存器(Memory ManagementRegister,MSR)读写控制位图的物理地址指针字段,描述虚拟机CPU状态的信息,对虚拟机的执行进行控制的字段,指示虚拟机进入客户机模式后要执行的行动的字段等等。
在一些示例中,在内存隔离型安全虚拟机的场景中,所述VMCB信息并不存储在只由安全处理器管理的安全内存中,而是存储在虚拟机和主机都能访问的共享内存中,因此虚拟机监视器(Virtual Machine Monitor,VMM)、主机的操作系统都能读写该其中的信息,例如读、写所述脏页记录功能使能标志位,以实现脏页记录功能的启动或停止。
为直观方便描述,通过dirty_log_enable来表示该脏页记录功能使能标志位,当dirty_log_enable=1,使能本方法所述脏页记录功能;当dirty_log_enable=0,禁用脏页记录功能。
可通过该dirty_log_enable标志位来控制脏页功能。虚拟机一般正常运行时,并不需要脏页记录功能,故可以由VMM设置dirty_log_enable=0,这样虚拟机性能就不受影响。在例如虚拟机在线迁移(也称“热迁移”)等场景下,才需要启动脏页记录功能。
故在步骤S301之前,可以设置有判断dirty_log_enable的值的步骤,如果dirty_log_enable=1时,执行所述步骤S301;否则虚拟机正常运行。
可选的,所述脏页记录字段结构还可包括以下至少一种:脏页计数字段、脏页记录地址字段、脏页阈值字段。
所述脏页计数字段,用于存放所述脏页记录计数。在一些示例中,为直观方便描述,通过dirty_page_count来表示脏页计数字段,其具体用于保存脏页记录的内存页面中的脏页地址的GPA的数量;CPU每次记录一组脏页地址的GPA时,将dirty_page_count计数加1。
脏页记录地址字段,用于存放脏页记录所在内存页的实际物理地址。在一些示例中,为直观方便描述,通过dirty_log_page_pa来表示该脏页记录地址字段,所述dirty_log_page_pa可由VMM设置,所述脏页记录所在内存页可以有一页或多页物理内存页,其中每个物理内存页可以是4k大小,用于记录脏页地址相应的GPA。在64位系统中,GPA占8个字节,故4k物理内存页最多记录512组脏页GPA,故如果脏页记录只使用一页物理内存页,则上述脏页记录计数的最大值即为512。
可选的,GPA如果采用4k脏页记录页面,则假设使用一个物理内存页面来作为脏页记录,则其最多可记录512个GPA,即脏页记录上限为512,对应的上述dirty_page_count上限为512。
示例性地,所述预设条件可以是当dirty_page_count计数到最大值,会触发虚拟机退出并进入主机模式,以从脏页记录的物理内存页进行脏页同步,以获得其中的脏页地址相应的GPA。
所述脏页阈值字段,用于存放脏页阈值。在一些示例中,为直观方便地表达,通过dirty_page_threshold来表示所述脏页阈值字段。可选的,所述预设条件除了以dirty_page_count达到最大值的固定方式来实现,也可以通过dirty_page_count计数达到dirty_page_threshold的灵活方式来实现,利用设置dirty_page_threshold为所需的值,就可以控制脏页同步的周期。
在具体实施中,dirty_page_threshold可提供给VMM使用,利于控制引起虚拟机退出的脏页记录数量。当dirty_page_count计数达到dirty_page_threshold时,则退出虚拟机以执行脏页同步。可选的,dirty_page_threshold=0可表示该字段不可用,而可由脏页记录页面的脏页记录上限(例如512)决定脏页记录最大数目。
如图4所示,在一具体实例中,展示所述脏页记录字段结构的示意图。
在此示例中,脏页记录字段结构呈现为包含:用于使能所述脏页记录功能的标志位(显示为dirty_log_enable)、脏页计数字段(显示为dirty_page_count)、脏页记录地址字段(显示为dirty_log_page_pa)及脏页阈值字段(显示为dirty_page_threshold)的形式。
需说明的是,图4所示的脏页记录字段结构只是一种可选的示例,其构成字段、排布方式等皆可以根据实际需求而加以变化,如果该字段结构中的字段省去,则所存的数据可以另行存储,并非限制于必须存储在同一个字段结构中,例如,脏页阈值字段从图4的脏页记录字段结构中省去,其中的阈值在内存中另行存储等,另行存储所在的实际物理地址预知即可。
在上述示例中,所述预设条件可包括以下至少一种:脏页数量达到所述脏页阈值;脏页数量达到所述脏页记录上限,两种触发从脏页记录切换到脏页同步的条件可以单独使用或者一起使用以构成所述预设条件,在一起使用时,两种触发条件间为或的关系,即满足一种就执行从虚拟机切换至主机模式以执行脏页同步。
举例来说,如图5所示,展示本申请又一具体实施例中所述虚拟机脏页处理方法的流程示意图。
在此示例中,步骤S501与图3实施例中的步骤S301一致,步骤S502与图3实施例中的步骤S502一致,区别在于图3实施例中的步骤S303在图4实施例中具体变化为步骤S503至S504。由于脏页阈值是小于所述脏页记录上限的,因此关于脏页阈值的判断可位于关于脏页记录上限的判断之前。
如图所示,所述步骤S503:判断脏页数量达到所述脏页阈值;
若是,则满足预设条件,进入步骤S505:从虚拟机切换至主机模式以执行脏页同步;若否,需继续判断,进至S504;
步骤S504:判断脏页数量是否达到所述脏页记录上限;若是,则满足预设条件,进入步骤S505:从虚拟机切换至主机模式以执行脏页同步;若否,则不满足预设条件,执行步骤S506:虚拟机继续运行而不必退出。
为加快运算效率,在上述实施例中,所述判别所述脏页地址是否已记录于脏页记录中步骤可以由硬件电路实现,例如图6中的比较电路单元实现。
如图6所示,展示本申请实施例中比较电路单元的功能示意图。
在一些示例中,所述比较电路单元601可以是集成在中央处理器(CPU)中的硬件电路单元;也可以是与中央处理器(CPU)连接的硬件电路单元,所述连接可以为电性连接。在具体实施中,所述中央处理器可以控制所述虚拟机、主机的操作系统的运行。
在一些示例中,所述比较电路单元601可以通过逻辑电路实现。在数字电路中,所述逻辑电路即可为由逻辑门电路按所需逻辑功能搭建的电路,最基本的逻辑关系包括与、或、非,则对应的最基本的逻辑门是与门、或门和非门。在具体实施中,逻辑门可以用电阻、电容、二极管、三极管等分立原件构成,成为分立元件门,或者也可以将门电路的所有器件及连接导线制作在同一块半导体基片上,构成集成逻辑门电路。
在本申请实施例中,通过硬件电路形式的比较电路单元601,实现的逻辑功能是能够快速地将输入的当前脏页地址相应的GPA与脏页记录的内存页中已存的GPA数据进行比较,以判断当前脏页地址是否已记录在脏页记录中。
在具体实施中,所述比较电路单元601需要确定当前脏页地址所对应的脏页记录所在的位置,也要确定当前脏页地址在该脏页记录中需要比较的GPA的数量。
所述脏页记录所在的位置可以根据例如所述脏页记录地址字段中存储的实际物理地址来获知,而在该脏页记录中需要比较的GPA的数量可以由所述脏页记录计数来表示,也即是说,所述比较电路单元601要接收待比较的脏页地址相应的GPA、脏页记录的实际物理地址、及脏页记录计数,以比较得到当前脏页地址是否已记录在脏页记录中的比较结果。
故在一些示例中,所述比较电路单元601可以具有多路输入接口,用于在并行接收脏页地址、脏页记录计数及存放脏页记录所在内存页的实际物理地址。
所述比较电路单元601可以是周期性地工作的。在具体实施中,在每个比较周期,比较电路单元601并行地接收一个当前脏页地址、当前脏页记录计数及存放脏页记录所在内存页的实际物理地址,从而根据该实际物理地址找到脏页记录,并在脏页记录中对应所述当前脏页记录计数的数量的GPA数据中匹配脏页地址相应的GPA;如果能匹配到,则输出表示当前脏页地址已记录在脏页记录中的输出信号,例如表示为flag=1;如果不能匹配到,则输出表示当前脏页地址未记录在脏页记录中的输出信号,例如表示为flag=0。
中央处理器在获取到该flag信号后,若flag=1,表示脏页地址相应的GPA已记录,则继续虚拟机的正常运行而不退出;若flag=0,则表示脏页地址相应的GPA未记录,则将其记录到脏页记录中,并更新dirty_page_count计数加1;之后再进行如上述步骤S303或更具体的图5流程中的预设条件判断。
结合上述示例的原理,如图7所示,再提供本申请一个具体实施例中脏页记录的流程示意图。
该流程具体包括:
步骤S701:当虚拟机运行,向GPA对应的内存页写入数据;
步骤S702:VMM检查脏页记录字段结构中的dirty_log_enable为0或1;若为1,表示脏页记录功能开启,此情形下虚拟机写入GPA对应内存页会形成脏页而需要记录,继续步骤S703;若为0,进至步骤S708,继续虚拟机运行。
步骤S703:通过所述比较电路单元获取待比较的脏页地址相应的GPA、并读取脏页记录字段结构中的字段dirty_log_page_pa、dirty_page_count中的数据,以判断脏页地址相应的GPA在dirty_log_page_pa所在的脏页记录中,dirty_page_count对应数量的GPA数据中是否有匹配的GPA,即脏页地址是否已记录在脏页记录中;若是,则进至步骤S708;若否,则继续步骤S704;
步骤S704:将该脏页地址相应的GPA保存到脏页记录中,并对dirty_page_count的值加1;
步骤S705:判断dirty_page_count是否达到dirty_page_threshold中的脏页阈值;若否,则进入步骤S706;若是,则进入步骤S707;
步骤S706:判断dirty_page_count是否达到脏页记录的脏页记录上限;若否,则进入步骤S708,继续虚拟机运行,可等待下一次图7流程;若是,则进入步骤S707;
步骤S707:退出虚拟机。
进而,切换至主机模式即主机的操作系统下,进行脏页同步的流程。
如图8所示,展示本申请实施例中脏页同步的流程示意图。
在虚拟机退出后进入主机模式,即该流程在主机的操作系统下执行,具体包括:
步骤S801:将所述脏页记录中对应所述脏页记录计数的脏页地址同步到脏页位图中。
在一些示例中,所述脏页位图(dirty_page_bitmap)由主机的操作系统所维护,将脏页记录的内存页中的GPA数据同步到脏页位图中;可选的,所述同步可以是直接拷贝到脏页位图中,也可以是转化成其它形式的地址(例如对应实际物理地址的线性地址)而存储到脏页位图中。
可选的,可以参考所述dirty_page_count的计数数量,脏页记录中的GPA按地址顺序存储,则可将脏页记录中前对应数量个GPA存储到脏页位图中;当然,在其它示例中,也可以将脏页记录中所有的GPA存储到脏页位图中。
步骤S802:清空所述脏页记录及所述脏页记录计数。
在具体实施中,该步骤S802可具体为清空脏页记录中已同步的GPA数据,并设置dirty_page_count字段中的值为0。
此步骤是为了进行下一次的脏页记录流程(例如图5或图7实施例中所实现)作准备。
步骤S803:恢复所述虚拟机运行。
之后可以再次执行脏页记录的流程,例如图5或图7实施例中所实现。
在上述实施例中的脏页处理方法的流程中,如图5或图7实施例中的流程,还可结合例如图8实施例中的同步流程,可以实现仅有运行虚拟机的中央处理器而不包含安全处理器的应用场景中,也可以应用在包含相连接的中央处理器及安全处理器而实现内存隔离型安全处理器的应用场景中,以下结合图示进行说明。
如图9所示,展示本申请一实施例中应用场景的示意图。
主机90中的中央处理器(CPU)91运行虚拟机管理器92(Virtual MachineMonitor,VMM),在虚拟机管理器92的上层可运行有虚拟机93(VM),中央处理器91中的内存管理单元94(MMU)根据虚拟机物理地址95(GPA)遍历嵌套页表96以映射到内存储器97中实际物理内存页的实际物理地址。在此示例中,所述嵌套页表示例性地展示为对应64位X86架构CPU的操作系统(如Linux)中的四级页表结构,从上到下级分别是页全局目录(PageGlobal Directory,PGD)、页上层目录(PageUpper Directory,PUD)、页中间层目录(PageMiddleDirectory,PMD)、及页表项(PageTableEntry,PTE)等,其中,每个嵌套页表项PTE对应于内存中的内存页的实际物理地址。需说明的是,此嵌套页表结构仅为举例,在其它实施例中可以加以变化,例如Linux早期的二级、三级页表等,并非以图9示例为限。
在此示例中,中央处理器91运行有虚拟机93和主机的操作系统98,虚拟机93建立在虚拟机管理器92基础上;如图9中粗虚线箭头所示,虚拟机管理器92根据预先存储在虚拟机控制信息(如VMCB)中的脏页记录字段结构99,以实现在VM模式下执行上述实施例中的脏页记录流程,内存管理单元94根据脏页记录字段结构99中的dirty_log_page_pa寻址到脏页记录A,存入脏页地址相应GPA,例如将虚拟机物理地址95存入到A中,并更新脏页记录字段结构99中的dirty_page_count以及执行相关步骤等,具体可参考图5或图7实施例中实现;在退出虚拟机而切换到主机模式下后,由主机的操作系统98执行脏页同步流程,根据脏页记录字段结构99中的dirty_log_page_pa寻址到脏页记录A,将脏页记录A中的GPA数据同步到脏页位图B,并可清零脏页记录A、dirty_page_count以及执行相关步骤,具体可参考图8实施例中实现;从而通过在两种模式下切换并执行对应流程而实现脏页处理。
在此过程中,中央处理器91通过脏页记录功能使能时,利用脏页记录计数及相关的预设条件来触发两种流程的切换,从而替代之前示例中读/写所述嵌套页表中的页表项R/W或D标志位的触发方式,在此虚拟机脏页处理方法的流程中也就不需要访问嵌套页表,而且在脏页地址数量达到满足预设条件时才退出虚拟机,可见也不会有虚拟机太过于频繁退出的问题,良好解决现有技术的问题,提升运行效率。
在此原理下,还可以参阅图10所示,展示本申请又一实施例中应用场景的示意图。
在此应用场景中,在图9实施例的基础上,除了中央处理器101以外,其还连接有安全处理器102,以实现内存隔离型的虚拟机103。
具体的,所述安全处理器102分配有与所述中央处理器101隔离的安全内存105,所述安全内存105以外的非安全内存106中包括能被主机及虚拟机访问的共享内存;所述安全内存105中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表107。其中,安全内存105和非安全内存106皆可以实现为从内存储器中划分的区域。
由于嵌套页表107位于安全内存105中,而对中央处理器101隔离(例如不可见),则中央处理器101在需要访问嵌套页表107时需经过安全处理器102。
在此示例中,中央处理器101运行有虚拟机103和主机的操作系统108,虚拟机103建立在虚拟机管理器104基础上;如图10中粗虚线箭头所示,虚拟机管理器104根据预先存储在非安全内存106中虚拟机控制信息(如VMCB)中的脏页记录字段结构1011,以实现在VM模式下执行上述实施例中的脏页记录流程,中央处理器101(为更直观,不重复绘出MMU)根据脏页记录字段结构1011中的dirty_log_page_pa寻址到脏页记录C,存入脏页地址相应GPA,例如将虚拟机物理地址109存入到C中,并更新脏页记录字段结构1011中的dirty_page_count以及执行相关步骤等,具体可参考图5或图7实施例中实现;在退出虚拟机的运行而切换到主机模式下后,由主机的操作系统108执行脏页同步流程,根据脏页记录字段结构1011中的dirty_log_page_pa寻址到脏页记录C,将脏页记录C中的GPA数据同步到脏页位图D,并可清零脏页记录C、dirty_page_count以及执行相关步骤,具体可参考图8实施例中实现;从而通过在两种模式下切换并执行对应流程而实现脏页处理。
可见,在此虚拟机脏页处理方法的流程中,由于中央处理器101不需要访问嵌套页表107,也就能减少与安全处理器102的交互,节省了开销,进一步提升虚拟机的运行效率。
如图11所示,展示本申请实施例中的处理芯片的结构示意图。
在具体实施中,所述处理芯片110包括:中央处理器111,运行有虚拟机。
其中,所述中央处理器111可以运行可执行程序代码实现上述实施例中的虚拟机脏页处理方法。
所述虚拟机脏页处理方法的具体实现,可以参考上述例如图5或图7实施例中方法的实现,例如图5或图7实施例所示,并可结合图8实施例中的同步流程。
可选的,所述虚拟机具有相关的脏页记录字段结构,所述脏页记录字段结构包含:用于使能所述脏页记录功能的标志位。
可选的,所述脏页记录字段结构还包括以下至少一种:脏页计数字段,用于存放所述脏页记录计数;脏页记录地址字段,用于存放脏页记录所在内存页的实际物理地址;脏页阈值字段,用于存放脏页阈值;所述预设条件包括:脏页记录计数达到所述存放脏页阈值。
可选的,所述脏页记录字段结构存储在虚拟机控制信息中。
可选的,所述虚拟机控制信息位于能被主机及虚拟机访问的共享内存中。
可选的,所述判别所述脏页地址是否已记录于脏页记录中,包括:获取所述脏页地址、脏页记录计数及存放脏页记录所在内存页的实际物理地址;根据所述脏页地址在脏页记录中对应所述脏页记录计数的脏页地址集合中匹配相同地址。
可选的,由比较电路单元112执行判别所述脏页地址是否已记录于脏页记录中。进一步可选的,所述比较电路单元112集成或连接于所述中央处理器111中;在图11的示例中,所述比较电路单元112集成于所述中央处理器111中。
可选的,所述比较电路单元112具有多路输入接口,用于并行接收脏页地址、脏页记录计数及存放脏页记录所在内存页的实际物理地址。
可选的,所述预设条件包括以下至少一种:脏页数量达到脏页阈值;脏页数量达到脏页记录上限。
可选的,所述脏页同步包括:将所述脏页记录中对应所述脏页记录计数的脏页地址同步到脏页位图中;清空所述脏页记录及所述脏页记录计数;恢复所述虚拟机运行。
可选的,所述处理芯片110包括:安全处理器113,与所述中央处理器111连接,即如图11中所示意,所述安全处理器113可与中央处理器111集成在一块芯片中;当然,在其它示例中,也可以分别位于不同芯片,皆可根据实际需求而设置。
在具体实施中,所述安全处理器113分配有与所述中央处理器111隔离的安全内存,所述安全内存以外的非安全内存中包括能被主机及虚拟机访问的共享内存;所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表。
在一些示例中,中央处理器111可以实现为32位或64位X86架构的处理器;可选的,在处理芯片110中集成有安全处理器113的情况下,中央处理器111和安全处理器113可采用相同架构的处理器,例如均可采用例如32位或64位X86架构的处理器;或者,也可采用不同架构,例如中央处理器111采用32位或64位X86架构的处理器,而安全处理器113可采用ARM架构的处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、或现场可编程门阵列(Field Programmable Gate Array,FPGA)等。
在一些示例中,所述处理芯片110可以是封装而成的片上系统(System On Chip,SoC)芯片,以将所述中央处理器111和安全处理器113封装于其中;此外,还可以根据需求集成例如存储器、接口控制模块等。
可以参考图9、图10实施例可知,所述处理芯片110可通过运行本申请实施例中的虚拟机脏页处理方法,例如图5或图7实施例的方法,也可结合图8实施例中的脏页同步流程;相比于现有技术,本申请实施例中的处理芯片110具有更好的虚拟机运行效率。
如图12所示,展示本申请实施例中提供的计算机设备的架构图。
所述计算机设备120,包括:处理芯片121;内存储器122,与所述处理芯片连接。当然,在其它示例中,所述计算机设备也可以包含分别位于不同芯片的中央处理器和安全处理器,并非以图12示例为限。
在一些示例中,所述计算机设备120还可包括通信器123,与所述处理芯片121连接。
在一些示例中,所述处理芯片121可由例如图11中的处理芯片110实现;所述内存储器122可以是随机存取存储器(Random Access Memory,RAM)实现;所述通信器123可以包括有线通信电路模块或无线通信电路模块,例如有线网卡、无线网卡、及2G/3G/4G/5G模块等中的一种或多种,而能与外部进行信息交互,所述信息交互例如为网络交互,例如局域网或广域网,广域网包括例如互联网等。
在一些示例中,所述计算机设备120可以实现为服务器、台式机、笔记本电脑等。其中,若所述计算机设备120实现为服务器时,其可向网络连接的用户端一侧提供服务。例如,所述服务器可为不同用户分别提供基于硬件辅助实现的虚拟机的云计算服务,当处于虚拟机在线迁移时的迁移效率、显示等需要脏页处理的场景时,可以应用本申请前述实施例中的虚拟机脏页处理方法,以提升云计算服务中虚拟机在线迁移时的迁移效率、显示时的显示行效率,提升用户体验。
本申请实施例还可提供一种计算机可读存储介质,其上存储有可执行程序代码,所述可执行程序代码运行时执行上述实施例中的方法流程中的步骤,例如图5、图7、图8实施例中的步骤。
本申请实施例中还可提供计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序运行时执行前述实施例(例如图5、图7、图8实施例)的步骤。
即,本申请实施例(例如图5、图7、图8实施例)中的方法流程可被实现为可存储在记录介质(诸如CDROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的页表管理方法、脏页信息获取方法。此外,当通用计算机访问用于实现在此示出方法的代码时,代码的执行将通用计算机转换为用于执行在此示出方法的专用计算机。
与现有技术相比,本申请实施例的技术方案具有以下有益效果:
一方面,通过设计与脏页地址记录计数相关的触发虚拟机和主机切换以执行各自流程的条件,替代原有需要对页表项的设计,兼顾避免过于频繁切换和省去对页表的读写,可见至少在此脏页管理过程所对应的例如虚拟机显示、在线迁移场景中,无需设置页表项中的标志位,故主机的操作系统无需维护庞大页表,节省内存资源,提升运行效率。
另一方面,可配合硬件的比较电路单元快速实现脏页地址是否已记录的判断而实现记录流程,处理速度快,亦提升运行效率。
再一方面,对于内存隔离型的安全虚拟机而言,主机的操作系统无需修改页表项,在脏页管理过程中可以减少与安全处理器的交互,减少开销,亦提升虚拟机的运行效率。
在虚拟机在线迁移时的迁移效率、虚拟机显示的场景中,良好的运行效率意味着更少的迁移造成的中断,显示的卡顿等,对应于更好的虚拟机性能,能有效提升用户体验。
在本申请的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本申请中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
另外,前述实施例(例如例如图5、图7、图8实施例)中的流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行程序代码的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
虽然本申请实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本申请实施例的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (18)
1.一种虚拟机脏页处理方法,其特征在于,包括:
在脏页记录功能启动的情况下,当虚拟机向虚拟机物理内存页写入数据而令对应的虚拟机物理地址为脏页地址时,判别所述脏页地址是否已记录于脏页记录中;
在未记录时,将所述虚拟机物理地址记录至所述脏页记录,并对应更新脏页记录计数;
在所述脏页记录计数满足预设条件时,从虚拟机切换至主机模式以执行脏页同步。
2.根据权利要求1所述虚拟机脏页处理方法,其特征在于,所述虚拟机具有相关的脏页记录字段结构,所述脏页记录字段结构包含:用于使能所述脏页记录功能的标志位。
3.根据权利要求2所述虚拟机脏页处理方法,其特征在于,所述脏页记录字段结构还包括以下至少一种:
脏页计数字段,用于存放所述脏页记录计数;
脏页记录地址字段,用于存放脏页记录所在内存页的实际物理地址;
脏页阈值字段,用于存放脏页阈值;所述预设条件包括:脏页记录计数达到所述存放脏页阈值。
4.根据权利要求2所述虚拟机脏页处理方法,其特征在于,所述脏页记录字段结构存储在虚拟机控制信息中。
5.根据权利要求4所述虚拟机脏页处理方法,其特征在于,所述虚拟机控制信息位于能被主机及虚拟机访问的共享内存中。
6.根据权利要求3所述虚拟机脏页处理方法,其特征在于,所判别所述脏页地址是否已记录于脏页记录中,包括:
获取所述脏页地址、脏页记录计数及存放脏页记录所在内存页的实际物理地址;
根据所述脏页地址在脏页记录中对应所述脏页记录计数的脏页地址集合中匹配相同地址。
7.根据权利要求1或6所述虚拟机脏页处理方法,其特征在于,由比较电路单元执行判别所述脏页地址是否已记录于脏页记录中。
8.根据权利要求7所述虚拟机脏页处理方法,其特征在于,所述比较电路单元具有多路输入接口,用于并行接收脏页地址、脏页记录计数及存放脏页记录所在内存页的实际物理地址。
9.根据权利要求7所述虚拟机脏页处理方法,其特征在于,所述比较电路单元集成或连接于中央处理器。
10.根据权利要求1所述虚拟机脏页处理方法,其特征在于,所述预设条件包括以下至少一种:脏页数量达到脏页阈值;脏页数量达到脏页记录上限。
11.根据权利要求1所述虚拟机脏页处理方法,其特征在于,所述脏页同步包括:
将所述脏页记录中对应所述脏页记录计数的脏页地址同步到脏页位图中;
清空所述脏页记录及所述脏页记录计数;
恢复所述虚拟机运行。
12.根据权利要求1所述虚拟机脏页处理方法,其特征在于,所述虚拟机和主机由中央处理器控制,所述中央处理器连接有安全处理器;
所述安全处理器分配有与所述中央处理器隔离的安全内存,所述安全内存以外的非安全内存中包括能被主机及虚拟机访问的共享内存;所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表。
13.一种处理芯片,其特征在于,包括:
中央处理器,运行有虚拟机;
其中,所述中央处理器用于运行可执行程序代码,以执行如权利要求1至12中任一项所述的虚拟机脏页处理方法。
14.根据权利要求13所述处理芯片,其特征在于,由比较电路单元执行判别所述脏页地址是否已记录于脏页记录中。
15.根据权利要求14所述处理芯片,其特征在于,所述比较电路单元具有多路输入接口,用于并行接收脏页地址、脏页记录计数及存放脏页记录所在内存页的实际物理地址。
16.根据权利要求14所述处理芯片,其特征在于,所述比较电路单元集成或连接于中央处理器。
17.一种计算机设备,其特征在于,包括:
如权利要求13至16中任一项所述的处理芯片;
内存储器,与所述处理芯片连接。
18.一种计算机可读存储介质,其上存储有可执行程序代码,其特征在于,所述可执行程序代码运行时执行权利要求1至12中任一项所述的虚拟机脏页处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011129770.8A CN112241305B (zh) | 2020-10-21 | 2020-10-21 | 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011129770.8A CN112241305B (zh) | 2020-10-21 | 2020-10-21 | 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112241305A true CN112241305A (zh) | 2021-01-19 |
CN112241305B CN112241305B (zh) | 2023-01-31 |
Family
ID=74169434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011129770.8A Active CN112241305B (zh) | 2020-10-21 | 2020-10-21 | 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112241305B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342473A (zh) * | 2021-06-28 | 2021-09-03 | 海光信息技术股份有限公司 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760218A (zh) * | 2016-01-05 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种虚拟机在线迁移方法及装置 |
US20180032443A1 (en) * | 2016-07-29 | 2018-02-01 | Advanced Micro Devices, Inc. | Controlling Access to Pages in a Memory in a Computing Device |
CN110096332A (zh) * | 2018-01-31 | 2019-08-06 | 中国科学院计算技术研究所 | 一种面向基站任务的迁移方法和系统 |
CN111124599A (zh) * | 2019-11-08 | 2020-05-08 | 海光信息技术有限公司 | 虚拟机内存数据迁移方法、装置、电子设备及存储介质 |
CN111158853A (zh) * | 2019-12-13 | 2020-05-15 | 海光信息技术有限公司 | 虚拟机内存数据迁移方法、cpu芯片及服务器 |
CN111381933A (zh) * | 2020-03-07 | 2020-07-07 | 北京工业大学 | 一种Docker热迁移实现方法 |
-
2020
- 2020-10-21 CN CN202011129770.8A patent/CN112241305B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760218A (zh) * | 2016-01-05 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种虚拟机在线迁移方法及装置 |
US20180032443A1 (en) * | 2016-07-29 | 2018-02-01 | Advanced Micro Devices, Inc. | Controlling Access to Pages in a Memory in a Computing Device |
CN110096332A (zh) * | 2018-01-31 | 2019-08-06 | 中国科学院计算技术研究所 | 一种面向基站任务的迁移方法和系统 |
CN111124599A (zh) * | 2019-11-08 | 2020-05-08 | 海光信息技术有限公司 | 虚拟机内存数据迁移方法、装置、电子设备及存储介质 |
CN111158853A (zh) * | 2019-12-13 | 2020-05-15 | 海光信息技术有限公司 | 虚拟机内存数据迁移方法、cpu芯片及服务器 |
CN111381933A (zh) * | 2020-03-07 | 2020-07-07 | 北京工业大学 | 一种Docker热迁移实现方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342473A (zh) * | 2021-06-28 | 2021-09-03 | 海光信息技术股份有限公司 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
CN113342473B (zh) * | 2021-06-28 | 2024-01-19 | 海光信息技术股份有限公司 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
Also Published As
Publication number | Publication date |
---|---|
CN112241305B (zh) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10289555B1 (en) | Memory read-ahead using learned memory access patterns | |
US10761957B2 (en) | Optimization of operating system and virtual machine monitor memory management | |
US8261267B2 (en) | Virtual machine monitor having mapping data generator for mapping virtual page of the virtual memory to a physical memory | |
CN110597451B (zh) | 一种虚拟化缓存的实现方法及物理机 | |
US6789156B1 (en) | Content-based, transparent sharing of memory units | |
US9612966B2 (en) | Systems, methods and apparatus for a virtual machine cache | |
US7734893B2 (en) | Method for speeding up page table address update on virtual machine | |
US5899994A (en) | Flexible translation storage buffers for virtual address translation | |
US8046521B2 (en) | Computer virtualization apparatus and program and method therefor | |
US8943296B2 (en) | Virtual address mapping using rule based aliasing to achieve fine grained page translation | |
US9081692B2 (en) | Information processing apparatus and method thereof | |
CN110196757B (zh) | 虚拟机的tlb填写方法、装置及存储介质 | |
US10459852B1 (en) | Memory utilization analysis for memory management systems | |
US11809888B2 (en) | Virtual machine memory migration facilitated by persistent memory devices | |
Skarlatos et al. | Babelfish: Fusing address translations for containers | |
Caldwell et al. | Fluidmem: Full, flexible, and fast memory disaggregation for the cloud | |
US9081788B2 (en) | Customizable file-type aware cache mechanism | |
Wang et al. | Introspection-based memory pruning for live VM migration | |
US11074189B2 (en) | FlatFlash system for byte granularity accessibility of memory in a unified memory-storage hierarchy | |
CN112241305B (zh) | 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 | |
US20170277632A1 (en) | Virtual computer system control method and virtual computer system | |
CN112596913B (zh) | 提高内存透明大页性能的方法、装置及用户设备、存储介质 | |
Garg et al. | Catalyst: Gpu-assisted rapid memory deduplication in virtualization environments | |
WO2023155694A1 (zh) | 内存换页方法、系统及存储介质 | |
US11403213B2 (en) | Reducing fragmentation of computer memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |