1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-03 12:35:02 +00:00
freebsd/sys/amd64/include
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
..
pc
asmacros.h Added macros CROSSJUMP(), CROSSJUMP_LABEL() and GPROF_RET. These will 1996-10-16 18:13:25 +00:00
clock.h Added missing extern declaration of timer_freq. 1996-10-17 17:31:25 +00:00
cpu.h trap.c: 1996-06-25 20:02:16 +00:00
cpufunc.h Added "memory" to clobber list in invlpg(). It needs it if invltlb() 1996-09-29 18:35:07 +00:00
cputypes.h Fix a bunch of spelling errors in the comment fields of 1996-01-30 23:02:38 +00:00
db_machdep.h Removed unused thread support (partly to get rid of its incomplete 1995-12-03 10:40:16 +00:00
exec.h Shuffled macros and definitions around to facilitate architecture 1994-09-24 21:37:01 +00:00
float.h
floatingpoint.h Don't provide bogus source operands in some asms. This probably shouldn't 1994-09-20 22:26:37 +00:00
fpu.h Added `#include "ioconf.h"' to <machine/conf.h> and cleaned up the 1995-11-04 17:08:13 +00:00
frame.h Fix a bunch of spelling errors in the comment fields of 1996-01-30 23:02:38 +00:00
ieeefp.h Fix a bunch of spelling errors in the comment fields of 1996-01-30 23:02:38 +00:00
md_var.h Moved declarations of non-cpu things from <machine/cpufunc.h> to better 1996-07-01 18:12:24 +00:00
npx.h Added `#include "ioconf.h"' to <machine/conf.h> and cleaned up the 1995-11-04 17:08:13 +00:00
pcb.h Eliminated pcb_inl. It was always 0 because context switches don't occur 1996-07-31 12:36:11 +00:00
pmap.h Pmap_resident_count was mistakenly removed from pmap.h, thereby 1996-10-13 03:14:57 +00:00
proc.h hp300 -> i386 1996-04-10 05:27:11 +00:00
profile.h Improved non-statistical (GUPROF) profiling: 1996-10-17 19:32:31 +00:00
psl.h Fix a bunch of spelling errors in the comment fields of 1996-01-30 23:02:38 +00:00
ptrace.h Add commands for ptrace get/set registers.. (Same numbers as NetBSD) 1996-01-24 18:51:48 +00:00
reg.h Fix a bunch of spelling errors in the comment fields of 1996-01-30 23:02:38 +00:00
reloc.h Made idempotent. 1994-08-21 04:55:31 +00:00
segments.h Apparently, BSDI have a new system call gate. I was experimenting 1996-09-27 13:33:49 +00:00
signal.h Fix standards conformance bugs in <signal.h>: 1995-06-28 02:14:13 +00:00
specialreg.h Added missing CR0_NW define for Cyrix 486DLC support. It's still not 1996-06-03 19:37:38 +00:00
sysarch.h Added $Id$ 1994-08-02 07:55:43 +00:00
trap.h Defined T_MCHK exception for i686; renumbered T_RESERVED to 29. 1996-08-11 17:29:39 +00:00
tss.h Fix a bunch of spelling errors in the comment fields of 1996-01-30 23:02:38 +00:00
varargs.h Added $Id$ 1994-08-02 07:55:43 +00:00
vmparam.h removed: 1996-05-02 14:21:14 +00:00