CN115586943A - 一种智能网卡虚拟机脏页的硬件标记实现方法 - Google Patents

一种智能网卡虚拟机脏页的硬件标记实现方法 Download PDF

Info

Publication number
CN115586943A
CN115586943A CN202211125632.1A CN202211125632A CN115586943A CN 115586943 A CN115586943 A CN 115586943A CN 202211125632 A CN202211125632 A CN 202211125632A CN 115586943 A CN115586943 A CN 115586943A
Authority
CN
China
Prior art keywords
dirty page
marking
dirty
request
virtual machine
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
CN202211125632.1A
Other languages
English (en)
Other versions
CN115586943B (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.)
Hangzhou Yixin Technology Co ltd
Original Assignee
Hangzhou Yixin 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 Hangzhou Yixin Technology Co ltd filed Critical Hangzhou Yixin Technology Co ltd
Priority to CN202211125632.1A priority Critical patent/CN115586943B/zh
Publication of CN115586943A publication Critical patent/CN115586943A/zh
Application granted granted Critical
Publication of CN115586943B publication Critical patent/CN115586943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明公开了一种智能网卡虚拟机脏页的硬件标记实现方法,包括:S1.建立脏页位图单元,并基于脏页位图单元构建脏页位图标记映射空间;其中脏页位图单元包含数个脏页标记位;S2.构建脏页标记处理通道,通过脏页标记处理通道过滤分析和地址转换,将硬件对虚拟设备虚拟物理内存的访问转换成对脏页位图标记映射空间的虚拟物理内存访问,得到脏页标记请求。本发明可以使虚拟机用户可以更准确、快速地获得智能网卡虚拟化设备所消耗的有效脏页地址,极大地节省虚拟机热迁移中预拷贝过程的执行时间。

Description

