From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Cc: mingo@kernel.org, dsahern@gmail.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/8] perf tools: Fix bug in 'perf list event_glob'.
Date: Fri, 27 Dec 2013 17:21:42 -0200 [thread overview]
Message-ID: <20131227192142.GA3277@infradead.org> (raw)
In-Reply-To: <5d72ccb261f7f30da7d2e0e05bf5c6352672c9a4.1388184724.git.yangds.fnst@cn.fujitsu.com>
Em Fri, Dec 27, 2013 at 06:03:27PM -0500, Dongsheng Yang escreveu:
> As what the usage showing, we can input a event_glob as an argument to list
> all symbols. But it does not work well right now.
>
> Example:
> # perf list kvmmmu
>
> List of pre-defined events (to be used in -e):
>
> This patch make it work well as follows.
It works:
List of pre-defined events (to be used in -e):
[root@zoo ~]# perf list kvmmmu*:*
kvmmmu:kvm_mmu_pagetable_walk [Tracepoint event]
kvmmmu:kvm_mmu_paging_element [Tracepoint event]
kvmmmu:kvm_mmu_set_accessed_bit [Tracepoint event]
kvmmmu:kvm_mmu_set_dirty_bit [Tracepoint event]
kvmmmu:kvm_mmu_walker_error [Tracepoint event]
kvmmmu:kvm_mmu_get_page [Tracepoint event]
kvmmmu:kvm_mmu_sync_page [Tracepoint event]
kvmmmu:kvm_mmu_unsync_page [Tracepoint event]
kvmmmu:kvm_mmu_prepare_zap_page [Tracepoint event]
kvmmmu:mark_mmio_spte [Tracepoint event]
kvmmmu:handle_mmio_page_fault [Tracepoint event]
kvmmmu:fast_page_fault [Tracepoint event]
kvmmmu:kvm_mmu_invalidate_zap_all_pages [Tracepoint event]
kvmmmu:check_mmio_spte [Tracepoint event]
[root@zoo ~]#
The documentation says, as you repeated above, that a glob can be
provided, not a _substring_ :-)
To achive a result similar to:
[root@zoo ~]# perf list hw
cpu-cycles OR cycles [Hardware event]
instructions [Hardware event]
cache-references [Hardware event]
cache-misses [Hardware event]
branch-instructions OR branches [Hardware event]
branch-misses [Hardware event]
bus-cycles [Hardware event]
stalled-cycles-frontend OR idle-cycles-frontend [Hardware event]
ref-cycles [Hardware event]
[root@zoo ~]#
We could say that if no ':' is found in the provided string, and it
doesn't matches one of the other classes, i.e. hw, sw, cache, etc, and
it is the name of a tracepoint subsystem, then it would be equivalent
to 'tracepoint_subsys:*', i.e. 'perf list skb' woud be equivalent to:
[root@zoo ~]# perf list skb:*
skb:kfree_skb [Tracepoint event]
skb:consume_skb [Tracepoint event]
skb:skb_copy_datagram_iovec [Tracepoint event]
[root@zoo ~]#
- Arnaldo
> Verification:
> # perf list kvmmmu
>
> List of pre-defined events (to be used in -e):
> kvmmmu:kvm_mmu_pagetable_walk [Tracepoint event]
> kvmmmu:kvm_mmu_paging_element [Tracepoint event]
> kvmmmu:kvm_mmu_set_accessed_bit [Tracepoint event]
> kvmmmu:kvm_mmu_set_dirty_bit [Tracepoint event]
> kvmmmu:kvm_mmu_walker_error [Tracepoint event]
> kvmmmu:kvm_mmu_get_page [Tracepoint event]
> kvmmmu:kvm_mmu_sync_page [Tracepoint event]
> kvmmmu:kvm_mmu_unsync_page [Tracepoint event]
> kvmmmu:kvm_mmu_prepare_zap_page [Tracepoint event]
> kvmmmu:mark_mmio_spte [Tracepoint event]
> kvmmmu:handle_mmio_page_fault [Tracepoint event]
> kvmmmu:fast_page_fault [Tracepoint event]
>
> Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
> ---
> tools/perf/util/parse-events.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
> index 094c28b..d887ea4 100644
> --- a/tools/perf/util/parse-events.c
> +++ b/tools/perf/util/parse-events.c
> @@ -1236,6 +1236,8 @@ void print_events(const char *event_glob, bool name_only)
>
> print_pmu_events(event_glob, name_only);
>
> + print_tracepoint_events(event_glob, NULL, name_only);
> +
> if (event_glob != NULL)
> return;
>
> @@ -1254,8 +1256,6 @@ void print_events(const char *event_glob, bool name_only)
> event_type_descriptors[PERF_TYPE_BREAKPOINT]);
> printf("\n");
> }
> -
> - print_tracepoint_events(NULL, NULL, name_only);
> }
>
> int parse_events__is_hardcoded_term(struct parse_events_term *term)
> --
> 1.8.2.1
next prev parent reply other threads:[~2013-12-27 19:21 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-27 23:03 [PATCH 0/8] Enhancement for perf list Dongsheng Yang
2013-12-27 23:03 ` [PATCH 1/8] perf tools: Fix bug in 'perf list event_glob' Dongsheng Yang
2013-12-27 19:21 ` Arnaldo Carvalho de Melo [this message]
2013-12-29 0:58 ` Dongsheng Yang
2013-12-27 23:03 ` [PATCH 2/8] perf tools: Make the all print_xxx_event functions to return unsigned int Dongsheng Yang
2013-12-27 23:03 ` [PATCH 3/8] perf tools: Make the print_pmu_events funtion " Dongsheng Yang
2013-12-27 23:03 ` [PATCH 4/8] perf tools: Improve the message of perf list for unexpected input Dongsheng Yang
2013-12-27 23:03 ` [PATCH 5/8] perf tools: Add support of name_only for print_events_type() function Dongsheng Yang
2013-12-27 23:03 ` [PATCH 6/8] perf tools: Make --raw-dump work as a proper option for perf list Dongsheng Yang
2013-12-27 23:03 ` [PATCH 7/8] perf tools: Fix bug when --raw-dump is not the first arguement " Dongsheng Yang
2013-12-27 23:03 ` [PATCH 8/8] perf tools: Enhancement for perf list with --raw-dump Dongsheng Yang
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=20131227192142.GA3277@infradead.org \
--to=acme@redhat.com \
--cc=dsahern@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=yangds.fnst@cn.fujitsu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox