• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ cpufreq_stats_update函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中cpufreq_stats_update函数的典型用法代码示例。如果您正苦于以下问题:C++ cpufreq_stats_update函数的具体用法?C++ cpufreq_stats_update怎么用?C++ cpufreq_stats_update使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了cpufreq_stats_update函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: show_overall_time_in_state

static ssize_t show_overall_time_in_state(struct kobject *kobj,
						struct attribute *attr, char *buf)
{
	ssize_t len = 0;
	int i;
	unsigned long long cputime = 0;
	struct cpufreq_stats *stat = per_cpu(cpufreq_stats_table, 1);
	if (stat)
		cpufreq_stats_update(1);
	else
		stat = per_cpu(cpufreq_stats_table, 0);
	if (!stat)
		return 0;

	for (i = 0; i < stat->state_num; i++) {
		cputime = cputime64_to_clock_t(cpu0_time_in_state[i]);
		len += sprintf(buf + len, "%u %llu\n", stat->freq_table[i], cputime);
	}
	for (i = 0; i < stat->state_num; i++) {
		cputime = cputime64_to_clock_t(cpu1_time_in_state[i]);
		len += sprintf(buf + len, "%u %llu\n", stat->freq_table[i], cputime);
	}
#ifdef CONFIG_QUAD_CORES_SOC_STAT
	for (i = 0; i < stat->state_num; i++) {
		cputime = cputime64_to_clock_t(cpu2_time_in_state[i]);
		len += sprintf(buf + len, "%u %llu\n", stat->freq_table[i], cputime);
	}
	for (i = 0; i < stat->state_num; i++) {
		cputime = cputime64_to_clock_t(cpu3_time_in_state[i]);
		len += sprintf(buf + len, "%u %llu\n", stat->freq_table[i], cputime);
	}
#endif
	return len;
}
开发者ID:Yannicked,项目名称:htc-m7,代码行数:34,代码来源:cpufreq_stats.c


示例2: cpufreq_stat_notifier_trans

static int cpufreq_stat_notifier_trans(struct notifier_block *nb,
		unsigned long val, void *data)
{
	struct cpufreq_freqs *freq = data;
	struct cpufreq_stats *stat;
	int old_index, new_index;

	if (val != CPUFREQ_POSTCHANGE)
		return 0;

	stat = per_cpu(cpufreq_stats_table, freq->cpu);
	if (!stat)
		return 0;

	old_index = stat->last_index;
	new_index = freq_table_get_index(stat, freq->new);

	/* We can't do stat->time_in_state[-1]= .. */
	if (old_index == -1 || new_index == -1)
		return 0;

	cpufreq_stats_update(freq->cpu);

	if (old_index == new_index)
		return 0;

	spin_lock(&cpufreq_stats_lock);
	stat->last_index = new_index;
#ifdef CONFIG_CPU_FREQ_STAT_DETAILS
	stat->trans_table[old_index * stat->max_state + new_index]++;
#endif
	stat->total_trans++;
	spin_unlock(&cpufreq_stats_lock);
	return 0;
}
开发者ID:Andiry,项目名称:pmfs,代码行数:35,代码来源:cpufreq_stats.c


示例3: show_bL_all_time_in_state

static ssize_t show_bL_all_time_in_state(struct kobject *kobj,
		struct kobj_attribute *attr, char *buf)
{
	ssize_t len = 0;
	unsigned int cpu = 0;
	int i;
	struct cpufreq_stats *stat;

	stat = per_cpu(cpufreq_stats_table, cpu);
	if (!stat)
		return 0;

	cpufreq_stats_update(stat->cpu);
	for (i = 0; i < stat->state_num; i++) {
		len += sprintf(buf + len, "%u %llu\n", stat->freq_table[i],
			(unsigned long long)
			cputime64_to_clock_t(stat->time_in_state[i]));
	}

	if (!bL_freq_table) {
		pr_info("%s: bL_freq_table is null!\n", __func__);
		return len;
	}
	for (i = 0; i < bL_freq_table->table_size; i++) {
		len += sprintf(buf + len, "%u %llu\n", bL_freq_table->freq_table[i],
			(unsigned long long) cputime64_to_clock_t(bL_freq_table->time_in_state[i]));
	}

	return len;
}
开发者ID:HRTKernel,项目名称:Hacker_Kernel_SM-G92X_MM_Beta,代码行数:30,代码来源:cpufreq_stats.c


示例4: cpufreq_stat_notifier_trans

