diff options
| author | Adrian Hunter <adrian.hunter@intel.com> | 2015-09-25 09:15:37 -0400 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-09-28 15:51:33 -0400 |
| commit | a38f48e300f9dac30a9b2d2ce958c8dbd7def351 (patch) | |
| tree | 3f6152a3f31f37b81d64a699d9156cb0154ceaff /tools/perf | |
| parent | 83e1986032dfcd3f9e9fc0d06e11d9153edae19b (diff) | |
perf session: Warn when AUX data has been lost
By default 'perf record' will postprocess the perf.data file to
determine build-ids. When that happens, the number of lost perf events
is displayed.
Make that also happen for AUX events.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1443186956-18718-7-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf')
| -rw-r--r-- | tools/perf/util/event.h | 1 | ||||
| -rw-r--r-- | tools/perf/util/session.c | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h index be5cbc7be889..a0dbcbd4f6d8 100644 --- a/tools/perf/util/event.h +++ b/tools/perf/util/event.h | |||
| @@ -257,6 +257,7 @@ struct events_stats { | |||
| 257 | u64 total_non_filtered_period; | 257 | u64 total_non_filtered_period; |
| 258 | u64 total_lost; | 258 | u64 total_lost; |
| 259 | u64 total_lost_samples; | 259 | u64 total_lost_samples; |
| 260 | u64 total_aux_lost; | ||
| 260 | u64 total_invalid_chains; | 261 | u64 total_invalid_chains; |
| 261 | u32 nr_events[PERF_RECORD_HEADER_MAX]; | 262 | u32 nr_events[PERF_RECORD_HEADER_MAX]; |
| 262 | u32 nr_non_filtered_samples; | 263 | u32 nr_non_filtered_samples; |
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index f5e000030a5e..15c84cad213a 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c | |||
| @@ -1101,6 +1101,9 @@ static int machines__deliver_event(struct machines *machines, | |||
| 1101 | case PERF_RECORD_UNTHROTTLE: | 1101 | case PERF_RECORD_UNTHROTTLE: |
| 1102 | return tool->unthrottle(tool, event, sample, machine); | 1102 | return tool->unthrottle(tool, event, sample, machine); |
| 1103 | case PERF_RECORD_AUX: | 1103 | case PERF_RECORD_AUX: |
| 1104 | if (tool->aux == perf_event__process_aux && | ||
| 1105 | (event->aux.flags & PERF_AUX_FLAG_TRUNCATED)) | ||
| 1106 | evlist->stats.total_aux_lost += 1; | ||
| 1104 | return tool->aux(tool, event, sample, machine); | 1107 | return tool->aux(tool, event, sample, machine); |
| 1105 | case PERF_RECORD_ITRACE_START: | 1108 | case PERF_RECORD_ITRACE_START: |
| 1106 | return tool->itrace_start(tool, event, sample, machine); | 1109 | return tool->itrace_start(tool, event, sample, machine); |
| @@ -1346,6 +1349,13 @@ static void perf_session__warn_about_errors(const struct perf_session *session) | |||
| 1346 | } | 1349 | } |
| 1347 | } | 1350 | } |
| 1348 | 1351 | ||
| 1352 | if (session->tool->aux == perf_event__process_aux && | ||
| 1353 | stats->total_aux_lost != 0) { | ||
| 1354 | ui__warning("AUX data lost %" PRIu64 " times out of %u!\n\n", | ||
| 1355 | stats->total_aux_lost, | ||
| 1356 | stats->nr_events[PERF_RECORD_AUX]); | ||
| 1357 | } | ||
| 1358 | |||
| 1349 | if (stats->nr_unknown_events != 0) { | 1359 | if (stats->nr_unknown_events != 0) { |
| 1350 | ui__warning("Found %u unknown events!\n\n" | 1360 | ui__warning("Found %u unknown events!\n\n" |
| 1351 | "Is this an older tool processing a perf.data " | 1361 | "Is this an older tool processing a perf.data " |
