aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-timechart.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/builtin-timechart.c')
-rw-r--r--tools/perf/builtin-timechart.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c
index 3f8bbcfb1e9b..0d4d8ff7914b 100644
--- a/tools/perf/builtin-timechart.c
+++ b/tools/perf/builtin-timechart.c
@@ -1029,33 +1029,24 @@ static void process_samples(struct perf_session *session)
1029 } 1029 }
1030} 1030}
1031 1031
1032static int sample_type_check(struct perf_session *session)
1033{
1034 if (!(session->sample_type & PERF_SAMPLE_RAW)) {
1035 fprintf(stderr, "No trace samples found in the file.\n"
1036 "Have you used 'perf timechart record' to record it?\n");
1037 return -1;
1038 }
1039
1040 return 0;
1041}
1042
1043static struct perf_event_ops event_ops = { 1032static struct perf_event_ops event_ops = {
1044 .process_comm_event = process_comm_event, 1033 .comm = process_comm_event,
1045 .process_fork_event = process_fork_event, 1034 .fork = process_fork_event,
1046 .process_exit_event = process_exit_event, 1035 .exit = process_exit_event,
1047 .process_sample_event = queue_sample_event, 1036 .sample = queue_sample_event,
1048 .sample_type_check = sample_type_check,
1049}; 1037};
1050 1038
1051static int __cmd_timechart(void) 1039static int __cmd_timechart(void)
1052{ 1040{
1053 struct perf_session *session = perf_session__new(input_name, O_RDONLY, 0); 1041 struct perf_session *session = perf_session__new(input_name, O_RDONLY, 0);
1054 int ret; 1042 int ret = -EINVAL;
1055 1043
1056 if (session == NULL) 1044 if (session == NULL)
1057 return -ENOMEM; 1045 return -ENOMEM;
1058 1046
1047 if (!perf_session__has_traces(session, "timechart record"))
1048 goto out_delete;
1049
1059 ret = perf_session__process_events(session, &event_ops); 1050 ret = perf_session__process_events(session, &event_ops);
1060 if (ret) 1051 if (ret)
1061 goto out_delete; 1052 goto out_delete;