The man page has the details, here are some examples: [root@emilia ~]# perf list *fault* *:*wait* List of pre-defined events (to be used in -e): page-faults OR faults [Software event] minor-faults [Software event] major-faults [Software event] alignment-faults [Software event] emulation-faults [Software event] radeon:radeon_fence_wait_begin [Tracepoint event] radeon:radeon_fence_wait_end [Tracepoint event] writeback:wbc_writeback_wait [Tracepoint event] writeback:wbc_balance_dirty_wait [Tracepoint event] writeback:writeback_congestion_wait [Tracepoint event] writeback:writeback_wait_iff_congested [Tracepoint event] sched:sched_wait_task [Tracepoint event] sched:sched_process_wait [Tracepoint event] sched:sched_stat_wait [Tracepoint event] sched:sched_stat_iowait [Tracepoint event] syscalls:sys_enter_epoll_wait [Tracepoint event] syscalls:sys_exit_epoll_wait [Tracepoint event] syscalls:sys_enter_epoll_pwait [Tracepoint event] syscalls:sys_exit_epoll_pwait [Tracepoint event] syscalls:sys_enter_rt_sigtimedwait [Tracepoint event] syscalls:sys_exit_rt_sigtimedwait [Tracepoint event] syscalls:sys_enter_waitid [Tracepoint event] syscalls:sys_exit_waitid [Tracepoint event] syscalls:sys_enter_wait4 [Tracepoint event] syscalls:sys_exit_wait4 [Tracepoint event] syscalls:sys_enter_waitpid [Tracepoint event] syscalls:sys_exit_waitpid [Tracepoint event] [root@emilia ~]# Suggested-by: Ingo Molnar <mingo@elte.hu> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Tom Zanussi <tzanussi@gmail.com> LKML-Reference: <new-submission> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
		
			
				
	
	
		
			93 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| perf-list(1)
 | ||
| ============
 | ||
| 
 | ||
| NAME
 | ||
| ----
 | ||
| perf-list - List all symbolic event types
 | ||
| 
 | ||
| SYNOPSIS
 | ||
| --------
 | ||
| [verse]
 | ||
| 'perf list' [hw|sw|cache|tracepoint|event_glob]
 | ||
| 
 | ||
| DESCRIPTION
 | ||
| -----------
 | ||
| This command displays the symbolic event types which can be selected in the
 | ||
| various perf commands with the -e option.
 | ||
| 
 | ||
| EVENT MODIFIERS
 | ||
| ---------------
 | ||
| 
 | ||
| Events can optionally have a modifer by appending a colon and one or
 | ||
| more modifiers.  Modifiers allow the user to restrict when events are
 | ||
| counted with 'u' for user-space, 'k' for kernel, 'h' for hypervisor.
 | ||
| 
 | ||
| The 'p' modifier can be used for specifying how precise the instruction
 | ||
| address should be. The 'p' modifier is currently only implemented for
 | ||
| Intel PEBS and can be specified multiple times:
 | ||
|   0 - SAMPLE_IP can have arbitrary skid
 | ||
|   1 - SAMPLE_IP must have constant skid
 | ||
|   2 - SAMPLE_IP requested to have 0 skid
 | ||
|   3 - SAMPLE_IP must have 0 skid
 | ||
| 
 | ||
| The PEBS implementation now supports up to 2.
 | ||
| 
 | ||
| RAW HARDWARE EVENT DESCRIPTOR
 | ||
| -----------------------------
 | ||
| Even when an event is not available in a symbolic form within perf right now,
 | ||
| it can be encoded in a per processor specific way.
 | ||
| 
 | ||
| For instance For x86 CPUs NNN represents the raw register encoding with the
 | ||
| layout of IA32_PERFEVTSELx MSRs (see [Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide] Figure 30-1 Layout
 | ||
| of IA32_PERFEVTSELx MSRs) or AMD's PerfEvtSeln (see [AMD64 Architecture Programmer’s Manual Volume 2: System Programming], Page 344,
 | ||
| Figure 13-7 Performance Event-Select Register (PerfEvtSeln)).
 | ||
| 
 | ||
| Example:
 | ||
| 
 | ||
| If the Intel docs for a QM720 Core i7 describe an event as:
 | ||
| 
 | ||
|   Event  Umask  Event Mask
 | ||
|   Num.   Value  Mnemonic    Description                        Comment
 | ||
| 
 | ||
|   A8H      01H  LSD.UOPS    Counts the number of micro-ops     Use cmask=1 and
 | ||
|                             delivered by loop stream detector  invert to count
 | ||
|                                                                cycles
 | ||
| 
 | ||
| raw encoding of 0x1A8 can be used:
 | ||
| 
 | ||
|  perf stat -e r1a8 -a sleep 1
 | ||
|  perf record -e r1a8 ...
 | ||
| 
 | ||
| You should refer to the processor specific documentation for getting these
 | ||
| details. Some of them are referenced in the SEE ALSO section below.
 | ||
| 
 | ||
| OPTIONS
 | ||
| -------
 | ||
| 
 | ||
| Without options all known events will be listed.
 | ||
| 
 | ||
| To limit the list use:
 | ||
| 
 | ||
| . 'hw' or 'hardware' to list hardware events such as cache-misses, etc.
 | ||
| 
 | ||
| . 'sw' or 'software' to list software events such as context switches, etc.
 | ||
| 
 | ||
| . 'cache' or 'hwcache' to list hardware cache events such as L1-dcache-loads, etc.
 | ||
| 
 | ||
| . 'tracepoint' to list all tracepoint events, alternatively use
 | ||
|   'subsys_glob:event_glob' to filter by tracepoint subsystems such as sched,
 | ||
|   block, etc.
 | ||
| 
 | ||
| . If none of the above is matched, it will apply the supplied glob to all
 | ||
|   events, printing the ones that match.
 | ||
| 
 | ||
| One or more types can be used at the same time, listing the events for the
 | ||
| types specified.
 | ||
| 
 | ||
| SEE ALSO
 | ||
| --------
 | ||
| linkperf:perf-stat[1], linkperf:perf-top[1],
 | ||
| linkperf:perf-record[1],
 | ||
| http://www.intel.com/Assets/PDF/manual/253669.pdf[Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide],
 | ||
| http://support.amd.com/us/Processor_TechDocs/24593.pdf[AMD64 Architecture Programmer’s Manual Volume 2: System Programming]
 |