kidle_inject使用cpu power没有明显的原因

我在i5-3250M,6GB RAM戴尔Inspiron笔记本电脑上使用ubuntu 14.04 LTS。 我从cpu使用情况监视器一直注意到我的CPU使用率很高(没有使用真正密集的东西)而且会导致过热。

我从系统监视器检查,起初看起来我的显卡是问题(AMD Radeon 7670M – 带有Intel HD 4000的混合显卡)。 无论如何,我安装了fglrx-updates(唯一一个实际上解决了过热问题的方法 – fglrx和xorg没有帮助)并且事情运行得更顺畅。

我还安装了intel p-state和thermald。 把它放在powersave调速器上,但仍然没有运气。 还安装了tlp(它们之间没有冲突)。

试图查看故障是来自compiz还是adobe-flash。 没运气。 此外,HTML5稍微使用了很多CPU,并且它在我的comp上落后了一切。

在完成所有这些之后,我查看了$ top命令的结果,罪魁祸首似乎是kidle_inject。 它每次使用50%的cpu。 我忍不住注意到它似乎有四个模块 – kidle_inject / 0到kidle_inject / 3。

那么,这个kidle_inject是什么? 我未能找到关于这个问题的确定结论。 当我使用资源密集型的东西并且在终止使用后继续占用我的CPU一两分钟时,它似乎就开始了。

我怎样才能解决这个问题,以便我的comp最终可用? 我说的是低性能使用中的最低温度为70℃。 我非常依赖linux,我想继续使用ubuntu(因为我对它的使用非常多,而且我已经喜欢它了)。

– 我不得不说这不是我机器的错。 当它在Windows 7上运行时,它在低温下运行得非常好。

因为您启用了Intel P-state(通过intel_pstate=enable ),所以您还启用了powerclamp驱动程序。 powerclamp驱动程序正在努力将处理器保持在低功耗状态,从而降低功耗,而不需要太多的冷却。

为此,它通过注入空闲时间强制CPU上的每个线程空闲一段时间。 通常,此数量为50%。 你看到的每个kidle_inject进程的50%实际上并没有导致CPU工作; 相反,它告诉CPU不要做功,从而降低功耗。 请注意,整体CPU使用率不包括kidle-inject

正如@ElderGeek指出的那样,你可以告诉驱动程序注入较少的空闲时间。 但是,我试过这个,并没有成功。 可能是内核还不支持它; 可能是powerclamp忽略了请求。

我认为这里肯定存在某种错误,因为在我的系统中,kidle_inject会在所有CPU中注入50%,因此当我运行单个线程进程时,它只会获得其运行的剩余50%的CPU。 rmmod intel_powerclamp解决了这个问题。

如果你看看温度和旅行点

 /sys/class/thermal/thermal_zone0/temp 

 /sys/class/thermal/thermal_zone0/trip_point_0_temp 

你可能会发现(正如我所做,然后发现自己在这个问题上),你的系统运行得非常热,以至于通过注入{elder-geek提到的空闲周期来管理温度。

在我的情况下,这是迄今为止最热的一天,我的粉丝失败了,但是由于这个function,我的笔记本电脑还能存活下来。

powerclamp驱动程序作为冷却设备注册到通用热层。 目前,它不受任何热区的约束。

这是我的一个系统的一个例子。

grep . /sys/class/thermal/cooling_device*/type

 /sys/class/thermal/cooling_device0/type:Fan /sys/class/thermal/cooling_device10/type:LCD /sys/class/thermal/cooling_device1/type:Fan /sys/class/thermal/cooling_device2/type:Fan /sys/class/thermal/cooling_device3/type:Fan /sys/class/thermal/cooling_device4/type:Fan /sys/class/thermal/cooling_device5/type:Processor /sys/class/thermal/cooling_device6/type:Processor /sys/class/thermal/cooling_device7/type:Processor /sys/class/thermal/cooling_device8/type:Processor /sys/class/thermal/cooling_device9/type:intel_powerclamp 

用法示例: – 注入25%的空闲时间:

sudo sh -c "echo 25 > /sys/class/thermal/cooling_device9/cur_state

来源: https : //www.kernel.org/doc/Documentation/thermal/intel_powerclamp.txt