[发明专利]一种基于X86平台的内存大页动态切换方法有效
申请号: | 201810075009.7 | 申请日: | 2018-01-25 |
公开(公告)号: | CN108182117B | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 刘长生 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 张亮 |
地址: | 450000 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 x86 平台 内存 动态 切换 方法 | ||
提出了一种基于X86平台的内存大页动态切换方法以及对应的切换系统,在系统非重启的情况下时,动态的设置当前生效的大页,实现2M大页与1G大页的动态切换,从而可以使系统根据场景的变化动态设置需要使用的大页,实现了大页切换的灵活性。
技术领域
本发明涉及信息技术领域,特别涉及一种Linux操作系统下进行内存大页动态切换的方法与系统。
背景技术
在当前的Linux系统中为默认的内存页大小为4k,但是在大容量内存系统中,4k页大小会导致访存效率较低,因此Linux系统提供了内存大页机制,在x86架构下可用的内存大页包括2M大页及1G大页。
目前x86平台的Linux系统中系统启动后默认只有2M大页会生效,如果要使用1G大页需要在系统启动项中加入相应的参数指定系统启动后生效的为1G大页并重启系统,但是2M与1G的大页无法在系统不重启的情况下进行切换。
现有的技术在系统运行过程中无法实现2M大页与1G大页的动态切换,系统默认为使用2M大页,但是由于当前的很多大容量内存的平台中使用2M的大页仍然会限制访存性能,因此当系统需要使用1G大页时需要通过设置系统启动参数来指定使用1G大页并将系统进行重启,从而影响了系统中的原有程序的运行。
发明内容
为了解决如上的技术问题,本发明提出了一种基于X86平台的内存大页动态切换方法以及对应的切换系统。本发明主要是在系统非重启的情况下时,动态的设置当前生效的大页,实现2M大页与1G大页的动态切换,从而可以使系统根据场景的变化动态设置需要使用的大页,实现了大页切换的灵活性。
其中,本发明提出了一种基于X86平台的内存大页动态切换方法,包括如下步骤:
步骤1,系统开机运行,并在系统启动过程中执行多个大页的初始化过程,所述多个大页的大小彼此不同;
步骤2,对步骤1中所述的多个大页所对应的系统文件分别执行注册使能操作;
步骤3,读取所注册使能的系统文件内容以判断出当前生效的大页;
步骤4,根据步骤3所判断出的当前生效的大页对系统参数进行设置;
步骤5,当前平台的系统基于步骤4中所设置的系统参数而选择采用对应的大页的大小执行内存页操作。
优选的,所述步骤1中的多个大页包括2M大页及1G大页;
优选的,所述步骤2中对步骤1中所述的多个大页所对应的系统文件分别执行注册使能操作,具体为:注册使能2M大页及1G大页的系统文件;
优选的,所述步骤4中系统参数为default_hstate_idx变量;
优选的,所述步骤4中根据步骤3所判断出的当前生效的大页对系统参数进行设置,具体为:读取所注册使能的系统文件内容判断当前生效的是2M大页还是1G大页,如果是2M大页则设置系统default_hstate_idx变量为0,如果是1G大页则设置系统default_hstate_idx变量为1;
对应地,本发明还提出一种基于X86平台的内存大页动态切换系统,实现在基于X86平台的主机上,该内存大页动态切换系统包括:
初始化模块:用于在系统开机运行的系统启动过程中执行多个大页的初始化过程,所述多个大页的大小彼此不同;
注册使能模块;用于对初始化模块所初始化的多个大页所对应的系统文件分别执行注册使能操作;
读取判断模块,用于读取注册使能模块所注册使能的系统文件内容以判断出当前生效的大页;
参数设置模块,用于根据读取判断模块所判断出的当前生效的大页对系统参数进行设置;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810075009.7/2.html,转载请声明来源钻瓜专利网。