All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Yunlong Song <yunlong.song@huawei.com>
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
Date: Fri, 13 Feb 2015 11:55:55 -0300	[thread overview]
Message-ID: <20150213145555.GT24251@kernel.org> (raw)
In-Reply-To: <1423833115-11199-7-git-send-email-yunlong.song@huawei.com>

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 <yunlong.song@huawei.com>
> ---
>  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

  reply	other threads:[~2015-02-13 14:55 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-13 13:11 [PATCH 0/7] perf list: make some improvements and fixes Yunlong Song
2015-02-13 13:11 ` [PATCH 1/7] perf list: clean up the printing functions of hardware/software events Yunlong Song
2015-02-13 13:11 ` [PATCH 2/7] perf list: sort the output of 'perf list' to view more clearly Yunlong Song
2015-02-13 14:45   ` Arnaldo Carvalho de Melo
2015-02-13 14:49     ` Arnaldo Carvalho de Melo
2015-02-15 10:19       ` Yunlong Song
2015-02-15 10:11     ` Yunlong Song
2015-02-13 13:11 ` [PATCH 3/7] perf list: fix some inaccuracy problem when parsing the argument Yunlong Song
2015-02-13 13:11 ` [PATCH 4/7] perf list: fix a bug of segmentation fault Yunlong Song
2015-02-18 18:41   ` [tip:perf/core] perf tools: Fix " tip-bot for Yunlong Song
2015-02-13 13:11 ` [PATCH 5/7] perf list: avoid confusion of perf output and the next command prompt Yunlong Song
2015-02-13 14:52   ` Arnaldo Carvalho de Melo
2015-02-15 10:01     ` Yunlong Song
2015-02-13 13:11 ` [PATCH 6/7] perf list: extend raw-dump to certain kind of events Yunlong Song
2015-02-13 14:55   ` Arnaldo Carvalho de Melo [this message]
2015-02-15 10:05     ` Yunlong Song
2015-02-13 13:11 ` [PATCH 7/7] perf list: place the guiding text in its right position Yunlong Song
2015-02-18 18:42   ` [tip:perf/core] perf list: Place the header " tip-bot for Yunlong Song

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150213145555.GT24251@kernel.org \
    --to=acme@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulus@samba.org \
    --cc=wangnan0@huawei.com \
    --cc=yunlong.song@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.