.TH READPROFILE 1 "January 1995"
.UC 4
.SH NAME
readprofile - a tool to read kernel profiling information
.SH SYNOPSIS
.B readprofile
[
.I options
]

.SH VERSION
This manpage documents version 1.1 of the program.

.SH DESCRIPTION

.LP
The
.B readprofile
command uses the 
.B /proc/profile
information to print ascii data on standard output.
The output is
organized in three columns: the first is the number of clock ticks,
the second is the name of the C function in the kernel where those many
ticks occurred, and the third is the normalized `load' of the procedure,
calculated as a ratio between the number of thicks and the lenght of
the procedure. The output is filled with blanks to ease readability.

.LP
Available command line options are the following:

.TP
.RB -m " mapfile"
Specify a mapfile, which by default is
.B /usr/src/linux/System.map.
To ease use of
.B readprofile
with kernels in the 1.1.7x series, if the default file can't be opened,
the alternate file
.B /usr/src/linux/zSystem.map
is tried.
You should specify the map file on cmdline if your current kernel isn't the
last one you compiled. If the name of the map file ends with `.gz' it
is decompressed on the fly.

.TP
.RB -p " pro-file"
Specify a different profiling buffer, which by default is
.B /proc/profile.
Using a different pro-file is useful if you want to `freeze' the
kernel profiling at some time and read it later. The
.B /proc/profile
file can be copied using `cat' or `cp'. If the name of the pro-file
ends by `.gz' it is decompressed on the fly. The pro-file is such that
.B gzip
shrinks it by 50-100 times.

.TP
.B -i
Info. This makes 
.B readprofile
only print the profiling step used by the kernel.
The profiling step is the resolution of the profiling buffer, and
is chosen during kernel configuration (through `make config').
If the 
.B -t
(terse) switch is used together with
.B -i
only the decimal number is printed.

.TP
.B -a
Print all symbols in the mapfile. By default the procedures with 0 reported
ticks are not printed.

.TP
.B -r
Reset the profiling buffer. This can only be invoked by root, because
.B /proc/profile
is readable by everybody but writable only by the superuser.

.TP
.B -t
Terse. This causes the output to be unfilled. It is the format used in the
first release of 
.B readprofile.

.TP
.B -v
Verbose. The output is organized in four columns and filled with blanks.
The first column is the RAM address of a kernel function, the second is
the name of the function, the third is the number of clock ticks and the
last is the normalized load.

.TP
.B -V
Version. This makes
.B readprofile
print its version number and exit.

.SH EXAMPLES
Browse the profiling buffer ordering by clock ticks:
.nf
   readprofile | sort -nr | less

.fi
Print the 20 most loaded procedures:
.nf
   readprofile | sort -nr +2 | head -20

.fi
Print only filesystem profile:
.nf
   readprofile | grep _ext2

.fi
Look at all the kernel information, with ram addresses"
.nf
   readprofile -av | less

.fi
Browse a gzipped `freezed' profile buffer for a non current kernel:
.nf
   readprofile -p ~/profile.freeze.gz -m /zImage.map

.fi

.SH BUGS

.LP
.B readprofile
needs a kernel version 1.1.73 or newer, because
.B /proc/profile
is absent
in older versions.

.LP
To enable profiling, the kernel must be reconfigured, recompiled, and
rebooted. No profiling module is available, and it wouldn't be easy to
build. So this can be construed as a feature.

.LP
Profiling is disabled when interrupts are inhibited. This means that many
profiling ticks happen when interrupts are re-enabled. Watch out for
misleading information.

.SH AUTHOR

Readprofile and /proc/profile are by Alessandro Rubini (rubini@ipvvis.unipv.it)

.SH FILES
.nf
/proc/profile              A binary snapshot of the profiling buffer.
/usr/src/linux/System.map  The symbol table for the kernel.
/usr/src/linux/zSystem.map Old name for the symbol table. 

/usr/src/linux/*           The program being profiled :-)
.fi

