perf annotate: Move session handling out of __cmd_annotate()
Hi,
I modified error code for the requirement as below.
Author: taeung <[email protected]> Date: Sat Sep 13 16:22:53 2014 +0900
modified error code when perf_session__new() fail
Because perf_session__new() could fail
for more reasons than just ENOMEM,
I modified error code(ENOMEM or EINVAL)
into -1.
tools/perf/builtin-annotate.c +1 -1
@@ -199,7 +199,7 @@ static int __cmd_annotate(struct perf_annotate *ann) session =perf_session__new (&file, false, &ann->tool);if (session ==NULL ) -return -ENOMEM ; +return -1 ; machines__set_symbol_filter(&session->machines,
symbol__annotate_init);
tools/perf/builtin-diff.c +1 -1
@@ -683,7 +683,7 @@ static int __cmd_diff(void) d->session =perf_session__new (&d->file, false, &tool);if (!d->session) {pr_err ("Failed to open %s\n" , d->file.path); - ret = -ENOMEM ; + ret =-1 ; goto out_delete; }
tools/perf/builtin-evlist.c +1 -1
@@ -28,7 +28,7 @@ static int __cmd_evlist(const char *file_name, struct perf_attr_details *details session =perf_session__new (&file,0 ,NULL );if (session ==NULL ) -return -ENOMEM ; +return -1 ;evlist__for_each (session->evlist, pos)perf_evsel__fprintf (pos, details, stdout);
tools/perf/builtin-inject.c +1 -1
@@ -359,7 +359,7 @@ static int __cmd_inject(struct perf_inject *inject) session =perf_session__new (&file, true, &inject->tool);if (session ==NULL ) -return -ENOMEM ; +return -1 ;if (inject->build_ids) { inject->tool.sample = perf_event__inject_buildid;
tools/perf/builtin-kmem.c +1 -1
@@ -422,7 +422,7 @@ static int __cmd_kmem(void) session =perf_session__new (&file, false, &perf_kmem);if (session ==NULL ) -return -ENOMEM ; +return -1 ;if (perf_session__create_kernel_maps (session) <0 ) goto out_delete;
tools/perf/builtin-kvm.c +3 -3
@@ -1060,7 +1060,7 @@ static int read_events(struct perf_kvm_stat *kvm) .comm = perf_event__process_comm, .ordered_samples = true, }; -struct perf_data_file file = { +struct perf_data_file file = { .path = kvm->file_name, .mode =PERF_DATA_MODE_READ , };
@@ -1069,7 +1069,7 @@ static int read_events(struct perf_kvm_stat *kvm) kvm->session =perf_session__new (&file, false, &kvm->tool);if (!kvm->session) {pr_err ("Initializing perf session failed\n" ); -return -EINVAL ; +return -1 ; }if (!perf_session__has_traces (kvm->session,"kvm record" ))
@@ -1369,7 +1369,7 @@ static int kvm_events_live(struct perf_kvm_stat *kvm,*/ kvm->session =perf_session__new (&file, false, &kvm->tool);if (kvm->session ==NULL ) { - err = -ENOMEM ; + err =-1 ; goto out; } kvm->session->evlist = kvm->evlist;
tools/perf/builtin-lock.c +1 -1
@@ -862,7 +862,7 @@ static int __cmd_report(bool display_info) session =perf_session__new (&file, false, &eops);if (!session) {pr_err ("Initializing perf session failed\n" ); -return -ENOMEM ; +return -1 ; }if (!perf_session__has_traces (session,"lock record" ))
tools/perf/builtin-mem.c +1 -1
@@ -124,7 +124,7 @@ static int report_raw_events(struct perf_mem *mem) &mem->tool);if (session ==NULL ) -return -ENOMEM ; +return -1 ;if (mem->cpu_list) { ret = perf_session__cpu_bitmap(session, mem->cpu_list,
tools/perf/builtin-report.c +1 -1
@@ -712,7 +712,7 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused) repeat: session =perf_session__new (&file, false, &report.tool);if (session ==NULL ) -return -ENOMEM ; +return -1 ; report.session = session;
tools/perf/builtin-script.c +1 -1
@@ -1725,7 +1725,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused) session =perf_session__new (&file, false, &script.tool);if (session ==NULL ) -return -ENOMEM ; +return -1 ;if (header || header_only) {perf_session__fprintf_info (session, stdout, show_full_info);
tools/perf/builtin-timechart.c +1 -1
@@ -1605,7 +1605,7 @@ static int __cmd_timechart(struct timechart *tchart, const char *output_name)int ret = -EINVAL ;if (session ==NULL ) -return -ENOMEM ; +return -1 ; (void)perf_header__process_sections(&session->header, perf_data_file__fd(session->file),
tools/perf/builtin-top.c +1 -1
@@ -911,7 +911,7 @@ static int __cmd_top(struct perf_top *top) top->session =perf_session__new (NULL , false,NULL );if (top->session ==NULL ) -return -ENOMEM ; +return -1 ;machines__set_symbol_filter (&top->session->machines, symbol_filter);
tools/perf/builtin-trace.c +1 -1
@@ -2220,7 +2220,7 @@ static int trace__replay(struct trace *trace) session =perf_session__new (&file, false, &trace->tool);if (session ==NULL ) -return -ENOMEM ; +return -1 ; trace->host = &session->machines.host;
Thanks,
--
taeung
Quoted 50 lines · Namhyung Kim
SNIP
Review int cmd_annotate(int argc, const char **argv,
Quoted 2 lines
(quoted diff) +0
-0@@ -301,6 +281,10 @@ int cmd_annotate(int argc, const char **argv,const char *prefix
__maybe_unused)Review int cmd_annotate(int argc, const char **argv,
Quoted 11 lines
(quoted diff) +4
-0.ordering_requires_timestamps = true, }, }; + struct perf_data_file file = { + .path = input_name, + .mode = PERF_DATA_MODE_READ, + }; const struct option options[] = { OPT_STRING('i', "input", &input_name, "file", "input file name"),@@ -308,7 +292,7 @@ int cmd_annotate(int argc, const char **argv,const char *prefix
__maybe_unused)Review int cmd_annotate(int argc, const char **argv,
Quoted 9 lines
(quoted diff) +1
-1"only consider symbols in these dsos"), OPT_STRING('s', "symbol", &annotate.sym_hist_filter, "symbol", "symbol to annotate"), - OPT_BOOLEAN('f', "force", &annotate.force, "don't complain, do it"), + OPT_BOOLEAN('f', "force", &file.force, "don't complain, do it"), OPT_INCR('v', "verbose", &verbose, "be more verbose (show symbol address, etc)"), OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,@@ -341,6 +325,7 @@ int cmd_annotate(int argc, const char **argv,const char *prefix
__maybe_unused)Review int cmd_annotate(int argc, const char **argv,
Quoted 8 lines
(quoted diff) +1
-0"Show event group information together"), OPT_END() }; + int ret; argc = parse_options(argc, argv, options, annotate_usage, 0);@@ -353,11 +338,16 @@ int cmd_annotate(int argc, const char **argv,const char *prefix
__maybe_unused)Review int cmd_annotate(int argc, const char **argv, · line 342
Quoted 6 lines
(quoted diff) +3
-0setup_browser(true); + annotate.session = perf_session__new(&file, false, &annotate.tool); + if (annotate.session == NULL) + return -ENOMEM;I know you're just moving code, but
perf_session__newcould fail for more reasons than just ENOMEM, which is the most unlikely case ;-) -1 is probably better option herejirka