如何设置 intel_idle.max_cstate=1

Oza*_*mel 14 intel idle

如何将 intel idle max cstate 设置为 1 以及如何检查何时完成。由于 bay trail 核心,我遇到了冻结问题。

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

Dou*_*ies 24

如果使用 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):

之前(已编辑):

$ 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
Run Code Online (Sandbox Code Playgroud)

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

~/config/etc/default$ cp /etc/default/grub ./
~/config/etc/default$ cp grub grub.original
~/config/etc/default$ nano grub
Run Code Online (Sandbox Code Playgroud)

改变这个:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
Run Code Online (Sandbox Code Playgroud)

对此:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_idle.max_cstate=1"
Run Code Online (Sandbox Code Playgroud)

并更新:

~/config/etc/default$ sudo cp grub /etc/default
~/config/etc/default$ sudo update-grub
~/config/etc/default$ sudo reboot -r now
Run Code Online (Sandbox Code Playgroud)

现在检查(编辑):

$ 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
Run Code Online (Sandbox Code Playgroud)

您还应该在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
Run Code Online (Sandbox Code Playgroud)