|
|
1.1 root 1: .TH KPROF 3
2: .SH NAME
3: kprof \- kernel profiling
4: .SH SYNOPSIS
5: .nf
6: .B bind -a #T /dev
7: .sp
8: .B /dev/kpctl
9: .B /dev/kpdata
10: .fi
11: .SH DESCRIPTION
12: The
13: .I kprof
14: device provides simple profiling
15: data for the operating system kernel. The data accumulates by
16: recording the program counter of the kernel at each `tick' of the
17: system clock.
18: .PP
19: The file
20: .B kpdata
21: holds the accumulated counts as 4-byte integers in big-endian
22: byte order.
23: The size of the file depends on the size of kernel text.
24: The first count
25: holds the total number of clock ticks during profiling;
26: the second the number of ticks that occurred while the kernel
27: was running. The rest each hold the number of ticks
28: the kernel program counter was within the
29: corresponding 8-byte range of kernel text, starting from the base
30: of kernel text.
31: .PP
32: The file
33: .B kpctl
34: controls profiling.
35: Writing the string
36: .B start
37: to
38: .B kpctl
39: begins profiling;
40: .B stop
41: terminates it. The message
42: .B startclr
43: restarts profiling after zeroing the array of counts.
44: .PP
45: The program
46: .I kprof
47: (see
48: .IR prof (1))
49: formats the data for presentation.
50: .SH EXAMPLE
51: The following
52: .IR rc (1)
53: script runs a test program while profiling the kernel
54: and reports the results.
55: .sp
56: .EX
57: bind -a '#T' /dev
58: echo start > /dev/kpctl
59: runtest
60: echo stop > /dev/kpctl
61: kprof /mips/9power /dev/kpdata
62: .EE
63: .SH SOURCE
64: .B /sys/src/9/port/devkprof.c
65: .SH SEE ALSO
66: .IR prof (1)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.