是否可以设置linux下ACPI中cpu的休眠状态,如设置使cpu处于c3状态,...

是否可以设置linux下ACPI中cpu的休眠状态,如设置使cpu处于c3状态,...,第1张

FreeBSD里面可以通过修改下面配置文件:

/etc/rc.conf:

powerd_enable="YES"

powerd_flags="-a adaptive -b adaptive"

economy_cx_lowest="C3"

performance_cx_lowest="C3"

笔记本的处理器频率,若使用电池,则可对最高频率做适当限制,以达到省电目的;若插入移动电源,则可以解除限制,让处理器能够在其最高频率上运行,以提高性能——这是最基本的电源管理策略。

然而,我的ThinkPad X200却不走寻常路,故意和我对着干。X200搭载Intel Core 2 Duo P8600 双核处理器,设计最高主频为2.40GHz。在使用“performance”调控器(governor),并尽可能将调控器最高频率设为最大值的情况下:

这也太奇怪了吧,笔记本居然会在插电时降频!尽管插电后电量多到用不完,毫无费电之虞,笔记本却仍然认为应该省电;而使用电池时,笔记本却根本不管这些,允许CPU达到最大频率。什么逻辑!

起初,我以为是BIOS中的节能控制设置不当。有一个设置是Intel SpeedStep Technology,这是英特尔的处理器电源管理功能。我尝试将其中针对AC适配器和电池的策略设置为相同的值,结果重启后问题如故;而关闭该功能后,Linux管理CPU频率的 acpi-cpufreq 驱动直接失效,不可行。后来,我又尝试将PCI和PCI-E的省电功能关闭,问题同样如故。

看来,不能靠更改BIOS设置来解决插电降频的问题,只能从系统层面入手了。会不会跟内核有关?对此,我尝试了不同的内核版本,以及使用OpenSUSE安装盘的Shell进行测试,运行以下命令设置调节器为 performance ,读取调控器最大频率(须在Root用户下测试):

结果,插电后仍然降频。由此可排除内核版本和 *** 作系统的问题。

那么,问题到底出在哪里呢?

在Linux中,控制处理器频率的目录是 /sys/devices/system/cpu/cpu*/cpufreq (星号为处理器核心编号),其中包含一系列节点,用于读取或设置处理器频率的参数。主要包括:

注意其中的 bios_limit ,它反映的是BIOS所提供的频率限制值。在本文开头的条件下,使用电池时,其中的值为2400000,而插上电源后该值立刻降到1600000。由此不难得知,是BIOS在限制CPU的频率,X200的BIOS对处理器频率的调控策略简直是弱智!

那么,有什么办法可以打破限制?的确是可以的,Linux系统可以忽略 bios_limit 中BIOS所提供的不合理限制值,让用户可以自由设置理想的频率,使处理器性能的发挥重回正轨。

具体的做法是,调节内核当中的一个参数—— ignore_ppc ,将其值设为1,表示忽略BIOS频率限制:

设置即时生效。这时再插入电源适配器,即可发现频率再也不会被限制在1.6GHz下了。

若要使该设置在每次重启后都能自动应用,可以更改启动配置文件 /etc/default/grub 。在root权限下打开它,找到 GRUB_CMDLINE_LINUX_DEFAULT ,将 processor.ignore_ppc=1 加在值的后面,就像这样:

最后运行

更新启动参数,重启即可生效。

到此,插电降频问题彻底解决,终于可以愉快地享用了!

如果你的CPU支持VT虚拟化,则会在flags里面显示vmx,如下所示:

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm 

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

当然光CPU支持VT虚拟化还不够的,还需要在bios里面将VT-X或VT-D选项打开才能真正使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7332597.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存