aboutsummaryrefslogtreecommitdiff
path: root/tracefile_tracecmd.c
diff options
context:
space:
mode:
authorTuukka Tikkanen <tuukka.tikkanen@linaro.org>2015-01-05 09:49:37 +0200
committerTuukka Tikkanen <tuukka.tikkanen@linaro.org>2015-01-05 10:21:11 +0200
commit7a706b869bff765eb3d2775d31acc6d0e7b32c91 (patch)
tree3cf8eb1174c67778c72f54c9ee0d95474b6cbc8e /tracefile_tracecmd.c
parent4904b636f9c7923d2066b1ec4bdf408ce07cd111 (diff)
Idlestat: Calculate core/cluster data properly
Current implementation for core/cluster data calculation is to look for intersections of same state residency in cpu data after loading all of the data. This fails to correctly record core/cluster data for cases where all the contained cpus are in a low power state, but are not using the exact same state. To resolve this, core/cluster state needs to be evaluated at the same time as the cpu events are being processes. The store_data() function is modified to record not only the affected cpu changes, but also the affected core and cluster. Supporting changes are added throughout the source tree. Signed-off-by: Tuukka Tikkanen <tuukka.tikkanen@linaro.org>
Diffstat (limited to 'tracefile_tracecmd.c')
-rw-r--r--tracefile_tracecmd.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/tracefile_tracecmd.c b/tracefile_tracecmd.c
index cc7bf35..cf3ed89 100644
--- a/tracefile_tracecmd.c
+++ b/tracefile_tracecmd.c
@@ -16,6 +16,8 @@ void tracecmd_load_text_data_lines(FILE *f, char *buffer, struct cpuidle_datas *
double begin = 0, end = 0;
size_t count = 0, start = 1;
+ setup_topo_states(datas);
+
do {
load_text_data_line(buffer, datas, TRACE_CMD_REPORT_FORMAT, &begin, &end, &count, &start);
} while (fgets(buffer, BUFSIZE, f));