freebsd-nq/sys/sys
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
..
_sigset.h
acct.h
bio.h Remove some old compatibility names. 1996-10-13 14:36:37 +00:00
bitstring.h
buf.h Remove some old compatibility names. 1996-10-13 14:36:37 +00:00
callout.h
ccdvar.h
cdefs.h Add __unused to the list of __dead, __dead2, __pure, __pure2 etc. 1996-08-18 16:14:03 +00:00
cdio.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
chio.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
clist.h
conf.h Make a "DWIM" function for adding [bc]devsw entries for bdev drivers. 1996-07-23 21:52:43 +00:00
cons.h
dataacq.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
devfsext.h
device.h
dir.h
dirent.h
disk.h
disklabel.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
diskmbr.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
diskpc98.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
diskslice.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
dkbad.h Don't include <sys/conf.h> for the kernel in disk-related headers. 1996-09-20 17:39:44 +00:00
dkstat.h
dmap.h
domain.h
errno.h make the declaration of the __error() function C++ safe. Otherwise, 1996-08-18 16:16:18 +00:00
exec.h
fbio.h
fcntl.h
fdcio.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
file.h Eliminated nested include of <sys/unistd.h> in <sys/file.h> in the kernel. 1996-09-03 14:25:27 +00:00
filedesc.h
filio.h
ftape.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
gmon.h Improved non-statistical (GUPROF) profiling: 1996-10-17 19:32:31 +00:00
imgact_aout.h
imgact_elf.h Prepare kernel to take advantage of "branded" ELF binaries. 1996-10-16 17:51:08 +00:00
imgact.h
inflate.h
ioccom.h Moved the prototype for ioctl() from <sys/ioctl.h> to <sys/ioccom.h> 1996-09-21 08:42:37 +00:00
ioctl_compat.h
ioctl_meteor.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
ioctl.h Moved the prototype for ioctl() from <sys/ioctl.h> to <sys/ioccom.h> 1996-09-21 08:42:37 +00:00
ipc.h
joystick.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
kernel.h Fixed lots of warnings from gcc-2.7.x about "left-hand operand of 1996-09-20 14:36:14 +00:00
ktrace.h Remove the extra length field from the utrace entries. It's redundant. 1996-09-22 18:17:51 +00:00
libkern.h add simple srandom() and prototype 1996-09-23 04:31:43 +00:00
linedisc.h Make a "DWIM" function for adding [bc]devsw entries for bdev drivers. 1996-07-23 21:52:43 +00:00
link_aout.h Fixed the wrong include file for a "prototype mismatch" error between 1996-10-08 01:38:36 +00:00
link_elf.h Fixed the wrong include file for a "prototype mismatch" error between 1996-10-08 01:38:36 +00:00
lkm.h `struct linker_set execsw_set' was declared as const and pointers in it 1996-09-03 22:52:27 +00:00
lockf.h
malloc.h Remove the kernel FD_SETSIZE limit for select(). 1996-08-20 07:18:10 +00:00
mbuf.h Add a protocol-specific mbuf flag. 1996-08-19 18:30:15 +00:00
md5.h
mdioctl.h
mman.h
mount.h Some very small changes to support Netcon's TFS filesystem. 1996-10-17 17:12:04 +00:00
mouse.h
msg.h
msgbuf.h
mtio.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
namei.h Changed type of ni_dirp in struct namei' from caddr_t to const char *' 1996-09-03 23:17:15 +00:00
nlist_aout.h Add the linker set stab types: N_SETA N_SETT N_SETD N_SETB N_SETV 1996-10-01 00:01:43 +00:00
param.h
pipe.h A few minor mods (improvements) to support more efficient pipe 1996-07-13 22:52:50 +00:00
proc.h Make processes waken up eligible for immediate swap-in. 1996-10-17 02:58:20 +00:00
protosw.h Modify the kernel to use the new pr_usrreqs interface rather than the old 1996-07-11 16:32:50 +00:00
ptrace.h
queue.h
random.h Drat, missed this prototype for random_select(). 1996-09-27 13:29:41 +00:00
reboot.h Add support for embedded operation withou console 1996-10-16 00:19:40 +00:00
resource.h
resourcevar.h
rlist.h
rtprio.h
scsiio.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
select.h
selinfo.h
sem.h
shm.h
signal.h
signalvar.h
snoop.h
socket.h Grab the next slot for AF_INET6/PF_INET6, the resolver uses it. 1996-08-30 02:18:24 +00:00
socketvar.h Increase robustness of FreeBSD against high-rate connection attempt 1996-10-07 04:32:42 +00:00
sockio.h Reformatted FreeBSD additions to match 4.4Lite style. Mixed tabs and 1996-09-22 14:57:44 +00:00
soundcard.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
stat.h In sys/time.h, struct timespec is defined as: 1996-09-19 18:21:32 +00:00
syscall-hide.h Add the utrace(caddr_t addr,size_t len) syscall, that will store the 1996-09-19 19:49:13 +00:00
syscall.h Add the utrace(caddr_t addr,size_t len) syscall, that will store the 1996-09-19 19:49:13 +00:00
sysctl.h Add support for embedded operation withou console 1996-10-16 00:19:40 +00:00
sysent.h
syslimits.h
syslog.h
sysproto.h Add the utrace(caddr_t addr,size_t len) syscall, that will store the 1996-09-19 19:49:13 +00:00
systm.h Moved declarations of tsleep() and wakeup() from proc.h to systm.h so 1996-10-12 16:11:58 +00:00
tablet.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
termios.h
time.h In sys/time.h, struct timespec is defined as: 1996-09-19 18:21:32 +00:00
timeb.h
timers.h
times.h
timetc.h In sys/time.h, struct timespec is defined as: 1996-09-19 18:21:32 +00:00
timex.h
tprintf.h
tty.h
ttychars.h
ttycom.h
ttydefaults.h
ttydev.h
types.h
ucred.h
uio.h
un.h
unistd.h Don't pollute the namespace with rfork flags if _POSIX_SOURCE is defined. 1996-09-03 13:55:50 +00:00
unpcb.h
user.h Updated #includes to 4.4Lite style. 1996-09-10 08:32:01 +00:00
utsname.h
vadvise.h
vcmd.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
vlimit.h
vmmeter.h
vnioctl.h
vnode.h Some very small changes to support Netcon's TFS filesystem. 1996-10-17 17:12:04 +00:00
vsio.h
wait.h
wormio.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00