aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-trace.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2015-01-22 09:08:04 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2015-01-22 09:16:34 -0500
commit5ed08dae9d2f2307c103e2dce94d801e74aefae4 (patch)
tree3a847cc43d412e1343b4058e45aca9291cb6d972 /tools/perf/builtin-trace.c
parent801c67b05f55d0cdafcda9fdcbb3da375b03c192 (diff)
perf trace: Fix error reporting for evsel pgfault constructor
In that case the only failure possible is not to have enough memory, as we are just creating the evsels, not trying to access any system facility such as debugfs files or syscalls. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Borislav Petkov <bp@suse.de> Cc: David Ahern <dsahern@gmail.com> Cc: Don Zickus <dzickus@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-7k6asvfhiwiu2zs6o2oknchk@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-trace.c')
-rw-r--r--tools/perf/builtin-trace.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 684609d7a83d..eaaa540bf1f3 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -2063,18 +2063,12 @@ static int trace__run(struct trace *trace, int argc, const char **argv)
2063 2063
2064 if ((trace->trace_pgfaults & TRACE_PFMAJ) && 2064 if ((trace->trace_pgfaults & TRACE_PFMAJ) &&
2065 perf_evlist__add_pgfault(evlist, PERF_COUNT_SW_PAGE_FAULTS_MAJ)) { 2065 perf_evlist__add_pgfault(evlist, PERF_COUNT_SW_PAGE_FAULTS_MAJ)) {
2066 /* 2066 goto out_error_mem;
2067 * FIXME: This one needs better error handling, as by now we
2068 * already checked that debugfs is mounted and that we have access to it,
2069 * so probably the case is that something is busted wrt this specific
2070 * software event, ditto for the next gotos to out_error_tp...
2071 */
2072 goto out_error_tp;
2073 } 2067 }
2074 2068
2075 if ((trace->trace_pgfaults & TRACE_PFMIN) && 2069 if ((trace->trace_pgfaults & TRACE_PFMIN) &&
2076 perf_evlist__add_pgfault(evlist, PERF_COUNT_SW_PAGE_FAULTS_MIN)) 2070 perf_evlist__add_pgfault(evlist, PERF_COUNT_SW_PAGE_FAULTS_MIN))
2077 goto out_error_tp; 2071 goto out_error_mem;
2078 2072
2079 if (trace->sched && 2073 if (trace->sched &&
2080 perf_evlist__add_newtp(evlist, "sched", "sched_stat_runtime", 2074 perf_evlist__add_newtp(evlist, "sched", "sched_stat_runtime",
@@ -2225,6 +2219,9 @@ out_error:
2225 fprintf(trace->output, "%s\n", errbuf); 2219 fprintf(trace->output, "%s\n", errbuf);
2226 goto out_delete_evlist; 2220 goto out_delete_evlist;
2227} 2221}
2222out_error_mem:
2223 fprintf(trace->output, "Not enough memory to run!\n");
2224 goto out_delete_evlist;
2228} 2225}
2229 2226
2230static int trace__replay(struct trace *trace) 2227static int trace__replay(struct trace *trace)