diff options
author | Alexey Budankov <alexey.budankov@linux.intel.com> | 2019-03-18 13:45:11 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-05-15 15:36:49 -0400 |
commit | 61a7773ca88f32ef7e185fdf9fc0d44e8ec18a66 (patch) | |
tree | 8b0791174c52dea4dc367b587b4ebbcf3c66fb9a /tools/perf/util/tool.h | |
parent | ef781128e47e73f0e5b2ad385cfa685a0719456a (diff) |
perf report: Add stub processing of compressed events for -D
Committer note:
Split from a larger patch, this only dumps PERF_RECORD_COMPRESSED as
unhandled, so that when we introduce the record part in the next patch,
we don't see unhandled events when using 'perf record -D'.
Changed it so that we dump the event if the handler is just a stub, i.e.
for the case where we don't have ZSTD linked but we're processing a
perf.data file generated by a tool with that linked.
Also when failing to decompress we can't just dump the uncompressed
event and return 0, we have to propagate the error.
Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/304b0a59-942c-3fe1-da02-aa749f87108b@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/tool.h')
-rw-r--r-- | tools/perf/util/tool.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/tools/perf/util/tool.h b/tools/perf/util/tool.h index 250391672f9f..9096a6e3de59 100644 --- a/tools/perf/util/tool.h +++ b/tools/perf/util/tool.h | |||
@@ -28,6 +28,7 @@ typedef int (*event_attr_op)(struct perf_tool *tool, | |||
28 | 28 | ||
29 | typedef int (*event_op2)(struct perf_session *session, union perf_event *event); | 29 | typedef int (*event_op2)(struct perf_session *session, union perf_event *event); |
30 | typedef s64 (*event_op3)(struct perf_session *session, union perf_event *event); | 30 | typedef s64 (*event_op3)(struct perf_session *session, union perf_event *event); |
31 | typedef int (*event_op4)(struct perf_session *session, union perf_event *event, u64 data); | ||
31 | 32 | ||
32 | typedef int (*event_oe)(struct perf_tool *tool, union perf_event *event, | 33 | typedef int (*event_oe)(struct perf_tool *tool, union perf_event *event, |
33 | struct ordered_events *oe); | 34 | struct ordered_events *oe); |
@@ -72,6 +73,7 @@ struct perf_tool { | |||
72 | stat, | 73 | stat, |
73 | stat_round, | 74 | stat_round, |
74 | feature; | 75 | feature; |
76 | event_op4 compressed; | ||
75 | event_op3 auxtrace; | 77 | event_op3 auxtrace; |
76 | bool ordered_events; | 78 | bool ordered_events; |
77 | bool ordering_requires_timestamps; | 79 | bool ordering_requires_timestamps; |