一种智能网卡虚拟机脏页的硬件标记实现方法
技术领域
本发明涉及虚拟机脏页管理技术领域,尤其涉及一种智能网卡虚拟机脏页的硬件标记实现方法。
背景技术
云化时代,虚拟机热迁移作为云计算平台核心技术之一,是各云计算厂商深入钻研的底层技术。执行虚拟机热迁移时,通常先将源虚拟机内所有虚拟物理内存都先标记为脏页,然后等待迁移。脏页拷贝会在预拷贝阶段和虚拟机切换阶段发生,预拷贝阶段先完成大部分脏页内存的拷贝工作,由于在预拷贝执行过程中仍然可能产生新的脏页,所以在虚拟机切换阶段还需进行一次脏页拷贝。对于大规模虚拟机来说,预拷贝阶段的执行时间会比较长。加速虚拟机热迁移已经成为云计算厂商及其用户的迫切需求,用更高效的方法解决脏页标记问题就能提高热迁移的效率。
绝大多数智能网卡都支持虚拟化技术:即将一个物理网卡设备虚拟分割成多个虚拟网卡设备,再将不同的虚拟网卡设备分配给不同的虚拟机使用。同时,网卡作为网络数据收发的主要硬件处理设备,涉及大量内存读写操作。采用传统软件方式把分配给虚拟网卡的所有虚拟内存空间都标记为脏页,会严重影响虚拟机脏页拷贝的执行效率,继而影响虚拟机热迁移的执行速度。如何利用硬件标记方法代替传统软件标记方式,安全地完成脏页标记,并且能够做到更准确、快速就是本发明所具备的意义。
发明内容
本发明的目的是针对现有技术的缺陷,提供了一种智能网卡虚拟机脏页的硬件标记实现方法,采用一种具有可行性的过滤分析提取出有效的内存访问转换为脏页标记请求;通过汇聚标记请求节省传输带宽;多通道并行进脏页标记提高效率。并涉及安全可靠地解决并行标记脏页时可能遇到的访问竞争冲突问题。
为了实现以上目的,本发明采用以下技术方案:
一种智能网卡虚拟机脏页的硬件标记实现方法,包括:
S1.建立脏页位图单元,并基于脏页位图单元构建脏页位图标记映射空间;其中脏页位图单元包含数个脏页标记位;
S2.构建脏页标记处理通道,通过脏页标记处理通道过滤分析和地址转换,将硬件对虚拟设备虚拟物理内存的访问转换成对脏页位图标记映射空间的虚拟物理内存访问,得到脏页标记请求;
S3.当得到脏页标记请求时,进行实际的脏页标记。
进一步的,所述步骤S1中构建脏页位图标记映射空间还包括对脏页位图标记进行配置;其中配置包括:虚拟智能网卡在虚拟机内的设备虚拟物理起始地址;虚拟智能网卡在虚拟机内的设备虚拟物理空间大小;虚拟机页面大小;脏页位图标记映射空间的虚拟物理起始地址。
进一步的,所述步骤S2中脏页标记处理通道包括标记请求缓存器、请求过滤器、地址分析器、无锁处理器。
进一步的,所述请求过滤器包括:
检查内存请求是否由虚拟队列发起;
检查内存请求是否为写请求;
检查访问的内存是否为队列描述符写操作;
检查内存请求访问的是否为中断事件空间;
检查内存访问是否为数据缓存区。
进一步的,所述地址分析器包括:对硬件访问的虚拟设备虚拟物理地址进行地址转换,转换为脏页位图标记映射空间内脏页位图单元的地址和脏页标记位的信息。
进一步的,所述无锁处理器包括:
同时发送预测内容和标记内容,判断是否收到状态成功的信息,若收到状态成功的信息,则标记内容成功录入;若收到状态失败的信息,则更新预测内容和标记内容,同时检查是否有后续标记请求并尝试汇聚,再次发送标记请求,直至标记内容被成功录入。
进一步的,所述更新预测内容具体为:采用返回的目标脏页位图单元的实际内容替换原脏页标记请求里对目标脏页位图单元的预测内容。
进一步的,所述更新标记内容具体为:把返回的目标脏页位图单元实际内容与原标记内容相加,得到目标脏页位图单元的原有脏页标记信息以及添加了期望标记的新信息。
进一步的,所述标记请求汇聚的操作具体为:原标记内容加入目标脏页位图单元的实际内容之后,仍对后续标记请求进行检查,如果两次标记请求访问的是同一个脏页位图单元,后续标记请求标记内容也需要加入。
与现有技术相比,本发明公开了一种通过硬件脏页标记模块对智能网卡虚拟化设备所消耗的脏页内存进行标记的实现方法,为能够更精确、快速地标记虚拟机脏页而发明的;通过监视智能网卡对虚拟机虚拟物理内存的访问操作,并进行以下处理:建立脏页位图标记映射空间,用于记录完整的脏页位图;对虚拟机虚拟物理内存访问进行过滤,只对有效的内存操作进行脏页标记;对访问内存的虚拟物理地址进行地址转换,映射到脏页位图标记映射空间,转换成脏页位图单元地址和脏页标记位;高效并行,且无锁自适应地在脏页位图标记映射空间内标记脏页位图并适时汇聚标记请求以减少请求数目从而节省传输带宽。使用本发明方法,虚拟机用户可以更准确、快速地获得智能网卡虚拟化设备所消耗的有效脏页地址,极大地节省虚拟机热迁移中预拷贝过程的执行时间。本发明的方法对其他虚拟化设备在虚拟机中的脏页标记同样具有参考意义。
附图说明
图1是实施例一提供的一种智能网卡虚拟机脏页的硬件标记实现方法流程图;
图2是实施例一提供的建立脏页位图标记映射空间示意图;
图3是实施例一提供的脏页标记模块内部结构示意图;
图4是实施例一提供的脏页标记处理通道内部结构示意图;
图5是实施例一提供的请求过滤器处理流程示意图;
图6是实施例一提供的无锁处理器处理流程示意图;
图7是实施例二提供的两个无锁处理器竞争以及标记请求汇聚处理示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
本发明的目的是针对现有技术的缺陷,提供了一种智能网卡虚拟机脏页的硬件标记实现方法。
实施例一
本实施例提供一种智能网卡虚拟机脏页的硬件标记实现方法,如图1所示,包括:
S1.建立脏页位图单元,并基于脏页位图单元构建脏页位图标记映射空间;其中脏页位图单元包含数个脏页标记位;
S2.构建脏页标记处理通道,通过脏页标记处理通道过滤分析和地址转换,将硬件对虚拟设备虚拟物理内存的访问转换成对脏页位图标记映射空间的虚拟物理内存访问,得到脏页标记请求;
S3.当得到脏页标记请求时,进行实际的脏页标记。
在步骤S1中,建立脏页位图单元,并基于脏页位图单元构建脏页位图标记映射空间;其中脏页位图单元包含数个脏页标记位。
如图2所示为建立脏页位图标记映射空间示意图,当虚拟机热迁移开始,在虚拟机的虚拟物理内存里新建立一块脏页位图标记映射空间,用以记录完整的脏页位图。脏页位图标记映射空间由脏页位图单元组成,每个脏页位图单元包含32个脏页标记位,每个标记位1个比特,标记位初始值为0,被标记为1代表对应的页面内存为脏页。
对脏页位图标记需要进行初始化配置,配置包括:1.虚拟智能网卡在虚拟机内的设备虚拟物理起始地址;2.虚拟智能网卡在虚拟机内的设备虚拟物理空间大小;3.虚拟机页面大小(最小4KB,最大128MB,有效配置值包含:4/8/16/32/64/128/256/512KB,1/2/4/8/16/32/64/128MB);4.脏页位图标记映射空间的虚拟物理起始地址。
脏页位图标记映射空间的大小无需配置,可以通过虚拟智能网卡在虚拟机内的设备虚拟物理空间大小(上述配置中的第2点),除以虚拟机页面大小(上述配置中的第3点)获得。配置地址需要满足:1.虚拟智能网卡在虚拟机内的设备虚拟物理起始地址根据页面大小对齐;2.虚拟智能网卡在虚拟机内的设备虚拟物理空间大小能够将虚拟机页面大小整除。配置完成后,虚拟机热迁移过程中的脏页都将被记录在脏页位图标记映射空间内。
在步骤S2中,构建脏页标记处理通道,通过脏页标记处理通道过滤分析和地址转换,将硬件对虚拟设备虚拟物理内存的访问转换成对脏页位图标记映射空间的虚拟物理内存访问,得到脏页标记请求。
智能网卡常用一种队列传输模式完成系统和网卡设备之间的数据传输。如图3-4所示,脏页位图标记包含8个脏页标记处理通道,每个脏页标记处理通道包括标记请求缓存器11、请求过滤器12、地址分析器13、无锁处理器14。
每一个脏页标记处理通道对应监视一个传输队列所发起的对虚拟网卡设备虚拟物理内存地址的访问。所有的内存访问地址都需要经过请求过滤器12的过滤分析,目的是提取出有效的内存访问,只有有效的内存访问才会被真正转换为脏页标记操作,这样可以过滤掉虚拟机热迁移过程软件无需关心的内存访问。
如图5所示,请求过滤器12中的过滤分析行为包含:
1.检查内存请求是否由虚拟队列发起,如果当前的队列属于物理队列或者控制队列,发起的内存请求与热迁移过程无关;
2.检查内存请求是否为写请求,读请求不污染内存的内容,也无需关心;
3.通过上述第2步已经确定了该内存请求为写请求,进一步检查访问的内存是否为队列描述符写操作,通常队列描述符写操作只起到标记“完成”的作用,收到后可以直接释放。如带有一些额外信息,也会被设备驱动软件回收,一般无需在热迁移过程中拷贝到新的虚拟机;
4.检查内存请求访问的是否为中断事件空间,访问中断事件空间的操作会被系统识别为一个硬件中断事件,然后转换成软件中断事件并调用相应的中断处理程序。由于该次内存访问会被系统转化处理吸收,也无需在热迁移过程中再次拷贝到新的虚拟机;
5.检查内存访问是否为数据缓存区,数据缓存区里的数据往往是用户真正关心的网络数据,数据缓存区内被访问的页面映射到脏页位图映射空间内的目标脏页位图标记位需要被标记。
以上的条件需要全部检查通过才会被判定为一个有效的内存访问操作,才需要进行实际的脏页标记,未通过检查的内存访问请求会在S10请求过滤器里被直接丢弃。这里丢弃是指内存访问不再进行后续脏页标记操作,内存访问的本身操作还是需要被硬件设备发送到系统,这属于硬件的基本功能,必须被保证。
通过请求过滤器12检查的内存访问请求会在地址分析器13中进行一次地址转换操作:地址分析器13会把内存访问的地址(虚拟智能网卡设备的虚拟物理地址)转换为脏页位图标记映射空间内脏页位图单元的地址,以及脏页位图标记位的信息。具体地址转换方法:假设:
1.转换后的脏页位图单元起始虚拟物理地址等于NvStartAddr;
2.脏页位图标记映射空间的虚拟物理起始地址等于NvBaseStartAddr;
3.智能网卡设备虚拟物理起始地址等于OvBaseStartAddr;
4.虚拟机页面大小等于PgSize;
5.内存请求访问的虚拟物理地址等于OvStartAddr;
6.内存请求访问的长度等于OvLen。
由于一次内存访问可能覆盖多个页面,需要通过计算同时得到脏页位图单元起始地址和脏页位图单元结束地址,利用地址转化公式,表示为:
NvStartAddr=NvBaseStartAddr+(OvStartAddr-OvBaseStartAddr)÷(PgSize<<5)
得到的计算结果就是脏页位图单元起始地址,脏页位图单元结束地址NvEndAddr可以利用下述公式得到,表示为:
NvEndAddr=NvBaseStartAddr+(OvStartAddr+OvLen-OvBaseStartAddr)÷(PgSize<<5)
由于在脏页位图单元内每一个脏页标记位对应一个内存页面,还需要找出期望标记的各个脏页标记位。对脏页位图单元起始地址、脏页位图单元结束地址进行32求模,可以得到起始和结束的脏页标记位,从脏页位图单元起始地址的脏页标记位开始到脏页位图单元结束地址的脏页标记位为止,中间所有连续的脏页标记位都需要被标记。
通过地址分析器13处理完成后,标记请求被发送到无锁处理器14中,无锁处理器14需要将内部标记请求转换成硬件设备对系统的总线访问协议请求,例如:智能网卡设备常用PCIe总线协议,那么标记请求就要通过PCIe协议传输到系统。无锁处理器14的操作流程如图6所示。首先,当无锁处理器14收到一个新标记请求(当前无锁处理器14里没有需要处理的标记请求,那么收到的标记请求就是一个新标记请求),无锁处理器14会组建两个32位的内容(内存地址、长度等信息一般归属协议传输信息头部分,以PCIe协议为例,就是TLPHeader部分。这里的两个32位数据填入协议传输的数据部分),第一个32位数据代表对目标脏页位图单元的预测内容(初始值填0),第二个32位数据是标记内容。请求发送以后,参考C-A-S(Compare and Swap)操作的原理,系统会将脏页标记请求中对目标脏页位图单元的预测内容与目标脏页位图单元中的实际内容做比较,相等才会将标记内容录入内存,否则就不录入并且返回请求失败状态,状态失败时还需返回目标脏页位图单元的实际内容。无锁处理器14收到状态成功,则脏页标记请求操作完成。如果收到状态失败,需要更新标记请求并再次发送直至操作成功为止。
更新标记请求操作包括:
1.更新预测内容:用系统返回的目标脏页位图单元的实际内容替换原脏页标记请求里对目标脏页位图单元的预测内容;
2.更新标记内容:由于硬件只进行脏页标记,不承担清除工作(清除工作由虚拟设备软件在回收或者完成脏页拷贝之后自行完成),所以硬件只有写1的需求而无写0的操作。所以,更新标记内容的操作就是把系统返回的目标脏页位图单元实际内容与原标记内容相加(逻辑运算“或”操作),这样就既保留了目标脏页位图单元的原有脏页标记信息又添加了期望标记的新信息。
另外,由于每次标记操作会占用一定的系统传输带宽,并且标记请求操作存在失败的可能还需要再次甚至是多次重复进行。为提高带宽利用率和标记效率,在无锁处理器14操作流程中设计有标记请求汇聚的操作。即在每次标记请求失败时,无锁处理器14需要同时查看地址分析器13是否有后续的标记请求,如果有后续请求,需要进一步检查后续请求访问的脏页位图单元是否和当前处理的脏页位图单元一致,如果一致可以将后续请求的标记内容进一步加到当前标记内容里,则两个标记请求可以汇聚合并为一个标记请求。由于减少了标记请求的数目,也就节省了系统带宽并且提高了标记效率。实际应用中,虚拟物理地址在传输队列中的使用大多数是连续的,所以相邻两个标记请求访问同一个脏页位图单元的概率是比较高的。
与现有技术相比,本实施例能够更精确、快速地标记虚拟机脏页;通过监视智能网卡对虚拟机虚拟物理内存的访问操作,并进行以下处理:建立脏页位图标记映射空间,用于记录完整的脏页位图;对虚拟机虚拟物理内存访问进行过滤,只对有效的内存操作进行脏页标记;对访问内存的虚拟物理地址进行地址转换,映射到脏页位图标记映射空间,转换成脏页位图单元地址和脏页标记位;高效并行,且无锁自适应地在脏页位图标记映射空间内标记脏页位图并适时汇聚标记请求以减少请求数目从而节省传输带宽。使用本实施例方法,虚拟机用户可以更准确、快速地获得智能网卡虚拟化设备所消耗的有效脏页地址,极大地节省虚拟机热迁移中预拷贝过程的执行时间。本实施例的方法对其他虚拟化设备在虚拟机中的脏页标记同样具有参考意义。
本实施例提供的一种智能网卡虚拟机脏页的硬件标记实现方法与实施例一的不同之处在于:
本实施例通过一个操作实例来阐述无锁处理器14是如何解决实际应用中的标记竞争冲突并且完成一次标记请求汇聚操作的。
如图7所示,两个无锁竞处理器竞争以及标记请求汇聚处理实例,实例中有两个无锁处理器同时工作,分别是:无锁处理器A和无锁处理器B,两个处理器都想要标记同一个目标脏页位图单元。目标脏页位图单元的实际内容是0x8000_0000,表示当前位图单元的第32个脏页标记位已经被标记过。无锁处理器A期望标记目标脏页位图单元中的第1个脏页标记位,无锁处理器B期望标记目标脏页位图单元中的第17个脏页标记位。
第一步,两个无锁处理器首先要组织标记请求,填写预测内容和标记内容。根据之前内容对无锁处理器操作的描述,可以获知:两个无锁处理器的预测内容都应该是0x0(都是新标记请求,预测内容初始值填0),无锁处理器A的标记内容为0x0000_0001,无锁处理器B的标记内容为0x0001_0000;
第二步,系统收到两个无锁处理器的标记请求后,先比对目标脏页位图单元里的实际内容,发现与两个请求的预测内容均不相符(实例中为了展示预测内容的作用,刻意造成预测比对失败的情况,实际中目标脏页位图单元的初始值应为0,初次操作都是可以成功的),所以返回两个失败状态,并且返回脏页位图单元的实际内容0x8000_0000;
第三步,收到失败状态后,无锁处理器需要重新组织标记请求,预测内容先被实际内容替换,然后标记内容需要用原标记内容加上实际内容;
第四步,无锁处理器A更新后的标记请求先被系统接受,于是目标脏页位图单元的内容被无锁处理器A标记请求里的标记内容更新覆盖,且系统返回成功状态给无锁处理器A。此次竞争,无锁处理器A的请求被系统接受了,所以系统返回给无锁处理器B的状态仍然是失败,且同时无锁处理器B收到了一个后续标记请求,期望标记目标脏页位图单元中第21个标记位,为了减少标记请求数目以节省系统带宽,无锁处理器B将原标记内容和后续标记内容进行汇聚(需要注意:这里的标记内容需要考虑三方面内容包括:目标脏页位图单元的实际内容,原标记内容和后续标记内容,三者需要相加);
第五步,无锁处理器B再次发送标记请求,此时的标记请求已经包含新的标记内容;第六步,由于当前再无竞争,系统接受了无锁处理器B的标记请求,更新了目标脏页位图单元的内容。
在本实施例中,最终目标脏页位图单元里的第1、17、21和32个脏页标记位被最终标记,其中:第1个脏页标记位是无锁处理器A的标记内容,第17和21个脏页标记位是无锁处理器B的标记内容,第32个脏页标记位是脏页位图单元之前记录的标记信息,被安全保留下来。考虑实际情况下,不同队列分配到的虚拟地址空间段应该各不相同,竞争多数情况并不一定存在,但是在各队列虚拟地址段边界上仍可能存在竞争,甚至当虚拟物理地址应用较为离散时,竞争情况会加剧,甚至存在比实例竞争更加激烈的情况。所以,无锁竞争处理器的设计就是为了保证硬件标记的准确性和安全性。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种智能网卡虚拟机脏页的硬件标记实现方法,其特征在于,包括:
S1.建立脏页位图单元,并基于脏页位图单元构建脏页位图标记映射空间;其中脏页位图单元包含数个脏页标记位;
S2.构建脏页标记处理通道,通过脏页标记处理通道过滤分析和地址转换,将硬件对虚拟设备虚拟物理内存的访问转换成对脏页位图标记映射空间的虚拟物理内存访问,得到脏页标记请求;
S3.当得到脏页标记请求时,进行实际的脏页标记。
2.根据权利要求1所述的一种智能网卡虚拟机脏页的硬件标记实现方法,其特征在于,所述步骤S1中构建脏页位图标记映射空间还包括对脏页位图标记进行配置;其中配置包括:虚拟智能网卡在虚拟机内的设备虚拟物理起始地址;虚拟智能网卡在虚拟机内的设备虚拟物理空间大小;虚拟机页面大小;脏页位图标记映射空间的虚拟物理起始地址。
3.根据权利要求1所述的一种智能网卡虚拟机脏页的硬件标记实现方法,其特征在于,所述步骤S2中脏页标记处理通道包括标记请求缓存器、请求过滤器、地址分析器、无锁处理器。
4.根据权利要求3所述的一种智能网卡虚拟机脏页的硬件标记实现方法,其特征在于,所述请求过滤器包括:
检查内存请求是否由虚拟队列发起;
检查内存请求是否为写请求;
检查访问的内存是否为队列描述符写操作;
检查内存请求访问的是否为中断事件空间;
检查内存访问是否为数据缓存区。
5.根据权利要求3所述的一种智能网卡虚拟机脏页的硬件标记实现方法,其特征在于,所述地址分析器包括:对硬件访问的虚拟设备虚拟物理地址进行地址转换,转换为脏页位图标记映射空间内脏页位图单元的地址和脏页标记位的信息。
6.根据权利要求3所述的一种智能网卡虚拟机脏页的硬件标记实现方法,其特征在于,所述无锁处理器包括:
同时发送预测内容和标记内容,判断是否收到状态成功的信息,若收到状态成功的信息,则标记内容成功录入;若收到状态失败的信息,则更新预测内容和标记内容,同时检查是否有后续标记请求并尝试汇聚,再次发送标记请求,直至标记内容被成功录入。
7.根据权利要求6所述的一种智能网卡虚拟机脏页的硬件标记实现方法,其特征在于,所述更新预测内容具体为:采用返回的目标脏页位图单元的实际内容替换原脏页标记请求里对目标脏页位图单元的预测内容。
8.根据权利要求6所述的一种智能网卡虚拟机脏页的硬件标记实现方法,其特征在于,所述更新标记内容具体为:把返回的目标脏页位图单元实际内容与原标记内容相加,得到目标脏页位图单元的原有脏页标记信息以及添加了期望标记的新信息。
9.根据权利要求6所述的一种智能网卡虚拟机脏页的硬件标记实现方法,其特征在于,所述标记请求汇聚的操作具体为:原标记内容加入目标脏页位图单元的实际内容之后,仍对后续标记请求进行检查,如果两次标记请求访问的是同一个脏页位图单元,后续标记请求标记内容也需要加入。
CN202211125632.1A 2022-09-16 2022-09-16 一种智能网卡虚拟机脏页的硬件标记实现方法 Active CN115586943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211125632.1A CN115586943B (zh) 2022-09-16 2022-09-16 一种智能网卡虚拟机脏页的硬件标记实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211125632.1A CN115586943B (zh) 2022-09-16 2022-09-16 一种智能网卡虚拟机脏页的硬件标记实现方法