static int cpufreq_stat_notifier_trans(struct notifier_block *nb,
		unsigned long val, void *data)
{
	struct cpufreq_freqs *freq = data;
	struct cpufreq_stats *stat;
	int old_index, new_index;

	if (val != CPUFREQ_POSTCHANGE)
		return 0;

	cpufreq_stats_update(freq->cpu);

	spin_lock(&cpufreq_stats_lock);
	stat = per_cpu(cpufreq_stats_table, freq->cpu);
	if (!stat) {
		spin_unlock(&cpufreq_stats_lock);
		return 0;
	}

	old_index = stat->last_index;
	new_index = freq_table_get_index(stat, freq->new);

	
	if (old_index == -1 || new_index == -1) {
		spin_unlock(&cpufreq_stats_lock);
		return 0;
	}

	if (old_index == new_index) {
		spin_unlock(&cpufreq_stats_lock);
		return 0;
	}

	stat->last_index = new_index;
#ifdef CONFIG_CPU_FREQ_STAT_DETAILS
	stat->trans_table[old_index * stat->max_state + new_index]++;
#endif
	stat->total_trans++;
#ifdef CONFIG_ARCH_APQ8064
	if (freq->cpu == 1)
		cpu1_total_trans++;
	if (freq->cpu == 2)
		cpu2_total_trans++;
	if (freq->cpu == 3)
		cpu3_total_trans++;
#elif defined(CONFIG_ARCH_MSM8960)
	if (freq->cpu == 1)
		cpu1_total_trans++;
#endif
	spin_unlock(&cpufreq_stats_lock);
	return 0;
}
开发者ID:BackupWildfireDEV,项目名称:android_kernel_htc_msm8960-2,代码行数:52,代码来源:cpufreq_stats.c


示例5: cpufreq_stats_free_table

/* should be called late in the CPU removal sequence so that the stats
 * memory is still available in case someone tries to use it.
 */
static void cpufreq_stats_free_table(unsigned int cpu)
{
	struct cpufreq_stats *stat = NULL;
	spin_lock(&cpufreq_stats_lock);
	stat = per_cpu(cpufreq_stats_table, cpu);
	per_cpu(cpufreq_stats_table, cpu) = NULL;
	spin_unlock(&cpufreq_stats_lock);

	if (stat) {
		cpufreq_stats_update(cpu);
		kfree(stat->time_in_state);
		kfree(stat);
	}
}
开发者ID:jiangchao87,项目名称:HTL22_KK_4.4.4_GPE,代码行数:17,代码来源:cpufreq_stats.c


示例6: cpufreq_stat_notifier_trans

static int cpufreq_stat_notifier_trans(struct notifier_block *nb,
		unsigned long val, void *data)
{
	struct cpufreq_freqs *freq = data;
	struct cpufreq_stats *stat;
	int old_index, new_index;

	if (val != CPUFREQ_POSTCHANGE)
		return 0;

	stat = per_cpu(cpufreq_stats_table, freq->cpu);
	if (!stat)
		return 0;

	old_index = stat->last_index;
	new_index = freq_table_get_index(stat, freq->new);

#if defined (CONFIG_MACH_SAMSUNG_P5)
	if(cpufreq_stats_update(freq->cpu) < 0)
		return 0;
#else
	cpufreq_stats_update(freq->cpu);
#endif

	if (old_index == new_index)
		return 0;

	spin_lock(&cpufreq_stats_lock);
	stat->last_index = new_index;
#ifdef CONFIG_CPU_FREQ_STAT_DETAILS
	if (old_index >= 0 && new_index >= 0)
		stat->trans_table[old_index * stat->max_state + new_index]++;
#endif
	stat->total_trans++;
	spin_unlock(&cpufreq_stats_lock);
	return 0;
}
开发者ID:motley-git,项目名称:Kernel-GT-P73xx-v2,代码行数:37,代码来源:cpufreq_stats.c


示例7: show_time_in_state

static ssize_t show_time_in_state(struct cpufreq_policy *policy, char *buf)
{
	ssize_t len = 0;
	int i;
	struct cpufreq_stats *stat = per_cpu(cpufreq_stats_table, policy->cpu);
	if (!stat)
		return 0;
	cpufreq_stats_update(stat->cpu);
	for (i = 0; i < stat->state_num; i++) {
		len += sprintf(buf + len, "%u %llu\n", stat->freq_table[i],
			(unsigned long long)
			cputime64_to_clock_t(stat->time_in_state[i]));
	}
	return len;
}
开发者ID:Andiry,项目名称:pmfs,代码行数:15,代码来源:cpufreq_stats.c


示例8: cpufreq_stats_free_table

