Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 03ad9747 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo
Browse files

perf evlist: Move destruction of maps to evlist destructor

Instead of requiring tools to do an extra destructor call just before
calling perf_evlist__delete.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-0jd2ptzyikxb5wp7inzz2ah2@git.kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 3e2be2da
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -1556,10 +1556,8 @@ out:
	if (kvm->session)
		perf_session__delete(kvm->session);
	kvm->session = NULL;
	if (kvm->evlist) {
		perf_evlist__delete_maps(kvm->evlist);
	if (kvm->evlist)
		perf_evlist__delete(kvm->evlist);
	}

	return err;
}
+1 −3
Original line number Diff line number Diff line
@@ -964,15 +964,13 @@ int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)

	if (record_opts__config(&rec->opts)) {
		err = -EINVAL;
		goto out_free_fd;
		goto out_symbol_exit;
	}

	err = __cmd_record(&record, argc, argv);

	perf_evlist__munmap(rec->evlist);
	perf_evlist__close(rec->evlist);
out_free_fd:
	perf_evlist__delete_maps(rec->evlist);
out_symbol_exit:
	symbol__exit();
	return err;
+3 −5
Original line number Diff line number Diff line
@@ -1782,14 +1782,14 @@ int cmd_stat(int argc, const char **argv, const char *prefix __maybe_unused)
	if (interval && interval < 100) {
		pr_err("print interval must be >= 100ms\n");
		parse_options_usage(stat_usage, options, "I", 1);
		goto out_free_maps;
		goto out;
	}

	if (perf_evlist__alloc_stats(evsel_list, interval))
		goto out_free_maps;
		goto out;

	if (perf_stat_init_aggr_mode())
		goto out_free_maps;
		goto out;

	/*
	 * We dont want to block the signals - that would cause
@@ -1821,8 +1821,6 @@ int cmd_stat(int argc, const char **argv, const char *prefix __maybe_unused)
		print_stat(argc, argv);

	perf_evlist__free_stats(evsel_list);
out_free_maps:
	perf_evlist__delete_maps(evsel_list);
out:
	perf_evlist__delete(evsel_list);
	return status;
+2 −4
Original line number Diff line number Diff line
@@ -1171,7 +1171,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)
	if (!top.evlist->nr_entries &&
	    perf_evlist__add_default(top.evlist) < 0) {
		ui__error("Not enough memory for event selector list\n");
		goto out_delete_maps;
		goto out_delete_evlist;
	}

	symbol_conf.nr_events = top.evlist->nr_entries;
@@ -1181,7 +1181,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)

	if (record_opts__config(opts)) {
		status = -EINVAL;
		goto out_delete_maps;
		goto out_delete_evlist;
	}

	top.sym_evsel = perf_evlist__first(top.evlist);
@@ -1206,8 +1206,6 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)

	status = __cmd_top(&top);

out_delete_maps:
	perf_evlist__delete_maps(top.evlist);
out_delete_evlist:
	perf_evlist__delete(top.evlist);

+2 −4
Original line number Diff line number Diff line
@@ -1885,7 +1885,7 @@ static int trace__run(struct trace *trace, int argc, const char **argv)
	err = trace__symbols_init(trace, evlist);
	if (err < 0) {
		fprintf(trace->output, "Problems initializing symbol libraries!\n");
		goto out_delete_maps;
		goto out_delete_evlist;
	}

	perf_evlist__config(evlist, &trace->opts);
@@ -1898,7 +1898,7 @@ static int trace__run(struct trace *trace, int argc, const char **argv)
						    argv, false, NULL);
		if (err < 0) {
			fprintf(trace->output, "Couldn't run the workload!\n");
			goto out_delete_maps;
			goto out_delete_evlist;
		}
	}

@@ -1996,8 +1996,6 @@ out_disable:
	perf_evlist__munmap(evlist);
out_close_evlist:
	perf_evlist__close(evlist);
out_delete_maps:
	perf_evlist__delete_maps(evlist);
out_delete_evlist:
	perf_evlist__delete(evlist);
out:
Loading