From: Namhyung Kim <namhy...@kernel.org> The dummy tracking event is only for tracking task/comom/mmap events and has no sample data for itself. So no need to report, just skip it.
Link: http://lkml.kernel.org/n/tip-l2hq7g8c7lt73aqmqpo6d...@git.kernel.org Signed-off-by: Namhyung Kim <namhy...@kernel.org> Signed-off-by: Jiri Olsa <jo...@kernel.org> --- tools/perf/builtin-report.c | 3 +++ tools/perf/ui/browsers/hists.c | 30 ++++++++++++++++++++++++------ tools/perf/ui/gtk/hists.c | 3 +++ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 7507e4d6dce1..3666a6b82ff1 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -471,6 +471,9 @@ static int perf_evlist__tty_browse_hists(struct perf_evlist *evlist, struct hists *hists = evsel__hists(pos); const char *evname = perf_evsel__name(pos); + if (perf_evsel__is_dummy_tracking(pos)) + continue; + if (symbol_conf.event_group && !perf_evsel__is_group_leader(pos)) continue; diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index a96f62ca984a..a517becda28a 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c @@ -3214,14 +3214,17 @@ static int perf_evsel_menu__run(struct perf_evsel_menu *menu, return key; } -static bool filter_group_entries(struct ui_browser *browser __maybe_unused, - void *entry) +static bool filter_entries(struct ui_browser *browser __maybe_unused, + void *entry) { struct perf_evsel *evsel = list_entry(entry, struct perf_evsel, node); if (symbol_conf.event_group && !perf_evsel__is_group_leader(evsel)) return true; + if (perf_evsel__is_dummy_tracking(evsel)) + return true; + return false; } @@ -3240,7 +3243,7 @@ static int __perf_evlist__tui_browse_hists(struct perf_evlist *evlist, .refresh = ui_browser__list_head_refresh, .seek = ui_browser__list_head_seek, .write = perf_evsel_menu__write, - .filter = filter_group_entries, + .filter = filter_entries, .nr_entries = nr_entries, .priv = evlist, }, @@ -3271,11 +3274,11 @@ int perf_evlist__tui_browse_hists(struct perf_evlist *evlist, const char *help, struct annotation_options *annotation_opts) { int nr_entries = evlist->nr_entries; + struct perf_evsel *first = perf_evlist__first(evlist); + struct perf_evsel *pos; single_entry: if (nr_entries == 1) { - struct perf_evsel *first = perf_evlist__first(evlist); - return perf_evsel__hists_browse(first, nr_entries, help, false, hbt, min_pcnt, env, warn_lost_event, @@ -3283,10 +3286,11 @@ int perf_evlist__tui_browse_hists(struct perf_evlist *evlist, const char *help, } if (symbol_conf.event_group) { - struct perf_evsel *pos; nr_entries = 0; evlist__for_each_entry(evlist, pos) { + if (perf_evsel__is_dummy_tracking(pos)) + continue; if (perf_evsel__is_group_leader(pos)) nr_entries++; } @@ -3295,6 +3299,20 @@ int perf_evlist__tui_browse_hists(struct perf_evlist *evlist, const char *help, goto single_entry; } + evlist__for_each_entry(evlist, pos) { + if (perf_evsel__is_dummy_tracking(pos)) + nr_entries--; + } + + if (nr_entries == 1) { + evlist__for_each_entry(evlist, pos) { + if (!perf_evsel__is_dummy_tracking(pos)) { + first = pos; + goto single_entry; + } + } + } + return __perf_evlist__tui_browse_hists(evlist, nr_entries, help, hbt, min_pcnt, env, warn_lost_event, diff --git a/tools/perf/ui/gtk/hists.c b/tools/perf/ui/gtk/hists.c index 4ab663ec3e5e..adbece4e0071 100644 --- a/tools/perf/ui/gtk/hists.c +++ b/tools/perf/ui/gtk/hists.c @@ -639,6 +639,9 @@ int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist, char buf[512]; size_t size = sizeof(buf); + if (perf_evsel__is_dummy_tracking(pos)) + continue; + if (symbol_conf.event_group) { if (!perf_evsel__is_group_leader(pos)) continue; -- 2.17.1