lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20131227192142.GA3277@infradead.org>
Date:	Fri, 27 Dec 2013 17:21:42 -0200
From:	Arnaldo Carvalho de Melo <acme@...hat.com>
To:	Dongsheng Yang <yangds.fnst@...fujitsu.com>
Cc:	mingo@...nel.org, dsahern@...il.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/8] perf tools: Fix bug in 'perf list event_glob'.

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@...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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