readprofile

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

       readprofile - a tool to read kernel profiling information


SYNOPSIS

       readprofile [ options ]



VERSION

       This manpage documents version 1.1 of the program.



DESCRIPTION

       The readprofile command uses the /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  read-
       ability.


       Available command line options are the following:


       -m mapfile
              Specify    a   mapfile,   which   by   default   is
              /usr/src/linux/System.map.  To ease use of readpro-
              file  with  kernels  in  the  1.1.7x series, if the
              default file can't be opened,  the  alternate  file
              /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.


       -p pro-file
              Specify  a  different  profiling  buffer,  which by
              default is /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
              /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 gzip shrinks it by 50-100 times.


       -i     Info. This makes readprofile only print the profil-
              ing step used by the kernel.  The profiling step is
              the resolution of the profiling buffer, and is cho-
              sen during kernel configuration (through `make con-
              fig').  If the -t (terse) switch is  used  together
              with -i only the decimal number is printed.


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


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


       -t     Terse. This causes the output to be unfilled. It is
              the  format  used  in the first release of readpro-
              file.


       -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.


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



EXAMPLES

       Browse the profiling buffer ordering by clock ticks:
          readprofile | sort -nr | less

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

       Print only filesystem profile:
          readprofile | grep _ext2

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

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




BUGS

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


       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.


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



AUTHOR

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



FILES

       /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 :-)
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.