aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-report.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2016-10-14 17:23:11 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-10-24 10:07:44 -0400
commit899735066a8d945b7ae56a34847298fd0dd2104b (patch)
treecda5f4c4311a99fd28db7722bd562e7e1f93e7d5 /tools/perf/builtin-report.c
parente7b32d12a287a79f2831c1246baf3de0aed95dcc (diff)
perf tools: Use normal error reporting when processing PERF_RECORD_READ events
We already have handling for errors when processing PERF_RECORD_ events, so instead of calling die() when not being able to alloc, propagate the error, so that the normal UI exit sequence can take place, the user be warned and possibly the terminal be properly reset to a sane mode. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Brice Goglin <Brice.Goglin@inria.fr> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-r90je3c009a125dvs3525yge@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-report.c')
-rw-r--r--tools/perf/builtin-report.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 6e88460cd13d..8064de8ceedc 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -207,11 +207,14 @@ static int process_read_event(struct perf_tool *tool,
207 207
208 if (rep->show_threads) { 208 if (rep->show_threads) {
209 const char *name = evsel ? perf_evsel__name(evsel) : "unknown"; 209 const char *name = evsel ? perf_evsel__name(evsel) : "unknown";
210 perf_read_values_add_value(&rep->show_threads_values, 210 int err = perf_read_values_add_value(&rep->show_threads_values,
211 event->read.pid, event->read.tid, 211 event->read.pid, event->read.tid,
212 event->read.id, 212 event->read.id,
213 name, 213 name,
214 event->read.value); 214 event->read.value);
215
216 if (err)
217 return err;
215 } 218 }
216 219
217 dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid, 220 dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid,
@@ -539,8 +542,11 @@ static int __cmd_report(struct report *rep)
539 } 542 }
540 } 543 }
541 544
542 if (rep->show_threads) 545 if (rep->show_threads) {
543 perf_read_values_init(&rep->show_threads_values); 546 ret = perf_read_values_init(&rep->show_threads_values);
547 if (ret)
548 return ret;
549 }
544 550
545 ret = report__setup_sample_type(rep); 551 ret = report__setup_sample_type(rep);
546 if (ret) { 552 if (ret) {