kerneltop(1) 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/, or /boot/`uname -r` if /boot/ 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 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:
   kerneltop -u


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.

 <l>: Lines

Set number of console lines to use for display

 <s>: Seconds

Set number of seconds between sample periods

 <t>: Threshold

Set lower threshold for number of ticks required to be printed

 <q>: Quit

Leaves the program

 <u>: Unsorted/Sorted

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 protected]>


/proc/profile              A binary snapshot of the profiling buffer.
/boot/           The symbol table for the kernel.
/usr/src/linux/*           The program being profiled :-)


This program is written by Randy Dunlap <[email protected]>, and is largely based on readprofile by Alessandro Rubini <[email protected]>.