From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758926AbeAIPfu (ORCPT + 1 other); Tue, 9 Jan 2018 10:35:50 -0500 Received: from mx1.redhat.com ([209.132.183.28]:54612 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758891AbeAIPfo (ORCPT ); Tue, 9 Jan 2018 10:35:44 -0500 From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: lkml , Ingo Molnar , Namhyung Kim , David Ahern , Andi Kleen , Alexander Shishkin , Peter Zijlstra Subject: [PATCH 08/49] perf report: Skip dummy tracking event Date: Tue, 9 Jan 2018 16:34:41 +0100 Message-Id: <20180109153522.14116-9-jolsa@kernel.org> In-Reply-To: <20180109153522.14116-1-jolsa@kernel.org> References: <20180109153522.14116-1-jolsa@kernel.org> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Tue, 09 Jan 2018 15:35:44 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: From: Namhyung Kim 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-l2hq7g8c7lt73aqmqpo6dywj@git.kernel.org Signed-off-by: Namhyung Kim Signed-off-by: Jiri Olsa --- 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 3685ac101b16..f7338b594844 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -433,6 +433,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 68146f4620a5..afd79ec7585e 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c @@ -3267,14 +3267,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; } @@ -3291,7 +3294,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, }, @@ -3318,21 +3321,22 @@ int perf_evlist__tui_browse_hists(struct perf_evlist *evlist, const char *help, struct perf_env *env) { 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); } 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++; } @@ -3341,6 +3345,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); } diff --git a/tools/perf/ui/gtk/hists.c b/tools/perf/ui/gtk/hists.c index 24e1ec201ffd..570b38062dcf 100644 --- a/tools/perf/ui/gtk/hists.c +++ b/tools/perf/ui/gtk/hists.c @@ -638,6 +638,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.13.6