perf top: Move sb_evlist to 'struct perf_top'
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 24 Apr 2020 13:40:54 +0000 (10:40 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 5 May 2020 19:35:29 +0000 (16:35 -0300)
Where state related to a 'perf top' session is grouped.

Acked-by: Jiri 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: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-top.c
tools/perf/util/top.h

index 6b067a5..70e1c73 100644 (file)
@@ -1580,7 +1580,6 @@ int cmd_top(int argc, const char **argv)
        OPTS_EVSWITCH(&top.evswitch),
        OPT_END()
        };
-       struct evlist *sb_evlist = NULL;
        const char * const top_usage[] = {
                "perf top [<options>]",
                NULL
@@ -1744,9 +1743,9 @@ int cmd_top(int argc, const char **argv)
        }
 
        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");
                opts->no_bpf_event = true;
        }
@@ -1754,7 +1753,7 @@ int cmd_top(int argc, const char **argv)
        status = __cmd_top(&top);
 
        if (!opts->no_bpf_event)
-               perf_evlist__stop_sb_thread(sb_evlist);
+               perf_evlist__stop_sb_thread(top.sb_evlist);
 
 out_delete_evlist:
        evlist__delete(top.evlist);
index 45dc84d..ff83912 100644 (file)
@@ -18,7 +18,7 @@ struct perf_session;
 
 struct perf_top {
        struct perf_tool   tool;
-       struct evlist *evlist;
+       struct evlist *evlist, *sb_evlist;
        struct record_opts record_opts;
        struct annotation_options annotation_opts;
        struct evswitch    evswitch;