diff options
author | Tuukka Tikkanen <tuukka.tikkanen@linaro.org> | 2015-01-05 09:49:37 +0200 |
---|---|---|
committer | Tuukka Tikkanen <tuukka.tikkanen@linaro.org> | 2015-01-05 10:21:11 +0200 |
commit | 7a706b869bff765eb3d2775d31acc6d0e7b32c91 (patch) | |
tree | 3cf8eb1174c67778c72f54c9ee0d95474b6cbc8e /tracefile_tracecmd.c | |
parent | 4904b636f9c7923d2066b1ec4bdf408ce07cd111 (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.c | 2 |
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)); |