diff options
Diffstat (limited to 'documentation')
| -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): |