Publications (2)

Publication Number Publication Date
CN115586943A true CN115586943A (zh) 2023-01-10
CN115586943B CN115586943B (zh) 2023-08-15

Family

ID=84778768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211125632.1A Active CN115586943B (zh) 2022-09-16 2022-09-16 一种智能网卡虚拟机脏页的硬件标记实现方法

Country Status (1)

Country Link
CN (1) CN115586943B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117539797A (zh) * 2024-01-10 2024-02-09 深圳星云智联科技有限公司 一种脏页记录方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9733980B1 (en) * 2014-12-05 2017-08-15 Amazon Technologies, Inc. Virtual machine management using I/O device logging
US20190050228A1 (en) * 2018-06-26 2019-02-14 Vinodh Gopal Atomic instructions for copy-xor of data
CN110188051A (zh) * 2019-02-22 2019-08-30 成都海光集成电路设计有限公司 标记与物理地址相关的控制信息的方法、处理系统和设备
CN111580933A (zh) * 2020-05-12 2020-08-25 西安交通大学 一种基于硬件加速的虚拟机在线迁移方法
CN112099905A (zh) * 2020-08-26 2020-12-18 海光信息技术股份有限公司 虚拟机脏页获取方法、装置、电子设备及可读存储介质
CN112306624A (zh) * 2019-07-31 2021-02-02 华为技术有限公司 一种信息处理方法、物理机和pcie设备
CN113032088A (zh) * 2019-12-25 2021-06-25 阿里巴巴集团控股有限公司 脏页记录方法、装置、电子设备及计算机可读介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9733980B1 (en) * 2014-12-05 2017-08-15 Amazon Technologies, Inc. Virtual machine management using I/O device logging
US20190050228A1 (en) * 2018-06-26 2019-02-14 Vinodh Gopal Atomic instructions for copy-xor of data
CN110188051A (zh) * 2019-02-22 2019-08-30 成都海光集成电路设计有限公司 标记与物理地址相关的控制信息的方法、处理系统和设备
CN112306624A (zh) * 2019-07-31 2021-02-02 华为技术有限公司 一种信息处理方法、物理机和pcie设备
CN113032088A (zh) * 2019-12-25 2021-06-25 阿里巴巴集团控股有限公司 脏页记录方法、装置、电子设备及计算机可读介质
CN111580933A (zh) * 2020-05-12 2020-08-25 西安交通大学 一种基于硬件加速的虚拟机在线迁移方法
CN112099905A (zh) * 2020-08-26 2020-12-18 海光信息技术股份有限公司 虚拟机脏页获取方法、装置、电子设备及可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
TIANZHANG HE: ""Performance evaluation of live virtual machine migration in SDN-enabled cloud data centers"", 《JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING》, vol. 131, pages 55 - 68 *
YOOOOOOO: ""深入理解Linux内核之脏页跟踪"", pages 1 - 4, Retrieved from the Internet <URL:《https://www.cnblogs.com/linhaostudy/p/15678371.html》> *
任文文: ""面向云计算的Xen虚拟机动态迁移研究及改进"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2014, pages 137 - 7 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117539797A (zh) * 2024-01-10 2024-02-09 深圳星云智联科技有限公司 一种脏页记录方法及相关设备
CN117539797B (zh) * 2024-01-10 2024-04-19 深圳星云智联科技有限公司 一种脏页记录方法及相关设备

