CN117389685B - 虚拟机热迁移标脏方法及其装置、后端设备、芯片 - Google Patents

虚拟机热迁移标脏方法及其装置、后端设备、芯片 Download PDF

Info

Publication number
CN117389685B
CN117389685B CN202311358093.0A CN202311358093A CN117389685B CN 117389685 B CN117389685 B CN 117389685B CN 202311358093 A CN202311358093 A CN 202311358093A CN 117389685 B CN117389685 B CN 117389685B
Authority
CN
China
Prior art keywords
dirty page
write request
request
current
dirty
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.)
Active
Application number
CN202311358093.0A
Other languages
English (en)
Other versions
CN117389685A (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.)
Beijing Yunbao Chuangxin Intelligent Technology Co ltd
Original Assignee
Beijing Yunbao Chuangxin Intelligent Technology 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 Beijing Yunbao Chuangxin Intelligent Technology Co ltd filed Critical Beijing Yunbao Chuangxin Intelligent Technology Co ltd
Priority to CN202311358093.0A priority Critical patent/CN117389685B/zh
Publication of CN117389685A publication Critical patent/CN117389685A/zh
Application granted granted Critical
Publication of CN117389685B publication Critical patent/CN117389685B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请涉及虚拟机热迁移标脏方法及其装置、后端设备、芯片,包括:接收目标虚拟功能设备的当前DMA写请求;根据当前DMA写请求确定是否生成当前脏页写请求,若是,则生成对应的当前脏页写请求;若未存储目标虚拟功能设备的在先脏页写请求,则存储当前脏页写请求;若已存储有目标虚拟功能设备的在先脏页写请求,则根据当前脏页写请求的写地址和在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将在先脏页写请求输出至后级模块,并存储当前脏页写请求。本申请能够减少虚拟机热迁移标脏过程的PCIe写操作。

Description

