Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753047AbbBMOzc (ORCPT ); Fri, 13 Feb 2015 09:55:32 -0500 Received: from mail.kernel.org ([198.145.29.136]:49750 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752023AbbBMOza (ORCPT ); Fri, 13 Feb 2015 09:55:30 -0500 Date: Fri, 13 Feb 2015 11:55:55 -0300 From: Arnaldo Carvalho de Melo To: Yunlong Song Cc: a.p.zijlstra@chello.nl, paulus@samba.org, mingo@redhat.com, linux-kernel@vger.kernel.org, wangnan0@huawei.com Subject: Re: [PATCH 6/7] perf list: extend raw-dump to certain kind of events Message-ID: <20150213145555.GT24251@kernel.org> References: <1423833115-11199-1-git-send-email-yunlong.song@huawei.com> <1423833115-11199-7-git-send-email-yunlong.song@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1423833115-11199-7-git-send-email-yunlong.song@huawei.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4418 Lines: 124 Em Fri, Feb 13, 2015 at 09:11:54PM +0800, Yunlong Song escreveu: > Extend 'perf list --raw-dump' to 'perf list --raw-dump [hw|sw|cache > |tracepoint|pmu|event_glob]' in order to show the raw-dump of a > certain kind of events rather than all of the events. Again, please check that this doesn't break shell autocompletion, I haven't checked, do you keep the existing behaviour, i.e. if does --raw-dump without an argument shows all the events? - Arnaldo > Example > Before this patch: > $perf list --raw-dump hw > branch-instructions branch-misses bus-cycles cache-misses > cache-references cpu-cycles instructions stalled-cycles-backend > stalled-cycles-frontend > alignment-faults context-switches cpu-clock cpu-migrations > emulation-faults major-faults minor-faults page-faults task-clock > ... > ... > writeback:writeback_thread_start writeback:writeback_thread_stop > writeback:writeback_wait_iff_congested > writeback:writeback_wake_background writeback:writeback_wake_thread > > As shown above, all of the events are printed. > > After this patch: > $perf list --raw-dump hw > branch-instructions branch-misses bus-cycles cache-misses > cache-references cpu-cycles instructions stalled-cycles-backend > stalled-cycles-frontend > > As shown above, only the hw events are printed. > > Signed-off-by: Yunlong Song > --- > tools/perf/Documentation/perf-list.txt | 6 ++++++ > tools/perf/builtin-list.c | 21 ++++++++------------- > 2 files changed, 14 insertions(+), 13 deletions(-) > > diff --git a/tools/perf/Documentation/perf-list.txt b/tools/perf/Documentation/perf-list.txt > index 3e2aec9..4692d27 100644 > --- a/tools/perf/Documentation/perf-list.txt > +++ b/tools/perf/Documentation/perf-list.txt > @@ -127,6 +127,12 @@ To limit the list use: > One or more types can be used at the same time, listing the events for the > types specified. > > +Support raw format: > + > +. '--raw-dump', shows the raw-dump of all the events. > +. '--raw-dump [hw|sw|cache|tracepoint|pmu|event_glob]', shows the raw-dump of > + a certain kind of events. > + > SEE ALSO > -------- > linkperf:perf-stat[1], linkperf:perf-top[1], > diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c > index 003dec5..b81a62c 100644 > --- a/tools/perf/builtin-list.c > +++ b/tools/perf/builtin-list.c > @@ -36,38 +36,33 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused) > > setup_pager(); > > - if (raw_dump) { > - print_events(NULL, true); > - return 0; > - } > - > if (argc == 0) { > - print_events(NULL, false); > + print_events(NULL, raw_dump); > return 0; > } > > for (i = 0; i < argc; ++i) { > if (strcmp(argv[i], "tracepoint") == 0) > - print_tracepoint_events(NULL, NULL, false); > + print_tracepoint_events(NULL, NULL, raw_dump); > else if (strcmp(argv[i], "hw") == 0 || > strcmp(argv[i], "hardware") == 0) > print_symbol_events(NULL, PERF_TYPE_HARDWARE, > - event_symbols_hw, PERF_COUNT_HW_MAX, false); > + event_symbols_hw, PERF_COUNT_HW_MAX, raw_dump); > else if (strcmp(argv[i], "sw") == 0 || > strcmp(argv[i], "software") == 0) > print_symbol_events(NULL, PERF_TYPE_SOFTWARE, > - event_symbols_sw, PERF_COUNT_SW_MAX, false); > + event_symbols_sw, PERF_COUNT_SW_MAX, raw_dump); > else if (strcmp(argv[i], "cache") == 0 || > strcmp(argv[i], "hwcache") == 0) > - print_hwcache_events(NULL, false); > + print_hwcache_events(NULL, raw_dump); > else if (strcmp(argv[i], "pmu") == 0) > - print_pmu_events(NULL, false); > + print_pmu_events(NULL, raw_dump); > else { > char *sep = strchr(argv[i], ':'), *s; > int sep_idx; > > if (sep == NULL) { > - print_events(argv[i], false); > + print_events(argv[i], raw_dump); > continue; > } > sep_idx = sep - argv[i]; > @@ -76,7 +71,7 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused) > return -1; > > s[sep_idx] = '\0'; > - print_tracepoint_events(s, s + sep_idx + 1, false); > + print_tracepoint_events(s, s + sep_idx + 1, raw_dump); > free(s); > } > } > -- > 1.8.5.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/