aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2010-05-07 13:07:05 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2010-05-07 13:07:05 -0400
commit1cf4a0632c24ea61162ed819bde358bc94c55510 (patch)
treeba5cfceb0bd6b48f15e2993706876035f4a174a4 /tools/perf
parent4778e0e8c64f683a71632dba1cff1f85f76f83c4 (diff)
perf list: Improve the raw hw event descriptor documentation
It was x86 specific and imcomplete at that, improve the situation by making it clear where the example provided applies and by adding the URLs for the Intel and AMD manuals where this is discussed in depth. Acked-by: Robert Richter <robert.richter@amd.com> Cc: Cyrill Gorcunov <gorcunov@gmail.com> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Tom Zanussi <tzanussi@gmail.com> Cc: Robert Richter <robert.richter@amd.com> Reported-by: Robert Richter <robert.richter@amd.com LKML-Reference: <new-submission> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/Documentation/perf-list.txt19
-rw-r--r--tools/perf/util/parse-events.c3
2 files changed, 18 insertions, 4 deletions
diff --git a/tools/perf/Documentation/perf-list.txt b/tools/perf/Documentation/perf-list.txt
index ad765e0b8860..43e3dd284b90 100644
--- a/tools/perf/Documentation/perf-list.txt
+++ b/tools/perf/Documentation/perf-list.txt
@@ -18,8 +18,16 @@ various perf commands with the -e option.
18RAW HARDWARE EVENT DESCRIPTOR 18RAW HARDWARE EVENT DESCRIPTOR
19----------------------------- 19-----------------------------
20Even when an event is not available in a symbolic form within perf right now, 20Even when an event is not available in a symbolic form within perf right now,
21it can be encoded as <UMASK VALUE><EVENT NUM>, for instance, if the Intel docs 21it can be encoded in a per processor specific way.
22describe an event as: 22
23For instance For x86 CPUs NNN represents the raw register encoding with the
24layout of IA32_PERFEVTSELx MSRs (see [Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide] Figure 30-1 Layout
25of IA32_PERFEVTSELx MSRs) or AMD's PerfEvtSeln (see [AMD64 Architecture Programmer’s Manual Volume 2: System Programming], Page 344,
26Figure 13-7 Performance Event-Select Register (PerfEvtSeln)).
27
28Example:
29
30If the Intel docs for a QM720 Core i7 describe an event as:
23 31
24 Event Umask Event Mask 32 Event Umask Event Mask
25 Num. Value Mnemonic Description Comment 33 Num. Value Mnemonic Description Comment
@@ -33,6 +41,9 @@ raw encoding of 0x1A8 can be used:
33 perf stat -e r1a8 -a sleep 1 41 perf stat -e r1a8 -a sleep 1
34 perf record -e r1a8 ... 42 perf record -e r1a8 ...
35 43
44You should refer to the processor specific documentation for getting these
45details. Some of them are referenced in the SEE ALSO section below.
46
36OPTIONS 47OPTIONS
37------- 48-------
38None 49None
@@ -40,4 +51,6 @@ None
40SEE ALSO 51SEE ALSO
41-------- 52--------
42linkperf:perf-stat[1], linkperf:perf-top[1], 53linkperf:perf-stat[1], linkperf:perf-top[1],
43linkperf:perf-record[1] 54linkperf:perf-record[1],
55http://www.intel.com/Assets/PDF/manual/253669.pdf[Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide],
56http://support.amd.com/us/Processor_TechDocs/24593.pdf[AMD64 Architecture Programmer’s Manual Volume 2: System Programming]
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index bc8b7e614207..7b24b5dee8b3 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -936,7 +936,8 @@ void print_events(void)
936 936
937 printf("\n"); 937 printf("\n");
938 printf(" %-42s [%s]\n", 938 printf(" %-42s [%s]\n",
939 "rNNN (NNN=<UMASK VALUE><EVENT NUM>)", event_type_descriptors[PERF_TYPE_RAW]); 939 "rNNN (see 'perf list --help' on how to encode it)",
940 event_type_descriptors[PERF_TYPE_RAW]);
940 printf("\n"); 941 printf("\n");
941 942
942 printf(" %-42s [%s]\n", 943 printf(" %-42s [%s]\n",