.TH READPROFILE "8" "October 2011" "util-linux" "System Administration"
.SH NAME
readprofile \- read kernel profiling information
.SH SYNOPSIS
.B readprofile
[options]
.SH VERSION
This manpage documents version 2.0 of the program.
.SH DESCRIPTION
.LP
The
.B readprofile
command uses the
.I /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 ticks and the
length of the procedure.  The output is filled with blanks to ease
readability.
.SH OPTIONS
.TP
\fB\-a\fR, \fB\-\-all\fR
Print all symbols in the mapfile.  By default the procedures with
reported ticks are not printed.
.TP
\fB\-b\fR, \fB\-\-histbin\fR
Print individual histogram-bin counts.
.TP
\fB\-i\fR, \fB\-\-info\fR
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'), or in the kernel's
command line.  If the
.B \-t
(terse) switch is used together with
.B \-i
only the decimal number is printed.
.TP
\fB\-m\fR, \fB\-\-mapfile\fR \fImapfile\fR
Specify a mapfile, which by default is
.IR /usr/src/linux/System.map .
You should specify the map file on cmdline if your current kernel
isn't the last one you compiled, or if you keep System.map elsewhere.
If the name of the map file ends with `.gz' it is decompressed on the
fly.
.TP
\fB\-M\fR, \fB\-\-multiplier\fR \fImultiplier\fR
On some architectures it is possible to alter the frequency at which
the kernel delivers profiling interrupts to each CPU.  This option
allows you to set the frequency, as a multiplier of the system clock
frequency, HZ.  This is supported on i386-SMP (2.2 and 2.4 kernel)
and also on sparc-SMP and sparc64-SMP (2.4 kernel).  This option also
resets the profiling buffer, and requires superuser privileges.
.TP
\fB\-p\fR, \fB\-\-profile\fR \fIpro-file\fR
Specify a different profiling buffer, which by default is
.IR /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
.I /proc/profile
file can be copied using `cat' or `cp'.  There is no more support for
compressed profile buffers, like in
.B readprofile-1.1,
because the program needs to know the size of the buffer in advance.
.TP
\fB\-r\fR, \fB\-\-reset\fR
Reset the profiling buffer.  This can only be invoked by root,
because
.I /proc/profile
is readable by everybody but writable only by the superuser.
However, you can make
.B readprofile
set-user-ID 0, in order to reset the buffer without gaining privileges.
.TP
\fB\-s, \fB\-\-counters\fR
Print individual counters within functions.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
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
\fB\-V\fR, \fB\-\-version\fR
Display version information and exit.
.TP
\fB\-h\fR, \fB\-\-help\fR
Display help text 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 `freezed' profile buffer for a non current kernel:
.nf
   readprofile -p ~/profile.freeze -m /zImage.map.gz

.fi
Request profiling at 2kHz per CPU, and reset the profiling buffer:
.nf
   sudo readprofile -M 20
.fi
.SH BUGS
.LP
.B readprofile
only works with an 1.3.x or newer kernel, because
.I /proc/profile
changed in the step from 1.2 to 1.3
.LP
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.
.LP
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=2" (or another number) on
the kernel commandline.  The number you specify is the two-exponent
used as profiling step.
.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 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/*           The program being profiled :-)
.fi
.SH AVAILABILITY
The readprofile command is part of the util-linux package and is
available from
.UR ftp://\:ftp.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
