freebsd-dev/sys/amd64
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
..
amd64 Implemented non-statistical kernel profiling. This is based on 1995-12-29 15:30:05 +00:00
conf Make a couple of options that hurt when they're removed more 1995-12-29 02:04:20 +00:00
include Implemented non-statistical kernel profiling. This is based on 1995-12-29 15:30:05 +00:00
isa random_machdep.c: New version, also includes revectored interrupts, rather 1995-12-27 11:22:05 +00:00
pci Completed function declarations and/or added prototypes and/or added 1995-12-16 00:27:59 +00:00
Makefile Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some 1993-10-16 19:17:18 +00:00