summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/profile-manual/profile-manual-usage.xml24
1 files changed, 12 insertions, 12 deletions
diff --git a/documentation/profile-manual/profile-manual-usage.xml b/documentation/profile-manual/profile-manual-usage.xml
index 9116d5bf71..c1ceb5830a 100644
--- a/documentation/profile-manual/profile-manual-usage.xml
+++ b/documentation/profile-manual/profile-manual-usage.xml
@@ -22,7 +22,7 @@
22 <para> 22 <para>
23 Don't let the fact that it's part of the kernel fool you into thinking 23 Don't let the fact that it's part of the kernel fool you into thinking
24 that it's only for tracing and profiling the kernel - you can indeed 24 that it's only for tracing and profiling the kernel - you can indeed
25 use it to trace and profile just the kernel , but you can also use it 25 use it to trace and profile just the kernel, but you can also use it
26 to profile specific applications separately (with or without kernel 26 to profile specific applications separately (with or without kernel
27 context), and you can also use it to trace and profile the kernel 27 context), and you can also use it to trace and profile the kernel
28 and all applications on the system simultaneously to gain a system-wide 28 and all applications on the system simultaneously to gain a system-wide
@@ -30,10 +30,10 @@
30 </para> 30 </para>
31 31
32 <para> 32 <para>
33 In many ways, it aims to be a superset of all the tracing and profiling 33 In many ways, perf aims to be a superset of all the tracing and profiling
34 tools available in Linux today, including all the other tools covered 34 tools available in Linux today, including all the other tools covered
35 in this HOWTO. The past couple of years have seen perf subsume a lot 35 in this HOWTO. The past couple of years have seen perf subsume a lot
36 of the functionality of those other tools, and at the same time those 36 of the functionality of those other tools and, at the same time, those
37 other tools have removed large portions of their previous functionality 37 other tools have removed large portions of their previous functionality
38 and replaced it with calls to the equivalent functionality now 38 and replaced it with calls to the equivalent functionality now
39 implemented by the perf subsystem. Extrapolation suggests that at 39 implemented by the perf subsystem. Extrapolation suggests that at
@@ -126,7 +126,7 @@
126 wget <ulink url='http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2'>http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2</ulink> 126 wget <ulink url='http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2'>http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2</ulink>
127 </literallayout> 127 </literallayout>
128 The quickest and easiest way to get some basic overall data about 128 The quickest and easiest way to get some basic overall data about
129 what's going on for a particular workload it to profile it using 129 what's going on for a particular workload is to profile it using
130 'perf stat'. 'perf stat' basically profiles using a few default 130 'perf stat'. 'perf stat' basically profiles using a few default
131 counters and displays the summed counts at the end of the run: 131 counters and displays the summed counts at the end of the run:
132 <literallayout class='monospaced'> 132 <literallayout class='monospaced'>
@@ -201,7 +201,7 @@
201 As our first attempt at profiling this workload, we'll simply 201 As our first attempt at profiling this workload, we'll simply
202 run 'perf record', handing it the workload we want to profile 202 run 'perf record', handing it the workload we want to profile
203 (everything after 'perf record' and any perf options we hand 203 (everything after 'perf record' and any perf options we hand
204 it - here none - will be executedin a new shell). perf collects 204 it - here none - will be executed in a new shell). perf collects
205 samples until the process exits and records them in a file named 205 samples until the process exits and records them in a file named
206 'perf.data' in the current working directory. 206 'perf.data' in the current working directory.
207 <literallayout class='monospaced'> 207 <literallayout class='monospaced'>
@@ -241,7 +241,7 @@
241 Notice also that the above report shows an entry for 'busybox', 241 Notice also that the above report shows an entry for 'busybox',
242 which is the executable that implements 'wget' in Yocto, but that 242 which is the executable that implements 'wget' in Yocto, but that
243 instead of a useful function name in that entry, it displays 243 instead of a useful function name in that entry, it displays
244 an not-so-friendly hex value instead. The steps below will show 244 a not-so-friendly hex value instead. The steps below will show
245 how to fix that problem. 245 how to fix that problem.
246 </para> 246 </para>
247 247
@@ -308,7 +308,7 @@
308 </para> 308 </para>
309 309
310 <para> 310 <para>
311 Notice also that here there's also a case where the a hex value 311 Notice also that here there's also a case where the hex value
312 is displayed in the callstack, here in the expanded 312 is displayed in the callstack, here in the expanded
313 sys_clock_gettime() function. Later we'll see it resolve to a 313 sys_clock_gettime() function. Later we'll see it resolve to a
314 userspace function call in busybox. 314 userspace function call in busybox.
@@ -367,7 +367,7 @@
367 367
368 <para> 368 <para>
369 To generate the debug info for the packages in the image, we can 369 To generate the debug info for the packages in the image, we can
370 to add dbg-pkgs to EXTRA_IMAGE_FEATURES in local.conf. For example: 370 add dbg-pkgs to EXTRA_IMAGE_FEATURES in local.conf. For example:
371 <literallayout class='monospaced'> 371 <literallayout class='monospaced'>
372 EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs" 372 EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
373 </literallayout> 373 </literallayout>
@@ -462,7 +462,7 @@
462 The tracing and profiling infrastructure in Linux has become 462 The tracing and profiling infrastructure in Linux has become
463 unified in a way that allows us to use the same tool with a 463 unified in a way that allows us to use the same tool with a
464 completely different set of counters, not just the standard 464 completely different set of counters, not just the standard
465 hardware counters that traditionally tools have had to restrict 465 hardware counters that traditional tools have had to restrict
466 themselves to (of course the traditional tools can also make use 466 themselves to (of course the traditional tools can also make use
467 of the expanded possibilities now available to them, and in some 467 of the expanded possibilities now available to them, and in some
468 cases have, as mentioned previously). 468 cases have, as mentioned previously).
@@ -828,7 +828,7 @@
828 </para> 828 </para>
829 829
830 <para> 830 <para>
831 Luckily, there is general-purpose way to handle such needs, 831 Luckily, there is a general-purpose way to handle such needs,
832 called 'programming languages'. Making programming languages 832 called 'programming languages'. Making programming languages
833 easily available to apply to such problems given the specific 833 easily available to apply to such problems given the specific
834 format of data is called a 'programming language binding' for 834 format of data is called a 'programming language binding' for
@@ -925,9 +925,9 @@
925 </literallayout> 925 </literallayout>
926 Each event handler function in the generated code is modified 926 Each event handler function in the generated code is modified
927 to do this. For convenience, we define a common function called 927 to do this. For convenience, we define a common function called
928 inc_counts() that each handler calls; inc_counts simply tallies 928 inc_counts() that each handler calls; inc_counts() simply tallies
929 a count for each event using the 'counts' hash, which is a 929 a count for each event using the 'counts' hash, which is a
930 specialized has function that does Perl-like autovivification, a 930 specialized hash function that does Perl-like autovivification, a
931 capability that's extremely useful for kinds of multi-level 931 capability that's extremely useful for kinds of multi-level
932 aggregation commonly used in processing traces (see perf's 932 aggregation commonly used in processing traces (see perf's
933 documentation on the Python language binding for details): 933 documentation on the Python language binding for details):