1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-26 16:18:31 +00:00
freebsd/sys/i386
Bruce Evans d6b9e17eb5 Improved non-statistical (GUPROF) profiling:
- use a more accurate and more efficient method of compensating for
  overheads.  The old method counted too much time against leaf
  functions.
- normally use the Pentium timestamp counter if available.
  On Pentiums, the times are now accurate to within a couple of cpu
  clock cycles per function call in the (unlikely) event that there
  are no cache misses in or caused by the profiling code.
- optionally use an arbitrary Pentium event counter if available.
- optionally regress to using the i8254 counter.
- scaled the i8254 counter by a factor of 128.  Now the i8254 counters
  overflow slightly faster than the TSC counters for a 150MHz Pentium :-)
  (after about 16 seconds).  This is to avoid fractional overheads.

files.i386:
permon.c temporarily has to be classified as a profiling-routine
because a couple of functions in it may be called from profiling code.

options.i386:
- I586_CTR_GUPROF is currently unused (oops).
- I586_PMC_GUPROF should be something like 0x70000 to enable (but not
  use unless prof_machdep.c is changed) support for Pentium event
  counters.  7 is a control mode and the counter number 0 is somewhere
  in the 0000 bits (see perfmon.h for the encoding).

profile.h:
- added declarations.
- cleaned up separation of user mode declarations.

prof_machdep.c:
Mostly clock-select changes.  The default clock can be changed by
editing kmem.  There should be a sysctl for this.

subr_prof.c:
- added copyright.
- calibrate overheads for the new method.
- documented new method.
- fixed races and and machine dependencies in start/stop code.

mcount.c:
Use the new overhead compensation method.

gmon.h:
- changed GPROF4 counter type from unsigned to int.  Oops, this should
  be machine-dependent and/or int32_t.
- reorganized overhead counters.

Submitted by:	Pentium event counter changes mostly by wollman
1996-10-17 19:32:31 +00:00
..
apm APM_DSVALUE_BUS is no longer with the addition of the correct fix to 1996-09-07 17:41:22 +00:00
bios APM_DSVALUE_BUS is no longer with the addition of the correct fix to 1996-09-07 17:41:22 +00:00
boot Synchronized with biosboot/Makefile: 1996-10-15 16:26:05 +00:00
conf Improved non-statistical (GUPROF) profiling: 1996-10-17 19:32:31 +00:00
eisa Removed nested include if <sys/socket.h> from <net/if.h> and 1996-10-12 19:49:43 +00:00
i386 Fixed miscounting for non-statistical (GUPROF) profiling: 1996-10-16 18:37:58 +00:00
ibcs2 Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
include Improved non-statistical (GUPROF) profiling: 1996-10-17 19:32:31 +00:00
isa Improved non-statistical (GUPROF) profiling: 1996-10-17 19:32:31 +00:00
linux Prepare kernel to take advantage of "branded" ELF binaries. 1996-10-16 17:51:08 +00:00
pci Removed unused #includes of <i386/isa/icu.h> and <i386/isa/icu.h>. icu.h 1996-06-18 01:22:40 +00:00
scsi Advanced Systems Inc. SCSI Controller driver and ISA/VL front end. 1996-10-07 02:07:07 +00:00
Makefile Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some 1993-10-16 19:17:18 +00:00