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

Commit 739b8002 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo Committed by Greg Kroah-Hartman
Browse files

perf top: Move sb_evlist to 'struct perf_top'



[ Upstream commit ca6c9c8b107f9788662117587cd24bbb19cea94d ]

Where state related to a 'perf top' session is grouped.

Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Song Liu <songliubraving@fb.com>
Link: http://lore.kernel.org/lkml/20200429131106.27974-3-acme@kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Stable-dep-of: 9c51f8788b5d ("perf env: Avoid recursively taking env->bpf_progs.lock")
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 2d59b6ed
Loading
Loading
Loading
Loading
+3 −4
Original line number Original line Diff line number Diff line
@@ -1542,7 +1542,6 @@ int cmd_top(int argc, const char **argv)
	OPTS_EVSWITCH(&top.evswitch),
	OPTS_EVSWITCH(&top.evswitch),
	OPT_END()
	OPT_END()
	};
	};
	struct evlist *sb_evlist = NULL;
	const char * const top_usage[] = {
	const char * const top_usage[] = {
		"perf top [<options>]",
		"perf top [<options>]",
		NULL
		NULL
@@ -1684,9 +1683,9 @@ int cmd_top(int argc, const char **argv)
	}
	}


	if (!top.record_opts.no_bpf_event)
	if (!top.record_opts.no_bpf_event)
		bpf_event__add_sb_event(&sb_evlist, &perf_env);
		bpf_event__add_sb_event(&top.sb_evlist, &perf_env);


	if (perf_evlist__start_sb_thread(sb_evlist, target)) {
	if (perf_evlist__start_sb_thread(top.sb_evlist, target)) {
		pr_debug("Couldn't start the BPF side band thread:\nBPF programs starting from now on won't be annotatable\n");
		pr_debug("Couldn't start the BPF side band thread:\nBPF programs starting from now on won't be annotatable\n");
		opts->no_bpf_event = true;
		opts->no_bpf_event = true;
	}
	}
@@ -1694,7 +1693,7 @@ int cmd_top(int argc, const char **argv)
	status = __cmd_top(&top);
	status = __cmd_top(&top);


	if (!opts->no_bpf_event)
	if (!opts->no_bpf_event)
		perf_evlist__stop_sb_thread(sb_evlist);
		perf_evlist__stop_sb_thread(top.sb_evlist);


out_delete_evlist:
out_delete_evlist:
	evlist__delete(top.evlist);
	evlist__delete(top.evlist);
+1 −1
Original line number Original line Diff line number Diff line
@@ -18,7 +18,7 @@ struct perf_session;


struct perf_top {
struct perf_top {
	struct perf_tool   tool;
	struct perf_tool   tool;
	struct evlist *evlist;
	struct evlist *evlist, *sb_evlist;
	struct record_opts record_opts;
	struct record_opts record_opts;
	struct annotation_options annotation_opts;
	struct annotation_options annotation_opts;
	struct evswitch	   evswitch;
	struct evswitch	   evswitch;