freebsd-dev/sys/i386/conf/options.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

56 lines
1.3 KiB
Plaintext

# $Id: options.i386,v 1.23 1996/10/09 19:47:07 bde Exp $
BOUNCEPAGES opt_bounce.h
USER_LDT
MATH_EMULATE opt_math_emulate.h
GPL_MATH_EMULATE opt_math_emulate.h
IBCS2 opt_dontuse.h
COMPAT_LINUX opt_dontuse.h
SHOW_BUSYBUFS opt_machdep.h
PANIC_REBOOT_WAIT_TIME opt_machdep.h
MAXMEM opt_machdep.h
PERFMON opt_perfmon.h
AUTO_EOI_1 opt_auto_eoi.h
AUTO_EOI_2 opt_auto_eoi.h
BREAK_TO_DEBUGGER opt_comconsole.h
COMCONSOLE opt_comconsole.h
COM_ESP opt_sio.h
COM_MULTIPORT opt_sio.h
DSI_SOFT_MODEM opt_sio.h
I586_CTR_GUPROF opt_i586_guprof.h
I586_PMC_GUPROF opt_i586_guprof.h
FAT_CURSOR opt_pcvt.h
PCVT_FREEBSD opt_pcvt.h
PCVT_SCANSET opt_pcvt.h
XSERVER opt_pcvt.h
AHC_TAGENABLE opt_aic7xxx.h
AHC_SCBPAGING_ENABLE opt_aic7xxx.h
CLK_CALIBRATION_LOOP opt_clock.h
CLK_USE_I8254_CALIBRATION opt_clock.h
CLK_USE_I586_CALIBRATION opt_clock.h
I386_CPU opt_cpu.h
I486_CPU opt_cpu.h
I586_CPU opt_cpu.h
I686_CPU opt_cpu.h
I586_FAST_BCOPY opt_temporary.h
I586_OPTIMIZED_BCOPY opt_temporary.h
I586_OPTIMIZED_BZERO opt_temporary.h
SC_KBD_PROBE_WORKS opt_syscons.h
SC_SPLASH_SCREEN opt_syscons.h
MAXCONS opt_syscons.h
SLOW_VGA opt_syscons.h
XT_KEYBOARD opt_syscons.h
ATAPI opt_atapi.h
ATAPI_STATIC opt_atapi.h
USERCONFIG opt_userconfig.h
VISUAL_USERCONFIG opt_userconfig.h
USERCONFIG_BOOT opt_userconfig.h