虚拟机热迁移标脏方法及其装置、后端设备、芯片
技术领域
本申请涉及热迁移技术领域,具体涉及一种虚拟机热迁移标脏方法及其装置、VIRTIO后端设备、芯片、电子设备、计算机可读存储介质。
背景技术
虚拟机的热迁移是一种将运行中的虚拟机从一个物理主机迁移到另一个物理主机的技术,其目的是在不中断虚拟机的运行的情况下,实现资源的动态调整和负载均衡。在热迁移中,将迁移前运行的虚拟机称作源端虚拟机,将迁移后运行的虚拟机称作目的端虚拟机,迁移的过程就是将源端虚拟机的内存内容拷贝到目的端虚拟机。由于是“热”迁移,也就是迁移过程中,源端虚拟机不停机,因此会存在这样一个情况:刚把源端虚拟机的一段内存拷贝到目的端虚拟机,源端虚拟机又改写了这段内存,例如对于VIRTIO-net设备收到网络数据包。在这种情况下,需要记录这段内存,并把这段内存拷贝到目的端虚拟机,而这段内存被称为“脏”内存,记录这段内存的动作称作标脏;标脏时,以页为单位对内存进行标脏记录,记录的页被称为脏页。
VIRTIO是一种虚拟化技术,它提供了一种标准的接口,用于在虚拟机和宿主机之间进行高效的设备通信,VIRTIO定义了一组通用的设备接口规范,包括设备的寄存器、命令和数据传输等。VIRTIO设备则是符合VIRTIO规范的具体设备实现,它可以是网络设备(VIRTIO-net)、磁盘设备(VIRTIO-blk)、图形设备(VIRTIO-gpu)等,通过实现VIRTIO规范中定义的接口,与虚拟机中的驱动程序进行通信。基于VIRTIO设备实现的虚拟机的热迁移流程主要包括以下阶段1~3;
在阶段1,执行如下步骤:
步骤1,开启源端虚拟机的脏页记录功能;
步骤2,将所有源端虚拟机内存标脏,并拷贝到目的端虚拟机;
在阶段2,执行如下步骤:
步骤3,源端虚拟机VIRTIO设备根据实际情况反复将内存标脏;
步骤4,控制台软件反复将源端虚拟机的标脏内存拷贝到目的端虚拟机,同时清除脏页标志;
重复步骤3、4;
源端虚拟机的脏页数量经过上述阶段2后逐渐收敛,最后一次将所有剩余标脏内存拷贝到目的端虚拟机;
在阶段3,执行如下步骤:
步骤5,停止源端虚拟机;
步骤6,启动目的端虚拟机。
上述阶段2的步骤3、4内存标脏是一个重复的工作,需要频繁执行,因此需要频繁进行PCIe写操作,导致性能较差。
发明内容
本申请的目的在于提出一种虚拟机热迁移标脏方法及其装置、计算机可读存储介质、电子设备,以减少虚拟机热迁移标脏过程的PCIe写操作。
为实现上述目的,根据本申请的第一方面,提供一种虚拟机热迁移标脏装置,所述装置包括:
输入模块,用于接收目标虚拟功能设备的当前DMA写请求,并将所述当前DMA写请求输出至脏页记录模块;
脏页记录模块,用于根据所述当前DMA写请求确定是否生成当前脏页写请求,若是,则将生成的当前脏页写请求输出至脏页合并模块;
脏页合并模块,用于若未存储所述目标虚拟功能设备的在先脏页写请求,则存储所述当前脏页写请求;若已存储有所述目标虚拟功能设备的在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求。
根据本申请的第二方面,提供一种虚拟机热迁移标脏方法,所述方法包括:
接收目标虚拟功能设备的当前DMA写请求;
根据所述当前DMA写请求确定是否生成当前脏页写请求,若是,则生成对应的当前脏页写请求;
若未存储所述目标虚拟功能设备的在先脏页写请求,则存储所述当前脏页写请求;若已存储有所述目标虚拟功能设备的在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求。
根据本申请的第三方面,提供一种VIRTIO后端设备,包括上述的虚拟机热迁移标脏装置。
根据本申请的第四方面,提供一种芯片,包括上述的虚拟机热迁移标脏装置。
根据本申请的第五方面,提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的虚拟机热迁移标脏方法。
根据本申请的第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述的虚拟机热迁移标脏方法。
本申请提供的虚拟机热迁移标脏方法及其装置、VIRTIO后端设备、芯片、电子设备、计算机可读存储介质,具有以下有益效果:
能够根据不同脏页写请求的写地址进行判断,实现将多个脏页写请求合并为一个脏页写请求,可以减少PCIe写操作的次数;通过减少PCIe写操作的次数,可以降低数据传输和存储的需求,减少了***的资源消耗。同时,PCIe总线的带宽是有限的,减少PCIe写操作的次数也可以提高数据传输的效率,减少传输延迟。综上,本申请在减少数据传输和存储需求、降低***资源消耗、提高处理效率等方面都具有优势,能够提高虚拟机热迁移标脏的性能。
本申请的其它特征和优点将在随后的说明书中阐述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的一个实施例中的一种虚拟机热迁移标脏装置的结构图。
图2为本申请的另一个实施例中的一种虚拟机热迁移标脏装置的结构图。
图3为本申请的又一个实施例中的一种虚拟机热迁移标脏装置的结构图。
图4为本申请的一个实施例中的一种虚拟机热迁移标脏方法的流程图。
具体实施方式
附图的详细说明意在作为本申请的当前优选实施例的说明,而非意在代表本申请能够得以实现的仅有形式。应理解的是,相同或等同的功能可以由意在包含于本申请的精神和范围之内的不同实施例完成。
本申请的一个实施例提供一种虚拟机热迁移标脏装置,参阅图1,本实施例的装置包括输入模块、脏页记录模块、脏页合并模块和DMA写请求通路;
所述输入模块,用于接收目标虚拟功能设备的当前DMA写请求,并将所述当前DMA写请求输出至脏页记录模块;具体而言,一个虚拟机包括多个虚拟功能设备(VirtualFunction Device),例如是它可以是网络设备(VIRTIO-net)、磁盘设备(VIRTIO-blk)等,所述目标虚拟功能设备为所述多个虚拟功能设备之一,为了便于联系上下文,本文采用目标虚拟功能设备进行描述;虚拟功能设备的DMA写请求是指虚拟机中的虚拟功能设备向主机物理内存进行写操作的请求,而该写操作的请求由DMA处理模块来实现,DMA(DirectMemory Access,直接内存访问)是一种数据传输方式,它允许设备直接访问主机内存,而不需要CPU的干预。
所述脏页记录模块,用于根据所述当前DMA写请求确定是否生成当前脏页写请求,若是,则将生成的当前脏页写请求输出至脏页合并模块;具体而言,所述当前DMA写请求包括目标虚拟功能设备的id(VFid)、写地址和写长度,根据所述VFid可以确定对应的目标虚拟机,然后判断目标虚拟机是否处于热迁移过程,只有在虚拟机热迁移过程中才需要进行标脏;进一步地,根据所述当前DMA写请求可以确定对应的写地址,只有写地址落入对应的内存地址范围时,才需要进行标脏;基于以上两点,根据所述当前DMA写请求可以确定是否需要生成当前脏页写请求。
所述脏页合并模块,用于若未存储所述目标虚拟功能设备的在先脏页写请求,则存储所述当前脏页写请求;若已存储有所述目标虚拟功能设备的在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求;具体而言,可以设置一个存储单元,用于存储所述目标虚拟功能设备的脏页写请求,如果获得了当前脏页写请求,且该一个存储单元已存储有所述目标虚拟功能设备的在先脏页写请求,则可以根据两者的写地址确定是否可以进行脏页写请求的合并,如果不能合并,则需要先将在先脏页写请求输出至后级模块,然后将当前脏页写请求存入该存储单元等待后续的合并或输出;如果该一个存储单元没有存储所述目标虚拟功能设备的在先脏页写请求,则直接将当前脏页写请求存入该存储单元等待后续的合并或输出。因此,在本实施例中,当得到一个脏页写请求时,不会直接输出,而是会判断是否可以合并。
具体而言,所述后级模块通常是PCIe控制器,最终所述当前DMA写请求和所述脏页写请求都需要发给DMA处理模块进行处理,DMA处理模块是计算机***中的一个重要组件,用于实现高速数据传输,当处理器需要将数据从外设写入内存时,可以通过DMA处理模块来处理写请求;所述DMA处理模块处理所述脏页写请求时,会将预设的脏页标志数据写入对应的内存地址,来确定哪一些内存是“脏”内存。
综上,本实施例方法能够根据不同脏页写请求的写地址进行判断,实现将多个脏页写请求合并为一个脏页写请求,可以减少PCIe写操作的次数;通过减少PCIe写操作的次数,可以降低数据传输和存储的需求,减少了***的资源消耗。同时,PCIe总线的带宽是有限的,减少PCIe写操作的次数也可以提高数据传输的效率,减少传输延迟。综上,本申请在减少数据传输和存储需求、降低***资源消耗、提高处理效率等方面都具有优势,能够提高虚拟机热迁移标脏的性能。
在一些实施例中,所述脏页记录模块包括标脏逻辑单元、映射表和配置表;
所述映射表用于存储所述目标虚拟功能设备的热迁移标识,所述热迁移标识表示所述目标虚拟功能设备所在的虚拟机是否在进行热迁移;具体而言,所述热迁移标识可以设置为,当热迁移标识为1时,表示所述目标虚拟功能设备所在的虚拟机在进行热迁移,当热迁移标识为0时,表示所述目标虚拟功能设备所在的虚拟机不在进行热迁移;因此,可以根据所述VFid查询所述映射表得到对应的热迁移标识,进而确定所述目标虚拟功能设备所在的虚拟机是否在进行热迁移。
所述配置表用于存储所述目标虚拟功能设备所在的虚拟机的预设内存地址范围和预设内存地址;具体而言,只有当所述当前DMA写请求的写地址落入所述预设内存地址范围时,才认定是需要进行标脏,所述预设内存地址指的是用于写入脏页标志数据的起始地址;
所述标脏逻辑单元用于根据所述映射表确定所述目标虚拟功能设备所在的虚拟机是否在进行热迁移,若是,则根据所述当前DMA写请求的写地址和所述预设内存地址范围确定是否生成当前脏页写请求,若是,则根据所述预设内存地址和所述当前DMA写请求的写地址生成当前脏页写请求。
具体而言,假设所述预设内存地址为地址a,则以地址a为起始地址划分一个内存空间用于标脏,假设这个内存空间包括n个地址单元,则可以确定所述当前DMA写请求的写地址所对应的一个地址单元,然后将这个地址单元进行标记,每个地址单元可以是对应一个写地址范围。
在一些实施例中,所述映射表包括与多个虚拟功能设备一一对应的映射单元,每个映射单元用于存储与其对应的一个虚拟功能设备的热迁移标识和idx信息(index 信息),所述热迁移标识表示虚拟功能设备所在的虚拟机是否在进行热迁移;具体而言,每个映射单元在所述映射表中的地址或索引为与其对应的虚拟功能设备的VFid,因此,根据VFid可以找到对应的映射单元,进一步地读取出对应的热迁移标识和idx信息。
所述配置表包括多个配置单元,每个配置单元用于存储一个虚拟机的预设内存地址范围以及预设内存地址。
所述逻辑单元用于根据所述映射表获取与所述目标虚拟功能设备对应的热迁移标识和idx信息,并根据该热迁移标识确定所述目标虚拟功能设备所在的虚拟机是否在进行热迁移,若是,则获取与该idx信息对应的一个配置单元所存储的预设内存地址范围和预设内存地址,根据所述当前DMA写请求的写地址和该预设内存地址范围确定是否生成当前脏页写请求,若是,则根据该预设内存地址以及所述当前DMA写请求的写地址生成当前脏页写请求。
具体而言,若所述目标虚拟功能设备对应的热迁移标识表示所述目标虚拟功能设备所在的虚拟机在进行热迁移,则其对应的idx信息为一个配置单元的索引或表格地址,根据该idx信息可以找到对应的一个配置单元,并从中读取对应的预设内存地址范围和预设内存地址。
在一些实施例中,每个配置单元具体用于存储一个虚拟机的多段预设内存地址范围以及一个预设内存地址。
具体而言,考虑到虚拟机热迁移时,不是虚拟机的整个内存都会被改写,而且,存在某些内存即使被改写也不需要迁移到目的端虚拟机的情况,因此,可以将需要标脏的内存范围进一步细化,基于此,本实施例方法将需要比较的虚拟机内存地址进行了分段得到多段预设内存地址范围,在进行地址比较时,DMA写请求的写地址只与这些分段地址进行比较,若落入任意一段预设内存地址范围,则生成脏页写请求,若没有落入任意一段预设内存地址范围,则不生成脏页写请求,这样带来的好处是,脏页记录的记录空间变小,进而搜索记录的范围也变小了,减轻了计算资源负担。
在一些实施例中,所述配置单元的数量小于所述映射单元的数量。
具体而言,在一个支持虚拟化功能的***中,可能存在几百到上千个虚拟功能设备,这些虚拟功能设备会被绑定到不同的虚拟机中去。一个***中,同时并发进行热迁移的虚拟机数目是有限的(几十个的量级),不可能所有虚拟功能设备同时进行热迁移,因此,本实施例方法设置了映射表和配置表,映射表的深度比较大(上千个),为虚拟功能设备数目(所有虚拟功能设备在映射表中都有一个位置,以VFid作为索引),配置表的深度比较小(几十个),代表同时热迁移的数目。
在本实施例中,当一个虚拟机需要热迁移时,管理软件首先从配置表中选择一个未被使用的配置单元,将对应的预设内存地址范围以及一个预设内存地址写入该配置单元,然后,管理软件将刚刚选择的该配置单元的索引(VFid)写入当前虚拟机所对应的VFid索引的映射单元中作为其idx信息。
在一些实施例中,所述当前脏页写请求包括所述目标虚拟功能设备的设备编号、写地址和写长度。
具体而言,传统脏页标记一般是以4KB页面为粒度进行标脏的,在本实施例中,不局限于是以4KB页面为粒度进行标脏;可以是4KB、8KB、16KB、32KB等粒度,以32KB为例,本实施例方法可以对相邻或重复的32KB内存地址空间的脏页写请求进行合并。
需说明的是,本实施例方法中引入脏页合并的原因主要是考虑到如下情况:程序运行通常具有空间局部性,虚拟机中一个内存地址被更新,与它相邻的内存地址通常也会被更新,如果每更新一次内存地址就发一笔脏页记录是有点浪费的,可以将多笔相同或地址临近的DMA写请求导致的脏页写请求合并成一笔脏页写请求,减少脏页写请求的次数,降低PCIe写带宽的浪费,因此,本实施例方法在将重复的2个单位粒度的内存地址空间的标脏操作(脏页写请求)进行合并时,合并后的写长度为1个单位长度,在将相邻的2个单位粒度的内存地址空间的标脏操作(脏页写请求)进行合并时,合并后的写长度为2个单位长度。
在一些实施例中,所述脏页合并模块包括合并逻辑单元以及多个脏页存储单元;
每个脏页存储单元用于存储一个虚拟功能设备的脏页写请求;
所述合并逻辑单元用于若与所述目标虚拟功能设备对应的脏页存储单元未存储在先脏页写请求,则存储所述当前脏页写请求;若与所述目标虚拟功能设备对应的脏页存储单元已存储在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求,作为下一次的在先脏页写请求,后续用于判断是否需要与下一个脏页写请求合并。
在一些实施例中,所述合并逻辑单元具体用于若满足add1/m = add2/m,或满足add1/m = 1+add2/m,或满足1+add1/m = add2/m,则确定将所述当前脏页写请求以及所述在先脏页写请求进行合并;
其中,add1为当前脏页写请求的写地址,add2为在先脏页写请求的写地址,m为预设的数据位宽值,即标脏粒度,例如是32KB。
具体而言,add1/m = 1+add2/m表示当前脏页写请求与在先脏页写请求的写地址重合,1+add1/m = add2/m与1+add1/m = add2/m均表示当前脏页写请求与在先脏页写请求的写地址相邻。
在一些实施例中,所述合并逻辑单元具体用于:
若满足add1/m = add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述在先脏页写请求的写地址之和,写长度为1个单位长度;
若满足add1/m = 1+add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述在先脏页写请求的写地址之和,写长度为2个单位长度;
若满足1+add1/m = add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述当前脏页写请求的写地址之和,写长度为2个单位长度;
具体而言,假设标脏粒度m为32KB,以页(4KB)的8倍为粒度进行标脏的,也就是脏页记录中一个字节代表32KB,对应的32GB的内存空间需要32GB/32KB = 1MB 的脏页记录空间,也就是1个单位长度为一个字节;
若满足add1/m = add2/m,则向对应写地址写入0xFF(脏页标记数据);若满足add1/m = 1+add2/m或1+add1/m = add2/m,则向对应写地址写入0xFFFF表示从上次请求地址开始的64KB内存都脏了,或则表示从这次请求地址开始的64KB内存都脏了。
在一些实施例中,所述脏页存储单元还用于存储脏页写请求的时间戳tscnt;
所述合并逻辑单元还用于根据脏页写请求的时间戳tscnt和预设时间阈值确定脏页写请求是否超时,若是,则将超时的脏页写请求输出至后级模块。
具体而言,本实施例方法设置了超时机制,来防止某个虚拟功能设备的脏页写请求由于合并的原因迟迟发不出去。
在一个具体例子中,所述时间戳tscnt可以是指脏页写请求的提交时间/生成时间,具体可以是通过计算当前时间与时间戳的时间差,若该时间差大于等于预设时间阈值,则判定超时,若该时间差小于预设时间阈值,则判定未超时。
在一些实施例中,所述合并逻辑单元具体用于根据预设的轮询算法确定多个脏页写请求是否超时。
在一个具体例子中,每个脏页存储单元存储有valid信号,该valid信号为1时,表示对应脏页存储单元中的脏页写请求有效,该valid信号为0时,表示对应脏页存储单元中的脏页写请求无效,通过轮询的方式查询valid信号为1的脏页存储单元中的脏页写请求是否超时,如果超时,则将超时的脏页写请求发送出去;如果不超时,则令tscnt=tscnt+1,tscnt的初始值可以为0;如果所有valid信号为1的脏页写请求都完成了当前次轮询,则进入下一次轮询。
在一些实施例中,参阅图2,所述装置还包括DMA写请求通路;
所述输入模块,还用于将所述当前DMA写请求输出至DMA写请求通路;
所述DMA写请求通路,用于将所述当前DMA写请求输出至后级模块。
具体而言,所述后级模块通常是PCIe控制器,最终所述当前DMA写请求和所述脏页写请求都需要发给DMA处理模块进行处理,DMA处理模块处理所述当前DMA写请求时,会将所述当前DMA写请求的待写数据写入对应的内存地址。
在一些实施例中,参阅图3,所述装置还包括调度模块;
所述脏页合并模块具体用于通过所述调度模块将脏页写请求输出至后级模块;
所述DMA写请求通路具体用于通过所述调度模块将DMA写请求输出至后级模块;
所述调度模块用于根据预设的调度算法对所述脏页合并模块输出的脏页写请求和所述DMA写请求通路输出的DMA写请求进行调度,根据调度结果将脏页写请求或DMA写请求输出至后级模块。
具体而言,所述调度算法例如是,Round Robin(轮询调度),按照轮询的方式依次分配任务给两个输出,每个输出依次获得一个任务,然后再轮到下一个输出,这种算法简单且公平,但可能无法充分利用两个输出的性能差异;又例如是,Weighted Round Robin(加权轮询调度):给每个输出分配一个权重,根据权重比例来决定任务的分配,权重越高的输出获得的任务越多,可以根据输出的性能差异来设置权重,以充分利用两个输出的性能。
需说明的是,上述实施例装置中的各个模块可以是软件模块、硬件模块或者是软件和硬件相结合实现的模块。
本申请的另一个实施例提供一种虚拟机热迁移标脏方法,所述方法可以基于上述实施例的虚拟机热迁移标脏装置来实现,参阅图4,所述方法包括以下步骤:
步骤S1,接收目标虚拟功能设备的当前DMA写请求;
步骤S2,根据所述当前DMA写请求确定是否生成当前脏页写请求,若是,则生成对应的当前脏页写请求;
步骤S3,若未存储所述目标虚拟功能设备的在先脏页写请求,则存储所述当前脏页写请求;若已存储有所述目标虚拟功能设备的在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求。
在一些实施例中,所述步骤S2,具体包括:
查询映射表,根据查询结果确定所述目标虚拟功能设备所在的虚拟机是否在进行热迁移,若是,则查询配置表得到该虚拟机的预设内存地址范围和预设内存地址,根据所述当前DMA写请求的写地址和所述预设内存地址范围确定是否生成当前脏页写请求,若是,则根据所述预设内存地址和所述当前DMA写请求的写地址生成当前脏页写请求;
其中,所述映射表存储所述目标虚拟功能设备的热迁移标识,所述热迁移标识表示所述目标虚拟功能设备所在的虚拟机是否在进行热迁移;所述配置表用于存储所述目标虚拟功能设备所在的虚拟机的预设内存地址范围和预设内存地址。
在一些实施例中,所述映射表包括与多个虚拟功能设备一一对应的映射单元,每个映射单元用于存储与其对应的一个虚拟功能设备的热迁移标识和idx信息,所述热迁移标识表示虚拟功能设备所在的虚拟机是否在进行热迁移;
所述配置表包括多个配置单元,每个配置单元用于存储一个虚拟机的预设内存地址范围以及预设内存地址;
在一些实施例中,所述步骤S2,具体包括:
根据所述映射表获取与所述目标虚拟功能设备对应的热迁移标识和idx信息,并根据该热迁移标识确定所述目标虚拟功能设备所在的虚拟机是否在进行热迁移,若是,则获取与该idx信息对应的一个配置单元所存储的预设内存地址范围和预设内存地址,根据所述当前DMA写请求的写地址和该预设内存地址范围确定是否生成当前脏页写请求,若是,则根据该预设内存地址以及所述当前DMA写请求的写地址生成当前脏页写请求。
在一些实施例中,每个配置单元具体用于存储一个虚拟机的多段预设内存地址范围以及一个预设内存地址。
在一些实施例中,所述配置单元的数量小于所述映射单元的数量。
在一些实施例中,所述当前脏页写请求包括所述目标虚拟功能设备的设备编号、写地址和写长度。
在一些实施例中,所述步骤S3,具体包括:
若与所述目标虚拟功能设备对应的脏页存储单元未存储在先脏页写请求,则存储所述当前脏页写请求;若与所述目标虚拟功能设备对应的脏页存储单元已存储在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求。
在一些实施例中,所述步骤S3,具体包括:
若满足add1/m = add2/m,或满足add1/m = 1+add2/m,或满足1+add1/m = add2/m,则确定将所述当前脏页写请求以及所述在先脏页写请求进行合并;
其中,add1为当前脏页写请求的写地址,add2为在先脏页写请求的写地址,m为预设的数据位宽值。
在一些实施例中,所述步骤S3,具体包括:
若满足add1/m = add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述在先脏页写请求的写地址之和,写长度为1个单位长度;
若满足add1/m = 1+add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述在先脏页写请求的写地址之和,写长度为2个单位长度;
若满足1+add1/m = add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述当前脏页写请求的写地址之和,写长度为2个单位长度。
在一些实施例中,所述脏页存储单元还用于存储脏页写请求的时间戳;
在一些实施例中,所述步骤S3,具体包括:
根据脏页写请求的时间戳和预设时间阈值确定脏页写请求是否超时,若是,则将超时的脏页写请求输出至后级模块。
在一些实施例中,所述步骤S3,具体包括:
根据预设的轮询算法确定多个脏页写请求是否超时。
在一些实施例中,所述方法还包括:
步骤S4,将所述当前DMA写请求输出至后级模块。
在一些实施例中,所述方法具体还包括:
根据预设的调度算法对脏页写请求和DMA写请求进行调度,根据调度结果将脏页写请求或DMA写请求输出至后级模块。
需说明的是,本实施例所述的虚拟机热迁移标脏方法与上述实施例所述的虚拟机热迁移标脏装置对应,因此,本实施例所述的虚拟机热迁移标脏方法未详述的部分可以参阅上述实施例所述的虚拟机热迁移标脏装置的内容得到,故此处不进行赘述。
本申请的另一个实施例提出一种VIRTIO后端设备,包括上述实施例所述的虚拟机热迁移标脏装置。
具体而言,VIRTIO是一个通用的半虚拟化I/O 框架,VMM 通过它模拟出一系列的虚拟化设备,VIRTIO框架主要包含 3个部分:前端驱动(Front-end Driver)、后端设备(Back-endDevice)以及虚拟化队列(Virtqueue)。其中,前端驱动为虚拟机内部的 VIRTIO模拟设备(比如常见的VIRTIO 网络设备, VIRTIO 磁盘设备等)对应的驱动,前端驱动的作用是接收用户态的请求,然后按照协议将这些请求进行封装,发送到后端设备;后端设备通常在QEMU 中实现,后端设备用来接收前端驱动发过来的I/O 请求,然后对接收的数据进行解析,并从实际物理设备上完成收、发请求,并最终通过中断机制通知前端驱动;前端驱动和后端设备的数据通过Virtqueue队列进行交互。在本实施例中,将VIRTIO后端设备设计成包含上述实施例所述的虚拟机热迁移标脏装置,来实现虚拟机热迁移标脏方法。
本申请的另一个实施例提出一种芯片,包括上述实施例所述的虚拟机热迁移标脏装置。
本申请的另一个实施例提出一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例所述的虚拟机热迁移标脏方法。
其中,电子设备还可以包括连接不同组件(包括存储器和处理器)的总线。存储器可以包括易失性存储器形式的计算机可读介质,例如随机存取存储器(RAM)和/或高速缓存存储器。存储器也可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。电子设备也可以与一个或多个外部设备(例如键盘、指向设备、显示器等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其他计算设备进行通信的任何设备(例如网卡)通信,这种通信可以通过输入/输出(I/O)接口进行,并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。
本申请的另一个实施例提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如上述实施例所述的虚拟机热迁移标脏方法。
具体而言,所述计算机可读存储介质可以包括:能够携带所述计算机程序指令的任何实体或记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多更新和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (27)

1.一种虚拟机热迁移标脏装置,其特征在于,所述装置包括:
输入模块,用于接收目标虚拟功能设备发送的当前DMA写请求,并将所述当前DMA写请求输出至脏页记录模块;
脏页记录模块,用于根据所述当前DMA写请求确定是否生成当前脏页写请求,若是,则将生成的当前脏页写请求输出至脏页合并模块;
脏页合并模块,用于若未存储所述目标虚拟功能设备的在先脏页写请求,则存储所述当前脏页写请求;若已存储有所述目标虚拟功能设备的在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求;
所述脏页合并模块,具体用于若满足add1/m = add2/m,或满足add1/m = 1+add2/m,或满足1+add1/m = add2/m,则确定将所述当前脏页写请求以及所述在先脏页写请求进行合并;其中,add1为当前脏页写请求的写地址,add2为在先脏页写请求的写地址,m为预设的数据位宽值。
2.根据权利要求1所述的虚拟机热迁移标脏装置,其特征在于,所述脏页记录模块包括标脏逻辑单元、映射表和配置表;
所述映射表用于存储所述目标虚拟功能设备的热迁移标识,所述热迁移标识表示所述目标虚拟功能设备所在的虚拟机是否在进行热迁移;
所述配置表用于存储所述目标虚拟功能设备所在的虚拟机的预设内存地址范围和预设内存地址;
所述标脏逻辑单元用于根据所述映射表确定所述目标虚拟功能设备所在的虚拟机是否在进行热迁移,若是,则根据所述当前DMA写请求的写地址和所述预设内存地址范围确定是否生成当前脏页写请求,若是,则根据所述预设内存地址和所述当前DMA写请求的写地址生成当前脏页写请求。
3.根据权利要求2所述的虚拟机热迁移标脏装置,其特征在于,所述映射表包括与多个虚拟功能设备一一对应的映射单元,每个映射单元用于存储与其对应的一个虚拟功能设备的热迁移标识和idx信息,所述热迁移标识表示虚拟功能设备所在的虚拟机是否在进行热迁移;
所述配置表包括多个配置单元,每个配置单元用于存储一个虚拟机的预设内存地址范围以及预设内存地址;
所述逻辑单元用于根据所述映射表获取与所述目标虚拟功能设备对应的热迁移标识和idx信息,并根据该热迁移标识确定所述目标虚拟功能设备所在的虚拟机是否在进行热迁移,若是,则获取与该idx信息对应的一个配置单元所存储的预设内存地址范围和预设内存地址,根据所述当前DMA写请求的写地址和该预设内存地址范围确定是否生成当前脏页写请求,若是,则根据该预设内存地址以及所述当前DMA写请求的写地址生成当前脏页写请求。
4.根据权利要求3所述的虚拟机热迁移标脏装置,其特征在于,每个配置单元具体用于存储一个虚拟机的多段预设内存地址范围以及一个预设内存地址。
5.根据权利要求3所述的虚拟机热迁移标脏装置,其特征在于,所述配置单元的数量小于所述映射单元的数量。
6.根据权利要求3所述的虚拟机热迁移标脏装置,其特征在于,所述当前脏页写请求包括所述目标虚拟功能设备的设备编号、写地址和写长度。
7.根据权利要求6所述的虚拟机热迁移标脏装置,其特征在于,所述脏页合并模块包括合并逻辑单元以及多个脏页存储单元;
每个脏页存储单元用于存储一个虚拟功能设备的脏页写请求;
所述合并逻辑单元用于若与所述目标虚拟功能设备对应的脏页存储单元未存储在先脏页写请求,则存储所述当前脏页写请求;若与所述目标虚拟功能设备对应的脏页存储单元已存储在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求。
8.根据权利要求7所述的虚拟机热迁移标脏装置,其特征在于,所述合并逻辑单元具体用于:
若满足add1/m = add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述在先脏页写请求的写地址之和,写长度为1个单位长度;
若满足add1/m = 1+add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述在先脏页写请求的写地址之和,写长度为2个单位长度;
若满足1+add1/m = add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述当前脏页写请求的写地址之和,写长度为2个单位长度。
9.根据权利要求7所述的虚拟机热迁移标脏装置,其特征在于,所述脏页存储单元还用于存储脏页写请求的时间戳;
所述合并逻辑单元还用于根据脏页写请求的时间戳和预设时间阈值确定脏页写请求是否超时,若是,则将超时的脏页写请求输出至后级模块。
10.根据权利要求9所述的虚拟机热迁移标脏装置,其特征在于,所述合并逻辑单元具体用于根据预设的轮询算法确定多个脏页写请求是否超时。
11.根据权利要求1~9中任一项所述的虚拟机热迁移标脏装置,其特征在于,还包括DMA写请求通路;
所述输入模块,还用于将所述当前DMA写请求输出至DMA写请求通路;
所述DMA写请求通路,用于将所述当前DMA写请求输出至后级模块。
12.根据权利要求11所述的虚拟机热迁移标脏装置,其特征在于,所述装置还包括调度模块;
所述脏页合并模块具体用于通过所述调度模块将脏页写请求输出至后级模块;
所述DMA写请求通路具体用于通过所述调度模块将DMA写请求输出至后级模块;
所述调度模块用于根据预设的调度算法对所述脏页合并模块输出的脏页写请求和所述DMA写请求通路输出的DMA写请求进行调度,根据调度结果将脏页写请求或DMA写请求输出至后级模块。
13.一种虚拟机热迁移标脏方法,其特征在于,所述方法包括:
接收目标虚拟功能设备发送的当前DMA写请求;
根据所述当前DMA写请求确定是否生成当前脏页写请求,若是,则生成对应的当前脏页写请求;
若未存储所述目标虚拟功能设备的在先脏页写请求,则存储所述当前脏页写请求;若已存储有所述目标虚拟功能设备的在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求;
其中,所述根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,具体包括:
若满足add1/m = add2/m,或满足add1/m = 1+add2/m,或满足1+add1/m = add2/m,则确定将所述当前脏页写请求以及所述在先脏页写请求进行合并; add1为当前脏页写请求的写地址,add2为在先脏页写请求的写地址,m为预设的数据位宽值。
14.根据权利要求13所述的虚拟机热迁移标脏方法,其特征在于,所述方法具体包括:
查询映射表,根据查询结果确定所述目标虚拟功能设备所在的虚拟机是否在进行热迁移,若是,则查询配置表得到该虚拟机的预设内存地址范围和预设内存地址,根据所述当前DMA写请求的写地址和所述预设内存地址范围确定是否生成当前脏页写请求,若是,则根据所述预设内存地址和所述当前DMA写请求的写地址生成当前脏页写请求;
其中,所述映射表存储所述目标虚拟功能设备的热迁移标识,所述热迁移标识表示所述目标虚拟功能设备所在的虚拟机是否在进行热迁移;所述配置表用于存储所述目标虚拟功能设备所在的虚拟机的预设内存地址范围和预设内存地址。
15.根据权利要求14所述的虚拟机热迁移标脏方法,其特征在于,所述映射表包括与多个虚拟功能设备一一对应的映射单元,每个映射单元存储与其对应的一个虚拟功能设备的热迁移标识和idx信息,所述热迁移标识表示虚拟功能设备所在的虚拟机是否在进行热迁移;
所述配置表包括多个配置单元,每个配置单元用于存储一个虚拟机的预设内存地址范围以及预设内存地址;
所述方法具体包括:
根据所述映射表获取与所述目标虚拟功能设备对应的热迁移标识和idx信息,并根据该热迁移标识确定所述目标虚拟功能设备所在的虚拟机是否在进行热迁移,若是,则获取与该idx信息对应的一个配置单元所存储的预设内存地址范围和预设内存地址,根据所述当前DMA写请求的写地址和该预设内存地址范围确定是否生成当前脏页写请求,若是,则根据该预设内存地址以及所述当前DMA写请求的写地址生成当前脏页写请求。
16.根据权利要求15所述的虚拟机热迁移标脏方法,其特征在于,每个配置单元存储一个虚拟机的多段预设内存地址范围以及一个预设内存地址。
17.根据权利要求15所述的虚拟机热迁移标脏方法,其特征在于,所述配置单元的数量小于所述映射单元的数量。
18.根据权利要求15所述的虚拟机热迁移标脏方法,其特征在于,所述当前脏页写请求包括所述目标虚拟功能设备的设备编号、写地址和写长度。
19.根据权利要求18所述的虚拟机热迁移标脏方法,其特征在于,所述方法具体包括:
若与所述目标虚拟功能设备对应的脏页存储单元未存储在先脏页写请求,则存储所述当前脏页写请求;若与所述目标虚拟功能设备对应的脏页存储单元已存储在先脏页写请求,则根据所述当前脏页写请求的写地址和所述在先脏页写请求的写地址确定是否将两者合并,若是,则存储合并后的脏页写请求,若否,则将所述在先脏页写请求输出至后级模块,并存储所述当前脏页写请求。
20.根据权利要求19所述的虚拟机热迁移标脏方法,其特征在于,所述方法具体包括:
若满足add1/m = add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述在先脏页写请求的写地址之和,写长度为1个单位长度;
若满足add1/m = 1+add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述在先脏页写请求的写地址之和,写长度为2个单位长度;
若满足1+add1/m = add2/m,则合并后的脏页写请求的写地址为所述预设内存地址与所述当前脏页写请求的写地址之和,写长度为2个单位长度。
21.根据权利要求19所述的虚拟机热迁移标脏方法,其特征在于,所述脏页存储单元还存储脏页写请求的时间戳;
所述方法具体还包括:
根据脏页写请求的时间戳和预设时间阈值确定脏页写请求是否超时,若是,则将超时的脏页写请求输出至后级模块。
22.根据权利要求21所述的虚拟机热迁移标脏方法,其特征在于,所述方法具体包括:
根据预设的轮询算法确定多个脏页写请求是否超时。
23.根据权利要求13~22中任一项所述的虚拟机热迁移标脏方法,其特征在于,所述方法具体还包括:
根据预设的调度算法对脏页写请求和DMA写请求进行调度,根据调度结果将脏页写请求或DMA写请求输出至后级模块。
24.一种VIRTIO后端设备,其特征在于,包括权利要求1~12中任一项所述的虚拟机热迁移标脏装置。
25.一种芯片,其特征在于,包括权利要求1~12中任一项所述的虚拟机热迁移标脏装置。
26.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求13~23中任一项所述的虚拟机热迁移标脏方法。
27.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求13~23中任一项所述的虚拟机热迁移标脏方法。
CN202311358093.0A 2023-10-19 2023-10-19 虚拟机热迁移标脏方法及其装置、后端设备、芯片 Active CN117389685B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311358093.0A CN117389685B (zh) 2023-10-19 2023-10-19 虚拟机热迁移标脏方法及其装置、后端设备、芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311358093.0A CN117389685B (zh) 2023-10-19 2023-10-19 虚拟机热迁移标脏方法及其装置、后端设备、芯片

Publications (2)

Publication Number Publication Date
CN117389685A CN117389685A (zh) 2024-01-12
CN117389685B true CN117389685B (zh) 2024-03-19

Family

ID=89471535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311358093.0A Active CN117389685B (zh) 2023-10-19 2023-10-19 虚拟机热迁移标脏方法及其装置、后端设备、芯片

Country Status (1)

Country Link
CN (1) CN117389685B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598303A (zh) * 2013-10-31 2015-05-06 中国电信股份有限公司 基于kvm的虚拟机间在线迁移方法与装置
CN107797878A (zh) * 2016-09-06 2018-03-13 阿里巴巴集团控股有限公司 虚拟机热迁移处理方法及***
US10592271B1 (en) * 2018-03-05 2020-03-17 Cavium, Llc Methods and systems for tracking a virtual memory of a virtual machine
CN112099908A (zh) * 2020-08-27 2020-12-18 腾讯科技(深圳)有限公司 虚拟机热迁移方法、装置和计算机设备
CN112148421A (zh) * 2019-06-29 2020-12-29 华为技术有限公司 虚拟机迁移的方法以及装置
CN115048179A (zh) * 2021-03-08 2022-09-13 中国电信股份有限公司 迁移优化方法、源端设备和虚拟机迁移管理***
CN116069695A (zh) * 2021-11-03 2023-05-05 迈络思科技有限公司 使用***设备进行存储器访问跟踪

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386731B2 (en) * 2009-09-14 2013-02-26 Vmware, Inc. Method and system for optimizing live migration of persistent data of virtual machine using disk I/O heuristics

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598303A (zh) * 2013-10-31 2015-05-06 中国电信股份有限公司 基于kvm的虚拟机间在线迁移方法与装置
CN107797878A (zh) * 2016-09-06 2018-03-13 阿里巴巴集团控股有限公司 虚拟机热迁移处理方法及***
US10592271B1 (en) * 2018-03-05 2020-03-17 Cavium, Llc Methods and systems for tracking a virtual memory of a virtual machine
CN112148421A (zh) * 2019-06-29 2020-12-29 华为技术有限公司 虚拟机迁移的方法以及装置
CN112099908A (zh) * 2020-08-27 2020-12-18 腾讯科技(深圳)有限公司 虚拟机热迁移方法、装置和计算机设备
CN115048179A (zh) * 2021-03-08 2022-09-13 中国电信股份有限公司 迁移优化方法、源端设备和虚拟机迁移管理***
CN116069695A (zh) * 2021-11-03 2023-05-05 迈络思科技有限公司 使用***设备进行存储器访问跟踪

Also Published As

Publication number Publication date
CN117389685A (zh) 2024-01-12

Similar Documents

Publication Publication Date Title
EP3211530B1 (en) Virtual machine memory management method, physical main machine, pcie device and configuration method therefor, and migration management device
EP3594807A1 (en) Virtual disk file format conversion method and device
US20190243757A1 (en) Systems and methods for input/output computing resource control
US8738890B2 (en) Coupled symbiotic operating system
CN105335309B (zh) 一种数据传输方法及计算机
CN107278292B (zh) 一种虚拟机内存的映射方法、装置及数据传输设备
US20110202918A1 (en) Virtualization apparatus for providing a transactional input/output interface
CN109977037B (zh) 一种dma数据传输方法及***
KR20160123986A (ko) 불휘발성 메모리 장치, 및 그것을 포함하는 메모리 시스템
KR102326280B1 (ko) 데이터 처리 방법, 장치, 기기 및 매체
US20240012683A1 (en) Resource Management Unit for Capturing Operating System Configuration States and Offloading Tasks
KR20200135717A (ko) 액세스 요청 처리 방법, 장치, 기기 및 저장 매체
CN112650558A (zh) 数据处理方法、装置、可读介质和电子设备
US9727521B2 (en) Efficient CPU mailbox read access to GPU memory
CN109857553B (zh) 内存管理方法及装置
TW200945033A (en) Memory allocation and access method and device using the same
WO2024119930A1 (zh) 调度方法、装置、计算机设备和存储介质
CN117389685B (zh) 虚拟机热迁移标脏方法及其装置、后端设备、芯片
CN116820579A (zh) 访存指令的调度方法、装置、电子设备和存储介质
US11467766B2 (en) Information processing method, apparatus, device, and system
JP3453761B2 (ja) アドレス変換方式
CN116745754A (zh) 一种访问远端资源的***及方法
CN114662162B (zh) 实现动态分配vf的多算法核高性能sr-iov加解密***及方法
CN108763105B (zh) 提升固态存储设备写性能的方法、装置及计算机设备
CN114780466B (zh) 一种基于dma的数据复制延时的优化方法

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