kerneltop - shows kernel function usage in an interactive style like 'top'
kerneltop [ options ]
This manpage documents version 0.8 of the program.
The kerneltop command uses the /proc/profile and the kernel system map to print ascii data on standard output, updated once a second. The output is organized in three columns: the first is the address of the function, the second is the name of the C function in the kernel, and the third number of clock ticks the function has taken. The output is filled with blanks to ease readability, and can either be sorted by the number of ticks per function (the default), or the address of the function.
Available command line options:
- -m mapfile
- Specify a mapfile, which by default is /boot/System.map, or /boot/System.map-`uname -r` if /boot/System.map doesn't exist. You should specify the map file on the command-line if your current kernel isn't the last one you compiled, or `uname -r` does not refer to the correct suffix for the current System.map file. If the name of the map file ends with `.gz' it is decompressed on the fly.
- -p profile
- Specify a different profiling buffer, which by default is /proc/profile. This should only be necessary if the proc filesystem is mounted somewhere other than /proc.
- -l lines
- Lines. Number of lines to print on the display. Default is 20 and the maximum is 100.
- -s seconds
- Sleep time between each pass in seconds. Default is 1 second.
- -t ticks
- Lower threshold number of ticks to print. Default is 1 tick.
- Unsorted output. Default is sorted (by ticks). Note that unsorted output is actually sorted by address.
- Version. This makes kerneltop print its version number and exit.
Display 46 lines of output (useful for 50 line terminals):
kerneltop -l 46
Show only proceses that use 5 ticks or more:
kerneltop -t 5
Show unsorted output by default:
There are a number of interactive commands available in kerneltop. The effect of these commands is documented above under OPTIONS.
<h> or <?>: Help
This is simply a list of available commands for the interactive mode.
Set number of console lines to use for display
Set number of seconds between sample periods
Set lower threshold for number of ticks required to be printed
Leaves the program
Toggles between unsorted and sorted display (sorted by ticks)
kerneltop works with a 2.6.x or newer kernel. Do not expect previous kernels to work, but they might. YMMV.
This program only works with ELF kernels. The change for a.out kernels is trivial, and left as an exercise to the a.out user.
To enable profiling, the kernel must be rebooted, because no profiling module is available, and it wouldn't be easy to build. To enable profiling, you can specify "profile=1" on the kernel commandline.
See Documentation/basic_profiling.txt , which can be found in the Linux kernel source tree for your kernel for more information.
Profiling is disabled when interrupts are inhibited. This means that many profiling ticks happen when interrupts are re-enabled. Watch out for misleading information.
Randy Dunlap <email@example.com>
/proc/profile A binary snapshot of the profiling buffer. /boot/System.map The symbol table for the kernel. /usr/src/linux/* The program being profiled :-)
This program is written by Randy Dunlap <firstname.lastname@example.org>, and is largely based on readprofile by Alessandro Rubini <email@example.com>.