1.Linux中超频及cpufreq相关汇总

来源:互联网 发布:dc元数据 编辑:程序博客网 时间:2024/06/11 01:02

1.蛤蟆笔记UNIX高级编程——cpufreq相关汇总

其中一些内容摘自网络,此处蛤蟆根据自己阅读习惯和理解进行了一些汇总整理。

随着 energyefficient computing 和 performance per watt 等概念的推广以及高级配置与电源接口ACPI(Advanced Configuration and Power Interface)标准的发展,目前市场上的主流 CPU 都提供了对变频(frequency scaling)技术的支持。例如Intel®处理器所支持的 Enhanced SpeedStep® 技术和 AMD® 处理器所支持的 PowerNow! ® 技术,另外像最新的 PowerPC®、ARM®、SPARC® 和 SuperH® 等处理器中也提供了类似的支持。

超频是指通过提高核心电压等手段让处理器工作在非标准频率下的行为,这往往会造成 CPU 使用寿命缩短以及系统稳定性下降等严重后果。

变频技术是指CPU硬件本身支持在不同的频率下运行,系统在运行过程中可以根据随时可能发生变化的系统负载情况动态在这些不同的运行频率之间进行切换,从而达到对性能和功耗做到二者兼顾的目的。

多个处理器生产厂家都提供了对变频技术的支持,但是其硬件实现和使用方法必然存在着细微甚至巨大的差别。这就使得每个处理器生产厂家都需要按照其特殊的硬件实现和使用方法向内核中添加代码,从而让自己产品中的变频技术在 Linux 中得到支持和使用。然而,这种内核开发模式所导致的后果是各个厂家的实现代码散落在 Linux 内核代码树的各个角落里,各种不同的实现之间没有任何代码是共享的,这给内核的维护以及将来添加对新的产品的支持都带来了巨大的开销,并直接导致了 cpufreq 内核子系统的诞生。

1. Cpufreq的软件结构

图1:


 内核中的 cpufreq 子系统通过 sysfs 文件系统向上层应用提供了用户接口,对于系统中的每一个 CPU 而言,其 cpufreq 的 sysfs 用户接口位于 /sys/devices/system/cpu/cpuX/cpufreq/ 目录下,其中 X 代表 processorid ,与 /proc/cpuinfo 中的信息相对应。

红帽7.0

以后

[root@OEL cpufreq]# pwd

/sys/devices/system/cpu/cpufreq

该目录下为空了

不存在scaling_governor一类的文件

这是因为:Linux内核对CPU的工作频率管理,已经跟不上现代的CPU的需求,无法在效能与省电取得平衡,所以intel自己写了一段内核代码,Intel_pstate。

启动参数设置如下:

intel_pstat=enablemax_perf_pct=100

然后执行如下:

#cpupowerfrequency-set -g powersave
# cpupower frequency-set -g performance

intel_pstate只有两种,powersave与performance
可以直接执行如下:

[root@OEL cpu]# x86_energy_perf_policy -v 'performance'

CPUID.06H.ECX: 0x9

cpu0  msr0x1b00x0000000000000000 -> 0x0000000000000000

 

 

 

 

 

 

 

原创粉丝点击