cpu频率在C中扩展linux API

时间:2012-07-31 00:07:44

标签: linux api arm frequency

我想在linux(Ubuntu)的程序中更改cpu(ARM)频率。

是否存在cpu频率缩放并关闭C中的核心API?

如果有,API可以处理多核cpu中的每个核心?

2 个答案:

答案 0 :(得分:4)

有几种方法可以控制Linux中的频率。您可以使用IA32_PERF_CTL寄存器设置支持的Intel处理器的电源状态。但是,您可以使用通过sysfs文件系统导出的cpufreq接口,该接口不仅支持Intel CPU。

您可以在/ sys / devices / system / cpu / cpuX / *中查看可能更改的参数。这里有几个提示:

关闭频率调整是通过调控器完成的,调控器处理处理器处于不同状态的策略。例如,要获得完整的表现,请执行以下操作:

echo performance > /sys/devices/system/cpu/cpuX/cpufreq/scaling_governor

有多个州长,你可以在这里看到:

cat /sys/devices/system/cpu/cpuX/cpufreq/scaling_available_governors

因为通过文件系统界面访问它很麻烦。您可以使用libudev访问cpufreqs成员。有关教程,请参阅udev documentationhere

分别处理每个核心的一个限制。这取决于CPU的支持。有时,两个或多个内核必须以相同的频率运行,这是硬件的简单限制。有关答案,请参阅此post

答案 1 :(得分:0)

您可能必须使用/sys/proc/文件系统,并在其下面写入一些文件,例如也许在/sys/devices/system/cpu/

之下

我会研究cpufreq-setdynamic frequency scaling

的看法

BTW,您可以使用system(3) cpufreq-set命令进行分叉。

(我不知道ARM处理器在这些方面的特殊性)