Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | These instructions are deliberately very basic. If you want something clever, |
| 2 | go read the real docs ;-) Please don't add more stuff, but feel free to |
| 3 | correct my mistakes ;-) (mbligh@aracnet.com) |
| 4 | Thanks to John Levon, Dave Hansen, et al. for help writing this. |
| 5 | |
| 6 | <test> is the thing you're trying to measure. |
| 7 | Make sure you have the correct System.map / vmlinux referenced! |
| 8 | |
| 9 | It is probably easiest to use "make install" for linux and hack |
| 10 | /sbin/installkernel to copy vmlinux to /boot, in addition to vmlinuz, |
| 11 | config, System.map, which are usually installed by default. |
| 12 | |
| 13 | Readprofile |
| 14 | ----------- |
| 15 | A recent readprofile command is needed for 2.6, such as found in util-linux |
| 16 | 2.12a, which can be downloaded from: |
| 17 | |
| 18 | http://www.kernel.org/pub/linux/utils/util-linux/ |
| 19 | |
| 20 | Most distributions will ship it already. |
| 21 | |
| 22 | Add "profile=2" to the kernel command line. |
| 23 | |
| 24 | clear readprofile -r |
| 25 | <test> |
| 26 | dump output readprofile -m /boot/System.map > captured_profile |
| 27 | |
| 28 | Oprofile |
| 29 | -------- |
| 30 | Get the source (I use 0.8) from http://oprofile.sourceforge.net/ |
| 31 | and add "idle=poll" to the kernel command line |
| 32 | Configure with CONFIG_PROFILING=y and CONFIG_OPROFILE=y & reboot on new kernel |
| 33 | ./configure --with-kernel-support |
| 34 | make install |
| 35 | |
| 36 | For superior results, be sure to enable the local APIC. If opreport sees |
| 37 | a 0Hz CPU, APIC was not on. Be aware that idle=poll may mean a performance |
| 38 | penalty. |
| 39 | |
| 40 | One time setup: |
| 41 | opcontrol --setup --vmlinux=/boot/vmlinux |
| 42 | |
| 43 | clear opcontrol --reset |
| 44 | start opcontrol --start |
| 45 | <test> |
| 46 | stop opcontrol --stop |
| 47 | dump output opreport > output_file |
| 48 | |
| 49 | To only report on the kernel, run opreport /boot/vmlinux > output_file |
| 50 | |
| 51 | A reset is needed to clear old statistics, which survive a reboot. |
| 52 | |