C语言中的cpu频率缩放linux API

  

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

C中是否有任何cpu频率缩放和关闭核心API?

该API是否可以处理多核CPU中的每个核心?

解决方法:

在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 documentation和here.

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

相关文章