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