如何设置intel_idle.max_cstate = 1

如何将intel idle max cstate设置为1,如何检查它何时完成。 由于海湾轨道核心,我有一个冻结问题。

我尝试了内核4.5 4.1.12 4.4但冻结问题仍然存在。 目前4.4是我的内核版本。

如果使用GRUB:

使用sudo ,编辑/etc/default/grub并编辑GRUB_CMDLINE_LINUX_DEFAULT行,将intel_idle.max_cstate=1添加到可能存在的任何内容中。 保存文件后运行sudo update-grub ,然后重新启动。 建议您先保存原始grub文件的副本。

要检查你的cstate是否超过1,请使用turbostat(包:linux-tools-common)。

示例( GRUB_CMDLINE_LINUX_DEFAULT上已存在某些GRUB_CMDLINE_LINUX_DEFAULT ):

之前(编辑):

 $ sudo turbostat -S --debug sleep 10 Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 PkgWatt CorWatt GFXWatt 1 0.04 1654 3411 0 0.12 0.03 99.82 0.00 29 29 0.07 0.03 99.51 3.85 0.20 0.23 10.001629 sec 

进行更改(使用我的方法进行配置控制):

 ~/config/etc/default$ cp /etc/default/grub ./ ~/config/etc/default$ cp grub grub.original ~/config/etc/default$ nano grub 

改变这个:

 GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1" 

对此:

 GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_idle.max_cstate=1" 

并更新:

 ~/config/etc/default$ sudo cp grub /etc/default ~/config/etc/default$ sudo update-grub ~/config/etc/default$ sudo reboot -r now 

现在检查(编辑):

 $ sudo turbostat -S --debug sleep 10 Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 PkgWatt CorWatt GFXWatt 0 0.02 1920 3411 0 99.98 0.00 0.00 0.00 39 39 0.00 0.00 0.00 10.49 6.66 0.23 10.001079 sec 

您还应该在dmesgvar/log/kern.log (已编辑)中看到这些消息:

 ~$ dmesg | grep intel_idle [ 1.019709] intel_idle: max_cstate 1 reached $ grep intel_idle /var/log/kern.log Mar 23 08:10:32 s15 kernel: [ 1.019709] intel_idle: max_cstate 1 reached 

在与linux和我的asrock Q2900有相同的冻结问题之后,我在德国IT网站上找到了英特尔提供的解决方案/解决方法。 ( https://www.golem.de/news/intel-einfrieren-bei-intels-bay-trail-socs-durch-patch-abgefedert-1609-123546.html)Bay-Trail-SoC存在一般性问题来自英特尔。 补丁的链接: https : //bugzilla.kernel.org/attachment.cgi?id = 223851

更多信息:此补丁/脚本确实获得省电模式。 上面的主题解决方案确实删除了这种模式。

编辑/ etc / defaults / grub:

 GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=1" 

 update-grub shutdown -r now