Also Published As

Publication number Publication date
CN115586943B (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
CN109983449B (zh) 数据处理的方法和存储系统
US20190220418A1 (en) Memory Management Method and Apparatus
CN112948318B (zh) 一种Linux操作系统下基于RDMA的数据传输方法及装置
US11656779B2 (en) Computing system and method for sharing device memories of different computing devices
CN105518631B (zh) 内存管理方法、装置和系统、以及片上网络
CN113641596B (zh) 缓存管理方法、缓存管理装置、处理器
US11989588B2 (en) Shared memory management method and device
WO2024036985A1 (zh) 存储系统及其计算存储处理器、固体硬盘和数据读写方法
WO2024099448A1 (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
US20240289275A1 (en) Data processing method and apparatus, and cache, processor and electronic device
CN116383101A (zh) 内存访问方法、内存管理单元、芯片、设备和存储介质
US20240241644A1 (en) Storage device and storage system
CN115586943B (zh) 一种智能网卡虚拟机脏页的硬件标记实现方法
CN110162395B (zh) 一种内存分配的方法及装置
CN115811509A (zh) 一种总线通信方法及相关设备
CN116755635B (zh) 一种硬盘控制器缓存系统、方法、硬盘设备及电子设备
CN116775560B (zh) 写分配方法、缓存系统、片上系统、电子组件及电子设备
CN113297105A (zh) 一种转换地址的缓存处理方法及装置
CN115543222A (zh) 一种存储优化方法、系统、设备及可读存储介质
JP2018515859A (ja) ファイルにアクセスするための方法および装置、ならびに記憶システム
CN116303125B (zh) 请求调度方法、缓存、装置、计算机设备及存储介质
WO2023241655A1 (zh) 数据处理方法、装置、电子设备以及计算机可读存储介质
CN112003860B (zh) 适用于远程直接内存访问的内存管理方法、系统及介质
WO2022126534A1 (zh) 数据处理方法及相关设备
US20240103897A1 (en) Diversified virtual 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