/* should be called late in the CPU removal sequence so that the stats
 * memory is still available in case someone tries to use it.
 */
static void cpufreq_stats_free_table(unsigned int cpu)
{
	struct cpufreq_stats *stat = NULL;
	spin_lock(&cpufreq_stats_lock);
	stat = per_cpu(cpufreq_stats_table, cpu);
	per_cpu(cpufreq_stats_table, cpu) = NULL;
	spin_unlock(&cpufreq_stats_lock);

	if (stat) {
#if defined(CONFIG_ARCH_APQ8064) || defined(CONFIG_ARCH_MSM8960)
		cpufreq_stats_update(cpu);
#endif
		kfree(stat->time_in_state);
		kfree(stat);
	}
}
开发者ID:happyhere,项目名称:802Xtreem,代码行数:19,代码来源:cpufreq_stats.c


示例9: show_trans_table

static ssize_t
show_trans_table(struct cpufreq_policy *policy, char *buf)
{
    ssize_t len = 0;
    int i, j;

    struct cpufreq_stats *stat = cpufreq_stats_table[policy->cpu];
    if (!stat)
        return 0;
    cpufreq_stats_update(stat->cpu);
    len += snprintf(buf + len, PAGE_SIZE - len, "   From  :    To\n");
    len += snprintf(buf + len, PAGE_SIZE - len, "         : ");
    for (i = 0; i < stat->state_num; i++) {
        if (len >= PAGE_SIZE)
            break;
        len += snprintf(buf + len, PAGE_SIZE - len, "%9u ",
                stat->freq_table[i]);
    }
    if (len >= PAGE_SIZE)
        return PAGE_SIZE;

    len += snprintf(buf + len, PAGE_SIZE - len, "\n");

    for (i = 0; i < stat->state_num; i++) {
        if (len >= PAGE_SIZE)
            break;

        len += snprintf(buf + len, PAGE_SIZE - len, "%9u: ",
                stat->freq_table[i]);

        for (j = 0; j < stat->state_num; j++)   {
            if (len >= PAGE_SIZE)
                break;
            len += snprintf(buf + len, PAGE_SIZE - len, "%9u ",
                    stat->trans_table[i*stat->max_state+j]);
        }
        if (len >= PAGE_SIZE)
            break;
        len += snprintf(buf + len, PAGE_SIZE - len, "\n");
    }
    if (len >= PAGE_SIZE)
        return PAGE_SIZE;
    return len;
}
开发者ID:274914765,项目名称:C,代码行数:44,代码来源:cpufreq_stats.c


示例10: show_all_time_in_state

static ssize_t show_all_time_in_state(struct kobject *kobj,
		struct kobj_attribute *attr, char *buf)
{
	ssize_t len = 0;
	unsigned int i, cpu, freq, index;
	struct all_cpufreq_stats *all_stat;
	struct cpufreq_policy *policy;

	len += scnprintf(buf + len, PAGE_SIZE - len, "freq\t\t");
	for_each_possible_cpu(cpu) {
		len += scnprintf(buf + len, PAGE_SIZE - len, "cpu%d\t\t", cpu);
		if (cpu_online(cpu))
			cpufreq_stats_update(cpu);
	}

	if (!all_freq_table)
		goto out;
	for (i = 0; i < all_freq_table->table_size; i++) {
		freq = all_freq_table->freq_table[i];
		len += scnprintf(buf + len, PAGE_SIZE - len, "\n%u\t\t", freq);
		for_each_possible_cpu(cpu) {
			policy = cpufreq_cpu_get(cpu);
			if (policy == NULL)
				continue;
			all_stat = per_cpu(all_cpufreq_stats, policy->cpu);
			index = get_index_all_cpufreq_stat(all_stat, freq);
			if (index != -1) {
				len += scnprintf(buf + len, PAGE_SIZE - len,
					"%llu\t\t", (unsigned long long)
					cputime64_to_clock_t(all_stat->time_in_state[index]));
			} else {
				len += scnprintf(buf + len, PAGE_SIZE - len,
						"N/A\t\t");
			}
			cpufreq_cpu_put(policy);
		}
	}

out:
	len += scnprintf(buf + len, PAGE_SIZE - len, "\n");
	return len;
}
开发者ID:HRTKernel,项目名称:Hacker_Kernel_SM-G92X_MM_Beta,代码行数:42,代码来源:cpufreq_stats.c



注:本文中的cpufreq_stats_update函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ cpufreq_unregister_notifier函数代码示例发布时间:2022-05-30
下一篇:
C++ cpufreq_stats_free_table函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap