KPROF(3) Library Functions Manual KPROF(3)NAME
kprof - kernel profiling
SYNOPSIS
bind -a #T /dev
/dev/kpctl
/dev/kpdata
DESCRIPTION
The kprof device provides simple profiling data for the operating system kernel. The data accumulates by recording the program counter of
the kernel at each `tick' of the system clock.
The file kpdata holds the accumulated counts as 4-byte integers in big-endian byte order. The size of the file depends on the size of ker-
nel text. The first count holds the total number of clock ticks during profiling; the second the number of ticks that occurred while the
kernel was running. The rest each hold the number of ticks the kernel program counter was within the corresponding 8-byte range of kernel
text, starting from the base of kernel text.
The file kpctl controls profiling. Writing the string start to kpctl begins profiling; stop terminates it. The message startclr restarts
profiling after zeroing the array of counts.
The program kprof (see prof(1)) formats the data for presentation.
EXAMPLE
The following rc(1) script runs a test program while profiling the kernel and reports the results.
bind -a '#T' /dev
echo start > /dev/kpctl
runtest
echo stop > /dev/kpctl
kprof /mips/9power /dev/kpdata
SOURCE
/sys/src/9/port/devkprof.c
SEE ALSO prof(1)KPROF(3)
Check Out this Related Man Page
PROFIL(2) BSD System Calls Manual PROFIL(2)NAME
profil -- control process profiling
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <unistd.h>
int
profil(char *samples, size_t size, u_long offset, u_int scale);
DESCRIPTION
The profil() function enables or disables program counter profiling of the current process. If profiling is enabled, then at every clock
tick, the kernel updates an appropriate count in the samples buffer.
The buffer samples contains size bytes and is divided into a series of 16-bit bins. Each bin counts the number of times the program counter
was in a particular address range in the process when a clock tick occurred while profiling was enabled. For a given program counter
address, the number of the corresponding bin is given by the relation:
[(pc - offset) / 2] * scale / 65536
The offset parameter is the lowest address at which the kernel takes program counter samples. The scale parameter ranges from 1 to 65536 and
can be used to change the span of the bins. A scale of 65536 maps each bin to 2 bytes of address range; a scale of 32768 gives 4 bytes,
16384 gives 8 bytes and so on. Intermediate values provide approximate intermediate ranges. A scale value of 0 disables profiling.
RETURN VALUES
If the scale value is nonzero and the buffer samples contains an illegal address, profil() returns -1, profiling is terminated and errno is
set appropriately. Otherwise profil() returns 0.
FILES
/usr/lib/gcrt0.o profiling C run-time startup file
gmon.out conventional name for profiling output file. This may be different if the PROFDIR environment variable is set.
ERRORS
The following error may be reported:
[EFAULT] The buffer samples contains an invalid address.
SEE ALSO gprof(1), moncontrol(3)BUGS
This routine should be named profile().
The samples argument should really be a vector of type unsigned short.
The format of the gmon.out file is undocumented.
BSD June 4, 1993 BSD
Hello,
In my shell program, I need to test for a specific size of a text file before it can be imported into an oracle table.
If the size is less than that number, my program should stop processing. What is the correct command to do this test?
Thanks! (1 Reply)
Hello all,
How can I set TAB as the delimiter inside a script file that will manipulate another file? For example, let's say I have a file with four fields separated by tabs and each field has four items. Can I set TAB as a delimiter inside a script file or can I only do that at the shell?
... (12 Replies)
I compiled my device driver with the profiling option -p but while linking I am getting undefined reference to _mcount.
LD /vobs/femto_drivers/DspBiosLink/dsplinkk/src/dsplinkk.o
Building modules, stage 2.
MODPOST
*** Warning: "_mcount" undefined!
Architechture: ppc32
From... (0 Replies)