1. Technology
Send to a Friend via Email
Linux / Unix Command: readprofile
Command Library

NAME

readprofile - a tool to read kernel profiling information  

SYNOPSIS

readprofile [ options ]

 

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 ticks and the length of the procedure. The output is filled with blanks to ease readability.

Available command line options are the following:

-m mapfile
Specify a mapfile, which by default is /usr/src/linux/System.map. 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'. There is no more support for compressed profile buffers, like in readprofile-1.1, because the program needs to know the size of the buffer in advance.

-i
Info. This makes 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 -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.

-b
Print individual histogram-bin counts.

-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. However, you can make readprofile setuid 0, in order to reset the buffer without gaining privileges.

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

-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 `freezed' profile buffer for a non current kernel:
   readprofile -p ~/profile.freeze -m /zImage.map.gz

Request profiling at 2kHz per CPU, and reset the profiling buffer
   sudo readprofile -M 20

 


Important: Use the man command (% man) to see how a command is used on your particular computer.

>> Linux/Unix Command Library

>> Shell Command Library

You can opt-out at any time. Please refer to our privacy policy for contact information.

Discuss in my forum

©2014 About.com. All rights reserved.