Lines Matching refs:stats

27 static void cpufreq_stats_update(struct cpufreq_stats *stats)  in cpufreq_stats_update()  argument
31 stats->time_in_state[stats->last_index] += cur_time - stats->last_time; in cpufreq_stats_update()
32 stats->last_time = cur_time; in cpufreq_stats_update()
35 static void cpufreq_stats_clear_table(struct cpufreq_stats *stats) in cpufreq_stats_clear_table() argument
37 unsigned int count = stats->max_state; in cpufreq_stats_clear_table()
39 spin_lock(&stats->lock); in cpufreq_stats_clear_table()
40 memset(stats->time_in_state, 0, count * sizeof(u64)); in cpufreq_stats_clear_table()
41 memset(stats->trans_table, 0, count * count * sizeof(int)); in cpufreq_stats_clear_table()
42 stats->last_time = get_jiffies_64(); in cpufreq_stats_clear_table()
43 stats->total_trans = 0; in cpufreq_stats_clear_table()
44 spin_unlock(&stats->lock); in cpufreq_stats_clear_table()
49 return sprintf(buf, "%d\n", policy->stats->total_trans); in show_total_trans()
55 struct cpufreq_stats *stats = policy->stats; in show_time_in_state() local
62 spin_lock(&stats->lock); in show_time_in_state()
63 cpufreq_stats_update(stats); in show_time_in_state()
64 spin_unlock(&stats->lock); in show_time_in_state()
66 for (i = 0; i < stats->state_num; i++) { in show_time_in_state()
67 len += sprintf(buf + len, "%u %llu\n", stats->freq_table[i], in show_time_in_state()
69 jiffies_64_to_clock_t(stats->time_in_state[i])); in show_time_in_state()
79 cpufreq_stats_clear_table(policy->stats); in store_reset()
86 struct cpufreq_stats *stats = policy->stats; in show_trans_table() local
95 for (i = 0; i < stats->state_num; i++) { in show_trans_table()
99 stats->freq_table[i]); in show_trans_table()
106 for (i = 0; i < stats->state_num; i++) { in show_trans_table()
111 stats->freq_table[i]); in show_trans_table()
113 for (j = 0; j < stats->state_num; j++) { in show_trans_table()
117 stats->trans_table[i*stats->max_state+j]); in show_trans_table()
144 static int freq_table_get_index(struct cpufreq_stats *stats, unsigned int freq) in freq_table_get_index() argument
147 for (index = 0; index < stats->max_state; index++) in freq_table_get_index()
148 if (stats->freq_table[index] == freq) in freq_table_get_index()
155 struct cpufreq_stats *stats = policy->stats; in cpufreq_stats_free_table() local
158 if (!stats) in cpufreq_stats_free_table()
164 kfree(stats->time_in_state); in cpufreq_stats_free_table()
165 kfree(stats); in cpufreq_stats_free_table()
166 policy->stats = NULL; in cpufreq_stats_free_table()
172 struct cpufreq_stats *stats; in cpufreq_stats_create_table() local
181 if (policy->stats) in cpufreq_stats_create_table()
184 stats = kzalloc(sizeof(*stats), GFP_KERNEL); in cpufreq_stats_create_table()
185 if (!stats) in cpufreq_stats_create_table()
193 stats->time_in_state = kzalloc(alloc_size, GFP_KERNEL); in cpufreq_stats_create_table()
194 if (!stats->time_in_state) in cpufreq_stats_create_table()
197 stats->freq_table = (unsigned int *)(stats->time_in_state + count); in cpufreq_stats_create_table()
199 stats->trans_table = stats->freq_table + count; in cpufreq_stats_create_table()
201 stats->max_state = count; in cpufreq_stats_create_table()
205 if (freq_table_get_index(stats, pos->frequency) == -1) in cpufreq_stats_create_table()
206 stats->freq_table[i++] = pos->frequency; in cpufreq_stats_create_table()
208 stats->state_num = i; in cpufreq_stats_create_table()
209 stats->last_time = get_jiffies_64(); in cpufreq_stats_create_table()
210 stats->last_index = freq_table_get_index(stats, policy->cur); in cpufreq_stats_create_table()
211 spin_lock_init(&stats->lock); in cpufreq_stats_create_table()
213 policy->stats = stats; in cpufreq_stats_create_table()
219 policy->stats = NULL; in cpufreq_stats_create_table()
220 kfree(stats->time_in_state); in cpufreq_stats_create_table()
222 kfree(stats); in cpufreq_stats_create_table()
228 struct cpufreq_stats *stats = policy->stats; in cpufreq_stats_record_transition() local
231 if (!stats) { in cpufreq_stats_record_transition()
236 old_index = stats->last_index; in cpufreq_stats_record_transition()
237 new_index = freq_table_get_index(stats, new_freq); in cpufreq_stats_record_transition()
243 spin_lock(&stats->lock); in cpufreq_stats_record_transition()
244 cpufreq_stats_update(stats); in cpufreq_stats_record_transition()
246 stats->last_index = new_index; in cpufreq_stats_record_transition()
247 stats->trans_table[old_index * stats->max_state + new_index]++; in cpufreq_stats_record_transition()
248 stats->total_trans++; in cpufreq_stats_record_transition()
249 spin_unlock(&stats->lock); in cpufreq_stats_record_transition()