一种关闭LinuxOS下IntelCPU节能模式的方法

文档序号:8412362阅读:2512来源:国知局
一种关闭Linux OS下Intel CPU节能模式的方法
【技术领域】
[0001]本发明涉及服务器系统的开发与测试领域,具体涉及一种关闭Linux OS下IntelCPU节能模式的方法,从而可以降低程序执行延迟,提升系统整体性能。
【背景技术】
[0002]随着X86服务器的快速发展,Intel至强服务器处理器应用也越来越广泛,其功能及性能也在不断应和着摩尔定律持续提升。然而性能提升必然的结果就是处理器功耗的不断攀升,用户在关注CPU处理性能的同时也在关注CPU的功耗。Intel CPU为了满足不同用户的需求,提供了两种方式可以降低CPU的功耗,一种是当CPU没有太多任务要处理时,通过降低CPU频率来降低功耗,即CPU的P-States ;另一种是当CPU空闲时,通过让CPU进入节能模式来降低功耗,即CPU的C-States。
[0003]当CPU进入C-States后会明显的降低CPU的功耗,但当OS有任务要执行时,CPU需要花费时间来退出节能状态。CPU进入的C-States越深,节能效果越好,同时CPU退出节能状态进入正常运行状态的时间也就越长。对于普通用户来讲,CPU的这种节能模式是非常好的,即可以在任务少时降低系统功耗,又能在有任务时自动退出节能模式进入正常工作模式。但是对于某些特别关注系统性能、要求最低延迟的业务系统来说,这种CPU节能模式是不利的。这时就会要求可以方便的把CPU的节能模式彻底关掉,让CPU —直处于正常工作状态。
[0004]一般情况下服务器系统的B1S都在其Setup界面里面提供了用来Enable/Disable C-States的选项。但是该选项是用来通知ACPI代码的(目前几乎所有类型的OS都是支持ACPI规范的),OS —般会根据ACPI的代码来决定是否Enable或Disable CPU的C-States,即B1S是通过ACPI来通知OS当前用户是否要Enable/Disable C-States0对于Windows OS来讲,因为它是完全遵循ACPI规范的,如果B1S Setup里面的C-States选项是Disabled,则Windows OS就会在OS里面禁止CPU进入C-States节能状态。但是在Linux OS里面并不完全遵循这一规则。在Linux OS里面有一个叫做“intel_idle”的driver,它会忽略B1S里面对CPU C-States的控制策略,直接控制CPU的C-States开关状态。这样就造成了用户即使在B1S Setup里面把CPU C-States设置为了 Disabled,但是在Linux OS下CPU C-States还是正常工作的。

【发明内容】

[0005]本发明要解决的技术问题是:为了解决在Linux下不方便关闭CPU C-States节能模式的问题,本发明可以通过修改B1S选项的方法方便的解决这一问题。而且由于B1S是可以批量刷新的,所以该发明方法不仅适用于数量较少的服务器还可以适用于服务器数量较大的数据中心或服务器集群。
[0006]本发明所采用的技术方案为:
一种关闭Linux OS下Intel CPU节能模式的方法,所述方法通过关闭Intel CPU支持MWAIT指令的方式,阻止CPU进入节能模式。
[0007]CPU 进行 C-States 的切换(C-States —般包括 CO、C1E、C2、C3、C6 等状态,CO 状态是CPU的正常工作状态),是通过特定的CPU指令Mwait来实现的。当OS监测到一段时间内没有可执行的指令时,就会通过Mwait指令请求CPU进入一个特定的C-State状态,如C6状态。当OS检测到有任务需要执行时,就会请求CPU进入CO状态,即正常工作状态。
[0008]在Intel Xeon CPU 的内部的一个叫 MSR OxlAO (IA32_MISC_ENABLES)的寄存器,将该寄存器的Bitl8的值设为0,CPU就不再支持Mwait指令,Linux OS内的“intel_ilde” driver也就不再工作了。
[0009]所述方法的操作流程如下:
(1)在服务器B1S中添加代码用来创建一个Setup选项,当该Setup选项设为Disable时,将CPU寄存器MSR OxlAO的Bitl8设置为O ;
(2)把具有该选项的B1S文件刷入到目标服务器中;
(3)用户在LinuxOS下运行高性能、低延迟的业务程序时,进入B1S Setup内把该选项设置Disable,然后保存重启。
[0010]此时在Linux OS下CPU就不会进入节能模式了。
[0011]本发明的有益效果为:本发明可以实现通过修改B1S选项的方法方便的解决Linux OS下关闭CPU节能模式的问题。而且由于B1S是可以批量刷新的,所以该发明方法不仅适用于数量较少的服务器还可以适用于服务器数量较大的数据中心或服务器集群。
【具体实施方式】
[0012]下面通过【具体实施方式】对本发明进一步说明:
实施例1:
一种关闭Linux OS下Intel CPU节能模式的方法,所述方法通过关闭Intel CPU支持MWAIT指令的方式,阻止CPU进入节能模式。
[0013]CPU 进行 C-States 的切换(C-States —般包括 CO、C1E、C2、C3、C6 等状态,CO 状态是CPU的正常工作状态),是通过特定的CPU指令Mwait来实现的。当OS监测到一段时间内没有可执行的指令时,就会通过Mwait指令请求CPU进入一个特定的C-State状态,如C6状态。当OS检测到有任务需要执行时,就会请求CPU进入CO状态,即正常工作状态。
[0014]让CPU不能执行Mwait指令,Linux OS内的“ intel_ilde” driver也就不再工作了。
[0015]实施例2:
在实施例1的基础上,本实施例在Intel Xeon CPU的内部的一个叫MSR OxlAO (IA32_MISC_ENABLES)的寄存器,将该寄存器的Bitl8的值设为0,CPU就不再支持Mwait指令,Linux OS 内的 “ intel_iIde” driver 也就不再工作了。
[0016]实施例3:
在实施例2的基础上,本实施例所述方法的操作流程如下:
(1)在服务器B1S中添加代码用来创建一个Setup选项,比如叫做“Monitor/MwaitSupport”,当该Setup选项设为Disable时,将CPU寄存器MSR OxlAO的Bitl8设置为O ;
(2)把具有该选项的B1S文件刷入到目标服务器中; (3)用户在Linux OS下运行高性能、低延迟的业务程序时,进入B1S Setup内把该选项 “Monitor/Mwait Support” 设置 Disable,然后保存重启。
[0017]此时在Linux OS下CPU就不会进入节能模式了。
[0018]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【主权项】
1.一种关闭Linux OS下Intel CPU节能模式的方法,其特征在于:所述方法通过关闭Intel CPU支持MWAIT指令的方式,阻止CPU进入节能模式。
2.根据权利要求1所述的一种关闭LinuxOS下Intel CPU节能模式的方法,其特征在于:在Intel Xeon CPU的内部的一个叫MSR OxlAO的寄存器,将该寄存器的Bitl8的值设为0,CPU就不再支持Mwait指令。
3.根据权利要求2所述的一种关闭LinuxOS下Intel CPU节能模式的方法,其特征在于,所述方法的操作流程如下: 1)在服务器B1S中添加代码用来创建一个Setup选项,当该Setup选项设为Disable时,将CPU寄存器MSR OxlAO的Bitl8设置为O ; 2)把具有该选项的B1S文件刷入到目标服务器中; 3)进入B1SSetup内把该选项设置Disable,然后保存重启。
【专利摘要】本发明公开了一种关闭Linux OS下Intel CPU节能模式的方法,所述方法通过关闭Intel CPU支持MWAIT指令的方式,阻止CPU进入节能模式。在Intel Xeon CPU的内部的一个叫MSR 0x1A0的寄存器,将该寄存器的Bit18的值设为0,CPU就不再支持Mwait指令。本发明可以实现通过修改BIOS选项的方法方便的解决Linux OS下关闭CPU节能模式的问题。而且由于BIOS是可以批量刷新的,所以该发明方法不仅适用于数量较少的服务器还可以适用于服务器数量较大的数据中心或服务器集群。
【IPC分类】G06F9-445
【公开号】CN104731616
【申请号】CN201510132063
【发明人】刘冰
【申请人】浪潮集团有限公司
【公开日】2015年6月24日
【申请日】2015年3月25日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1