一种内存管理方法及设备技术

技术编号:9462761 阅读:86 留言:0更新日期:2013-12-18 23:57
本发明专利技术的实施例公开了一种内存管理方法及设备,涉及计算机领域,能够解决对设备直通技术占用的内存造成非法访问和DMA数据被覆盖的问题。该方法包括:主机设备根据物理内存分配申请为DMA设备分配物理内存,将为DMA设备分配的物理内存标记为DMA物理内存,将为DMA设备分配的物理内存的地址转换为第一机器内存地址,并将第一机器内存地址对应的机器内存标记为DMA机器内存。本发明专利技术用于内存管理。

【技术实现步骤摘要】
【专利摘要】本专利技术的实施例公开了一种内存管理方法及设备,涉及计算机领域,能够解决对设备直通技术占用的内存造成非法访问和DMA数据被覆盖的问题。该方法包括:主机设备根据物理内存分配申请为DMA设备分配物理内存,将为DMA设备分配的物理内存标记为DMA物理内存,将为DMA设备分配的物理内存的地址转换为第一机器内存地址,并将第一机器内存地址对应的机器内存标记为DMA机器内存。本专利技术用于内存管理。【专利说明】一种内存管理方法及设备
本专利技术涉及计算机领域,尤其涉及一种内存管理方法及设备。
技术介绍
随着计算机的快速发展,越来越多的应用被部署到虚拟机上,这就对虚拟机的IO(Input and Output,输入和输出)性能有了更高的要求。虚拟化内存页交换技术:在VMM (Virtual Machine Monitor,虚拟化平台)上,由虚拟化层为虚拟机分配内存。虚拟化层管理的真实的内存称为机器内存,虚拟机管理的内存称为物理内存,虚拟机内进程管理的内存称为虚拟内存。内存虚拟化一般指虚拟化层实现机器内存与物理内存之间对应关系的管理。为了提高内存复用率,虚拟化层会采用内存页交换机制,具体的说就是将机器内存上的部分内容保存到磁盘上,将该部分机器内存暂时用作其他用途,当需要使用原有内容时,通过缺页中断将磁盘上的数据重新导入回机器内存。内存页交换技术可以实现机器内存的超分配,提升了单服务器上的虚拟机密度。设备直通技术:DMA (Direct Memory Access,直接内存存取)设备直接与计算机内存进行数据传输,实现了 DMA设备直接访问虚拟机内存,缩短了数据传输路径。不仅提升了虚拟机的IO性能,也降低了 CPU (Central Processing Unit,中央处理器)的负载压力。但是,内存交换技术通过CPU访问内存页时触发缺页错误来避免访问非法内存,而现有的设备直通技术,无法正常触发和处理缺页中断,在使用内存页交换技术时,会出现对设备直通技术占用的内存造成非法访问和DMA数据被覆盖的问题,这使得虚拟化技术在同时实现虚拟机10性能的提升及虚拟机密度的增加时受到限制。
技术实现思路
本专利技术的实施例提供了一种内存管理方法及设备,能够解决对设备直通技术占用的内存造成非法访问和DMA数据被覆盖的问题。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术的实施例提供一种内存管理方法,包括:主机设备根据物理内存分配申请为直接内存存取DMA设备分配物理内存;所述主机设备将为所述DMA设备分配的所述物理内存标记为DMA物理内存;具体的,所述主机设备利用虚拟化平台VMM接口将为所述DMA设备分配的所述物理内存标记为DMA物理内存;所述主机设备将为所述DMA设备分配的所述物理内存的地址转换为第一机器内存地址;所述主机设备将所述第一机器内存地址对应的机器内存标记为DMA机器内存。结合第一方面,在第一种可能的实现方式中,所述所述主机设备将所述第一机器内存地址对应的机器内存标记为DMA机器内存之后,还包括:所述主机设备将非DMA机器内存交换到硬盘。结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述所述主机设备将所述第一机器内存地址对应的机器内存标记为DMA机器内存之后,还包括:所述主机设备根据物理内存释放申请释放为所述DMA设备分配的所述物理内存;所述主机设备将释放的物理内存标记为非DMA物理内存;所述主机设备将所述释放的物理内存的地址转换为第二机器内存地址;所述主机设备将所述第二机器内存地址对应的机器内存标记为非DMA机器内存;其中,所述第一内存地址是为DMA设备分配的DMA物理内存地址对应的机器内存地址;所述第二机器内存地址为DMA物理内存地址释放为非DMA物理内存地址后对应的机器内存地址。第二方面,本专利技术的实施例提供了一种主机设备,包括至少一个虚拟机及虚拟化平台VMM,所述虚拟机包括:分配单元;所述VMM包括:接口单元和分类单元;所述分配单元,用于根据物理内存分配申请为所述DMA设备分配物理内存;所述接口单元,用于将所述分配单元为所述DMA设备分配的所述物理内存标记为DMA物理内存,并将所述分配单元为所述DMA设备分配的所述物理内存的地址转换为第一机器内存地址;所述分类单元,用于获取所述接口单元转换获得的所述第一机器内存地址,并将获取的所述第一机器内存地址对应的机器内存标记为DMA机器内存。结合第二方面,在第一种可能的实现方式中,所述VMM还包括交换单元,所述交换单元,用于将非DMA机器内存交换到硬盘。结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述分配单元,还用于根据物理内存释放申请释放为所述DMA设备分配的所述物理内存;所述接口单元,还用于将所述分配单元释放的所述物理内存标记为非DMA物理内存,将所述释放的物理内存的地址转换为第二机器内存地址;所述分类单元,用于获取所述接口单元转换获得的所述第二机器内存地址,并将获取的所述第二机器内存地址对应的机器内存标记为非DMA机器内存。本专利技术的实施例提供的内存管理方法及设备,通过主机设备为DMA设备分配物理内存,将为DMA设备分配的物理内存标记为DMA物理内存,并将DMA物理内存对应的机器内存标记为DMA机器内存,这样,将DMA机器内存用于直通设备访问,将非DMA机器内存用于内存页交换,解决了对设备直通技术占用的内存造成非法访问和DMA数据被覆盖的问题,有利于使得设备直通技术和内存页交换技术兼容的实现,从而在提升虚拟机输入输出IO性能的同时能够增加单服务器上的虚拟机密度。【专利附图】【附图说明】为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,还可以根据这些附图获得其他的附图。图1为本专利技术的实施例提供的一种主机设备的结构示意图;图2为本专利技术的另一实施例提供的一种主机设备的结构示意图;图3为本专利技术的实施例提供的一种内存管理方法的流程示意图;图4为本专利技术的另一实施例提供的一种内存管理方法的流程示意图;图5为本专利技术的另一实施例提供的主机设备的硬件架构示意图;图6为本专利技术另一实施例提供的内存管理方法中内存交换的流程示意图。【具体实施方式】下面将结合本专利技术的实施例中的附图,对本专利技术的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。本专利技术的实施例提供了一种主机设备,参照图1所示,该主机设备10包括虚拟机101及VMM102,其中虚拟机101包括分配单元111,VMM102包括接口单元121及分类单元122。分配单元111,用于,根据物理内存分配申请为DMA设备分配物理内存。具体的,当有外部DMA设备需要访问虚拟机的物理内存时,主机设备生成物理内存分配申请,该物理内存分配申请为DMA设备访问所需要的物理内存大小,根据该物理内存分配申请,主机设备将分配专用于DMA设备访问的物理内存,参照图1所示,该内存分配申请可由驱动单元112根据外部直通设备的需求生成。接口单元121,用于将分配单元111为DMA设备分配的物理内存标记为DMA物理内存,并将分配单元111为DMA设备分配本文档来自技高网
...

【技术保护点】
一种内存管理的方法,其特征在于,包括:主机设备根据物理内存分配申请为直接内存存取DMA设备分配物理内存;所述主机设备将为所述DMA设备分配的所述物理内存标记为DMA物理内存;所述主机设备将为所述DMA设备分配的所述物理内存的地址转换为第一机器内存地址;所述主机设备将所述第一机器内存地址对应的机器内存标记为DMA机器内存。

【技术特征摘要】

【专利技术属性】
技术研发人员:顾嘉辉刘永安
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1