C语言中的cpu频率调整linux API
我想在linux(Ubuntu)上的程序中更改cpu(ARM)频率 在C中是否存在cpu频率调整和关闭核心API的问题C语言中的cpu频率调整linux API,linux,api,arm,frequency,Linux,Api,Arm,Frequency,我想在linux(Ubuntu)上的程序中更改cpu(ARM)频率 在C中是否存在cpu频率调整和关闭核心API的问题 如果有的话,API可以处理多核cpu中的每个核心?您可能必须使用/sys和/proc/文件系统,并将其写入到一些文件中,例如/sys/devices/system/cpu/ 我会调查一下他们在做什么 顺便说一句,您可以使用system(3)acpufreq set命令进行分叉 (我不知道ARM处理器在这些方面的特点)在Linux中,有几种方法可以控制频率。您可以使用IA32_P
如果有的话,API可以处理多核cpu中的每个核心?您可能必须使用
/sys
和/proc/
文件系统,并将其写入到一些文件中,例如/sys/devices/system/cpu/
我会调查一下他们在做什么
顺便说一句,您可以使用system(3)
acpufreq set
命令进行分叉
(我不知道ARM处理器在这些方面的特点)在Linux中,有几种方法可以控制频率。您可以使用IA32_PERF_CTL寄存器设置受支持英特尔处理器的电源状态。但是,您可以使用通过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成员。有关教程,请参见和
关于单独处理每个核心的一个限制。这取决于CPU的支持。有时,两个或多个内核必须以相同的频率运行,这是硬件的一个简单限制。请参阅此以获取答案。我不明白为什么通过sysfs更改频率会很麻烦。在这里使用libudev库有什么好处。