diff options
author | Robert P. J. Day <rpjday@crashcourse.ca> | 2013-11-15 08:47:32 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-12-03 12:53:09 +0000 |
commit | 46ac6c616b8068c82812155644a735e7648b61f0 (patch) | |
tree | 4c5a973b2f6d3a1e737916e0565a3cc59c283754 /documentation/profile-manual/profile-manual-usage.xml | |
parent | bbc820ec5800322065bec34c77883b24d7d0cd56 (diff) | |
download | poky-46ac6c616b8068c82812155644a735e7648b61f0.tar.gz |
profile-manual: Review edits from Robert P. J. Day
Given the length of the tools sections in the profiling manual,
I'm doing each tool separately so that patches come in
manageable chunks.
(From yocto-docs rev: f6544c8df852f83619d942b3a6f624fc62981a40)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/profile-manual/profile-manual-usage.xml')
-rw-r--r-- | documentation/profile-manual/profile-manual-usage.xml | 24 |
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): |