intel_powerclamp:启动/停止强制空闲注入

10 performance nvidia unity intel

我真的不知道它是什么时候开始的,我刚刚从 13.10 升级到 14.04 并且即将对图形性能做一些事情(unity 感觉很慢)。这种情况已经持续了 6 个月,我一直在关注 sli 配置中出现问题的 nvidia 专有驱动程序......我对 nvidia、unity 非常生气,我正准备去做一些与 unity 相关的事情,只是去获得平稳的环境。 .

然后我发现在我杀死 ubuntu/unity 之前不到一个小时......

它与 intel_pstate 相关...

我只是注意到,登录后的表现非常棒...... cpu 和 gpu ......就像一个梦......然后在 cca 10 秒后它们下降并且情况变得丑陋......我追逐低谷日志并在系统日志中发现它似乎与此行相关:

Apr 28 21:29:41 b4da55 kernel: [ 83.861621] intel_powerclamp: Start idle injection to reduce power
Run Code Online (Sandbox Code Playgroud)

这条线之后表演就没了。我在写这篇文章时遇到的这个会话有点不同......我在谷歌上寻找如何调整或禁用这个空闲注入(至少在我使用交流电而不是电池时)以获得最大性能但是什么都没有......然后它自己发生了,在系统日志中弹出这一行:

Apr 28 21:46:03 b4da55 kernel: [  362.386585] intel_powerclamp: Stop forced idle injection
Run Code Online (Sandbox Code Playgroud)

我不知道是什么导致了它......但现在它就像一个魅力!它是如此流畅......我不敢相信......我猜它渲染的速度超过100fps......我启用了摆动窗口效果并玩得很开心...... htop显示出更低的cpu使用率,而我没有做任何事情。 ..

有人能告诉我如何控制这种空闲注射吗?

uli*_*tko 11

警告:检查您的 CPU 温度。在我的系统上,空闲注入仅在事情变热时才开始。操作系统保护硬件免于过热。

参见intel_powerclamp 手册。它有“用法和接口”部分,描述了如何控制它。

TL;DR sudo rmmod intel_powerclamp,但你已经被警告过。

更温和的手段来控制事物的存在。

首先,定位与功耗控制回路对应的抽象“热器件” :

# grep -l intel_powerclamp /sys/class/thermal/cooling_device*/type
/sys/class/thermal/cooling_device11/type

# cd /sys/class/thermal/cooling_device11
Run Code Online (Sandbox Code Playgroud)

现在,可以调整控制回路的“减速”百分比:

# echo 25 > cur_state
Run Code Online (Sandbox Code Playgroud)

可以在那里设置 0。不允许超过 50 的百分比。


如果有人想出一个小程序来轻松控制这个装置(即,如果有人添加了明显需要的一般用户控件),也许带有规则(交流电/电池,一天中的时间,屏幕空闲等),那就太好了。


小智 5

在运行的系统中,你可以去掉intel_powerclamp

sudo rmmod intel_powerclamp
Run Code Online (Sandbox Code Playgroud)

要永久禁用它并完全禁止加载它,还可以执行以下操作:

cd /etc/modprobe.d
sudo su
echo install intel_powerclamp /bin/true  >intel_powerclamp.conf
Run Code Online (Sandbox Code Playgroud)

然后重启后就不会再出现了。