diff options
-rw-r--r-- | idlestat.c | 2 | ||||
-rw-r--r-- | idlestat.h | 2 | ||||
-rw-r--r-- | trace_ops.h | 2 | ||||
-rw-r--r-- | tracefile_idlestat.c | 24 | ||||
-rw-r--r-- | tracefile_tracecmd.c | 5 |
5 files changed, 18 insertions, 17 deletions
@@ -943,7 +943,7 @@ void output_cstate_info(FILE *f, int nrcpus) { #define TRACECMD_REPORT_FORMAT "%*[^]]] %lf:%*[^=]=%u%*[^=]=%d" #define TRACE_FORMAT "%*[^]]] %*s %lf:%*[^=]=%u%*[^=]=%d" -int get_wakeup_irq(struct cpuidle_datas *datas, char *buffer, int count) +int get_wakeup_irq(struct cpuidle_datas *datas, char *buffer) { int cpu, irqid; char irqname[NAMELEN+1]; @@ -192,6 +192,6 @@ extern int store_data(double time, int state, int cpu, struct cpuidle_datas *dat extern struct cpuidle_cstates *build_cstate_info(int nrcpus); extern struct cpufreq_pstates *build_pstate_info(int nrcpus); extern int cpu_change_pstate(struct cpuidle_datas *datas, int cpu, unsigned int freq, double time); -extern int get_wakeup_irq(struct cpuidle_datas *datas, char *buffer, int count); +extern int get_wakeup_irq(struct cpuidle_datas *datas, char *buffer); #endif diff --git a/trace_ops.h b/trace_ops.h index d65b4a7..6d097ff 100644 --- a/trace_ops.h +++ b/trace_ops.h @@ -36,7 +36,7 @@ struct trace_ops { struct cpuidle_datas *(*load)(const char *filename); }; -extern int load_text_data_line(char *buffer, struct cpuidle_datas *datas, char *format, double *begin, double *end, size_t *count, size_t *start); +extern int load_text_data_line(char *buffer, struct cpuidle_datas *datas, char *format, double *begin, double *end, size_t *start); extern void load_text_data_lines(FILE *f, char *buffer, struct cpuidle_datas *datas); #define EXPORT_TRACE_OPS(tracetype_name) \ diff --git a/tracefile_idlestat.c b/tracefile_idlestat.c index 6067bfa..45b3b93 100644 --- a/tracefile_idlestat.c +++ b/tracefile_idlestat.c @@ -113,11 +113,10 @@ static struct cpuidle_cstates *load_and_build_cstate_info(FILE* f, char *buffer, return cstates; } -int load_text_data_line(char *buffer, struct cpuidle_datas *datas, char *format, double *begin, double *end, size_t *count, size_t *start) +int load_text_data_line(char *buffer, struct cpuidle_datas *datas, char *format, double *begin, double *end, size_t *start) { unsigned int state, freq, cpu; double time; - int ret; if (strstr(buffer, "cpu_idle")) { if (sscanf(buffer, format, &time, &state, &cpu) @@ -134,24 +133,20 @@ int load_text_data_line(char *buffer, struct cpuidle_datas *datas, char *format, } *end = time; - store_data(time, state, cpu, datas); - (*count)++; - return 0; - } else if (strstr(buffer, "cpu_frequency")) { + return store_data(time, state, cpu, datas); + } + + if (strstr(buffer, "cpu_frequency")) { if (sscanf(buffer, format, &time, &freq, &cpu) != 3) { fprintf(stderr, "warning: Unrecognized cpufreq " "record. The result of analysis might " "be wrong.\n"); return -1; } - cpu_change_pstate(datas, cpu, freq, time); - (*count)++; - return 0; + return cpu_change_pstate(datas, cpu, freq, time); } - ret = get_wakeup_irq(datas, buffer, *count); - *count += (0 == ret) ? 1 : 0; - return 0; + return get_wakeup_irq(datas, buffer); } void load_text_data_lines(FILE *f, char *buffer, struct cpuidle_datas *datas) @@ -162,7 +157,10 @@ void load_text_data_lines(FILE *f, char *buffer, struct cpuidle_datas *datas) setup_topo_states(datas); do { - load_text_data_line(buffer, datas, TRACE_FORMAT, &begin, &end, &count, &start); + if (load_text_data_line(buffer, datas, TRACE_FORMAT, + &begin, &end, &start) != -1) { + count++; + } } while (fgets(buffer, BUFSIZE, f)); fprintf(stderr, "Log is %lf secs long with %zd events\n", diff --git a/tracefile_tracecmd.c b/tracefile_tracecmd.c index b39c9d2..8938f23 100644 --- a/tracefile_tracecmd.c +++ b/tracefile_tracecmd.c @@ -45,7 +45,10 @@ void tracecmd_load_text_data_lines(FILE *f, char *buffer, struct cpuidle_datas * setup_topo_states(datas); do { - load_text_data_line(buffer, datas, TRACE_CMD_REPORT_FORMAT, &begin, &end, &count, &start); + if (load_text_data_line(buffer, datas, TRACE_CMD_REPORT_FORMAT, + &begin, &end, &start) != -1) { + count++; + } } while (fgets(buffer, BUFSIZE, f)); fprintf(stderr, "Log is %lf secs long with %zd events\n", |