cpu 动态调频之(频率范围,频率设置)

一、应用态参数介绍

/sys/devices/system/cpu/cpu0/cpufreq/
affected_cpus //当前策略作用于哪些online core
cpuinfo_cur_freq //当前CPU硬件频率
cpuinfo_max_freq //CPU硬件支持的最低频率
cpuinfo_min_freq //CPU硬件支持的最高频率
cpuinfo_transition_latency //硬件支持的切换频率最小间隔
related_cpus //online和offline core
scaling_available_frequencies //软件支持的频率列表
scaling_available_governors //支持的策略列表
scaling_cur_freq //软件设置的当前频率,通常与cpuinfo_cpus相同,如果出现硬件问题可能导致不一致
scaling_driver //当前使用的driver
scaling_governor //当前使用的governor
scaling_max_freq //软件governor设置的最高频率
scaling_min_freq //软件governor设置的最低频率
scaling_setspeed //需将governor类型切换为userspace,才会出现,通过echo修改数值,会切换主频

二、scaling_available_frequencies 频率列表

governor支持的频率列表是哪里来的呢。因为频率不是随意设置的,governor计算使用的频率,需要在频率支持列表中,在嵌入式中这个列表是在设备树中定义的。那么在x86 桌面系统中,这里是在哪里定义的呢

1、首先在drivers/cpufreq 中搜索关键字scaling_available_frequencies
231 static ssize_t show_available_freqs(struct cpufreq_policy *policy, char *buf,
232                     bool show_boost)
233 {   
234     ssize_t count = 0;
235     struct cpufreq_frequency_table *pos, *table = policy->freq_table;
236     
237     if (!table)
238         return -ENODEV;
239     
240     cpufreq_for_each_valid_entry(pos, table) {
241         /* 
242          * show_boost = true and driver_data = BOOST freq
243          * display BOOST freqs
244          * 
245          * show_boost = false and driver_data = BOOST freq
246          * show_boost = true and driver_data != BOOST freq
247          * continue - do not display anything
248          * 
249          * show_boost = false and driver_data != BOOST freq
250          * display NON BOOST freqs
251          */
252         if (show_boost ^ (pos->flags & CPUFREQ_BOOST_FREQ))
253             continue;
254         
255         count += sprintf(&buf[count], "%d ", pos->frequency);
256     }
257     count += sprintf(&buf[count], "\n");
258     
259     return count;
260 
261 }

可以看到这个参数是从,freq_table 获取到的。

2、继续搜索关键字freq_table,找到关键函数acpi_cpufreq_cpu_init
 650 static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
 {
...
 690     result = acpi_processor_register_performance
  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值