freebsd-dev/sys/libkern
Bruce Evans 912e603778 Implemented non-statistical kernel profiling. This is based on
looking at a high resolution clock for each of the following events:
function call, function return, interrupt entry, interrupt exit,
and interesting branches.  The differences between the times of
these events are added at appropriate places in a ordinary histogram
(as if very fast statistical profiling sampled the pc at those
places) so that ordinary gprof can be used to analyze the times.

gmon.h:
Histogram counters need to be 4 bytes for microsecond resolutions.
They will need to be larger for the 586 clock.
The comments were vax-centric and wrong even on vaxes.  Does anyone
disagree?

gprof4.c:
The standard gprof should support counters of all integral sizes
and the size of the counter should be in the gmon header.  This
hack will do until then.  (Use gprof4 -u to examine the results
of non-statistical profiling.)

config/*:
Non-statistical profiling is configured with `config -pp'.
`config -p' still gives ordinary profiling.

kgmon/*:
Non-statistical profiling is enabled with `kgmon -B'.  `kgmon -b'
still enables ordinary profiling (and distables non-statistical
profiling) if non-statistical profiling is configured.
1995-12-29 15:30:05 +00:00
..
adddi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
anddi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
ashldi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
ashrdi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
bcmp.c Added $Id$ 1994-08-02 07:55:43 +00:00
cmpdi2.c Added $Id$ 1994-08-02 07:55:43 +00:00
divdi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
ffs.c Added $Id$ 1994-08-02 07:55:43 +00:00
fnmatch.c Remove trailing whitespace. 1995-05-30 05:51:47 +00:00
inet_ntoa.c Remove trailing whitespace. 1995-05-30 08:16:23 +00:00
iordi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
libkern.h Add and move declarations to fix all of the warnings from `gcc -Wimplicit' 1995-03-16 18:17:34 +00:00
locc.c <libkern/libkern.h> has moved to <sys/libkern.h> (repository copy). 1995-03-17 06:15:40 +00:00
lshldi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
lshrdi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
mcount.c Implemented non-statistical kernel profiling. This is based on 1995-12-29 15:30:05 +00:00
moddi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
muldi3.c Remove trailing whitespace. 1995-05-30 08:16:23 +00:00
negdi2.c Added $Id$ 1994-08-02 07:55:43 +00:00
notdi2.c Added $Id$ 1994-08-02 07:55:43 +00:00
qdivrem.c Remove trailing whitespace. 1995-05-30 08:16:23 +00:00
qsort.c Added prototypes. 1995-12-26 13:25:13 +00:00
quad.h Added prototypes. 1995-12-26 13:25:13 +00:00
random.c <libkern/libkern.h> has moved to <sys/libkern.h> (repository copy). 1995-03-17 06:15:40 +00:00
rindex.c Added $Id$ 1994-08-02 07:55:43 +00:00
scanc.c Rearrange the inner loop of scanc() to get better code on i*86's 1995-07-11 18:50:47 +00:00
skpc.c <libkern/libkern.h> has moved to <sys/libkern.h> (repository copy). 1995-03-17 06:15:40 +00:00
strcat.c Added $Id$ 1994-08-02 07:55:43 +00:00
strcmp.c Added $Id$ 1994-08-02 07:55:43 +00:00
strcpy.c Added $Id$ 1994-08-02 07:55:43 +00:00
strlen.c Added $Id$ 1994-08-02 07:55:43 +00:00
strncmp.c Add strncmp() function..I need it and 1995-02-27 09:16:04 +00:00
strncpy.c Added $Id$ 1994-08-02 07:55:43 +00:00
strsep.c Remove trailing whitespace. 1995-05-30 05:51:47 +00:00
strtol.c Add strtol() to libkern in support of some other work I'm doing. 1994-10-25 14:57:57 +00:00
subdi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
ucmpdi2.c Added $Id$ 1994-08-02 07:55:43 +00:00
udivdi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
umoddi3.c Added $Id$ 1994-08-02 07:55:43 +00:00
xordi3.c Added $Id$ 1994-08-02 07:55:43 +00:00