cpufreq变频子系统

来源:互联网 发布:手机nfc写入软件 编辑:程序博客网 时间:2024/04/26 05:24

早在2.6内核之初,linux就已经开始支持变频节能技术,实现了一个cpufreq内核子系统来兼容市面上的变频CPU技术。该子系统引入了governor和driver的概念,如下图:

    

    

     cpufreq子系统实现了策略和机制分离的设计架构。

      CPU-specific drivers(又称为scaling_driver),它是具体的变频机制实现,如intel为speedstep-centrio或最新的ACPI P-states驱动;所用驱动的查看命令为:cat /sys/devices/system/cpu/cpuXXX/cpufreq/scaling_driver

 

     governor是一个CPU平台无关的管理层,实现一个CPU频率策略选择,在内核中共实现了5种,当前使用的情况,可通过如下命令查看: 

        cat /sys/devices/system/cpu/cpu<n>/cpufreq/scaling_governor

     

    可在menuconfig中配置:CONFIG_CPU_FREQ,CONFIG_CPU_FREQ_GOV_PERFORMANCE, CONFIG_CPU_FREQ_GOV_POWERSAVE, CONFIG_CPU_FREQ_GOV_USERSPACE, CONFIG_CPU_FREQ_GOV_ONDEMAND, CONFIG_CPU_FREQ_GOV_CONSERVATIVE来选择是否开启cpufreq模块,以及选择何种governor,当然也可以根据自己的CPU来选择相应的scaling driver.

 

a. /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq实现的是当前cpu的运行频率,开启变频功能的时候可能会不停的变,其值是通过scaling_driver直接读写CPU的频率寄存器,在intel的xeon上是读取MSR_IA32_PERF_STATUS寄存器获得的

b./sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq是governor使用的频率即决策出来的频率,最终需要调用scaling driver来设置它为CPU实际的工作频率,因此与cpuinfo_cur_freq存在一个时间差,但最终是同一个值

c./proc/cpuinfo中显示的频率值和scaling_cur_freq是一致的

 

内核编译阶段可以选择系统默认的governor,也可在linux shell下动态设置当前的governor为performance(每个CPU都需要设置),这样每个核都会稳定工作在最高频率:

echo performance > /sys/devices/system/cpu/cpu<n>/cpufreq/scaling_governor (n0到N-1,N为系统中的CPU个数);比如在某些支持TurboMode技术的Intel处理器上选择这个governor可以进一步提高性能。

 

如果想设定某一个中间的固定频率可以选用userspace的governor:
1)echo userspace > /sys/devices/system/cpu/cpu<n>/cpufreq/scaling_governor(所有CPU都要改)。

2) 1)步骤完成后,在cpufreq下会出现一个scaling_setspeed,直接把频率echo进去就可以了(所有CPU都要改)。
  cat  /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies,可以查看可支持的频率。

    userspace一般配合用户态daemon程序使用,如上图中的cpuspeed程序,可以根据cpu的当前使用率来动态调整cpu的当前频率(userspace可通过scaling_setspeed文件设置),试图达到最高的performance/watt。

 

    同一时间不同核的频率CPU硬件会保证是相同的,变频功能的开启除了内核配置外,还需要BIOS开启变频选项。

 

    当出现性能较差问题而百思不得其解的时候,你可以关注一下cpufreq,或许就是你的问题原因所在。

http://blog.chinaunix.net/uid-7295895-id-3076467.html
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 生过孩子后掉头发严重怎么办 孩孑16岁了高中没考上怎么办 小孩的嘴巴里有点点该怎么办 小孩从出生哭笑嘴巴有点歪怎么办 儿童耳朵受伤后嘴巴歪了怎么办 手机锁屏图案忘了怎么办求解锁 忘给仓鼠买吃的了怎么办 两岁宝宝不爱吃饭只喝奶粉怎么办 下载百度云压缩包要提取密码怎么办 微信表情包图片过大无法添加怎么办 管理员吧群员全部踢了群主怎么办 微信笑脸表情斗图文字没有了怎么办 钨珠钢笔头用完笔墨了怎么办 暴走大事件被禁六一红鼻子节怎么办 弯腰推东西把腰闪了怎么办 怀孕初期弯腰捡东西腰不舒服怎么办 突然弯腰捡东西腰闪了怎么办 跑步机上的磁铁掉了怎么办 微信解封辅助申诉信息不一致怎么办 穿越火线进游戏字体变小了怎么办 微信登录显示版本过低登不上怎么办 手机显示主题版本过低不能用怎么办 杨豹平全民k歌qq登不上去怎么办 画画时桌面会有许多橡皮渣怎么办 瑜伽体式小人图大全不会画怎么办 微信公众号的字体变得不认识怎么办 三菱按动笔摔了一下断墨怎么办 员工工作一星期不到不给工资怎么办 毕业后报到证一直没去报道怎么办 一直做会计助理学不到东西怎么办 玩守望先锋人物模型没刷出来怎么办 不小心点击拔打黑客lD视频怎么办 套得太深散户都不卖庄家怎么办 黑色衣领掉色在白衣服上怎么办 电脑缝纫界下线切的短怎么办 喝完酒第二天恶心想吐怎么办 纸上怎么办画5种标准眉 电脑密码忘了怎么办最简单的方法 宿舍六个人有一个不想安空调怎么办 绝地求生开在了进游戏的页面怎么办 桃树树根有很大一个洞怎么办啊