freebsd-nq/sys/i386/include
Bruce Evans b39b673d37 i386/exception.s,
Keep track of interrupt nesting level.  It is normally 0
	for syscalls and traps, but is fudged to 1 for their exit
	processing in case they metamorphose into an interrupt
	handler.

i386/genassym.c;
	Remove support for the obsolete pcb_iml and pcb_cmap2.

	Add support for pcb_inl.

i386/swtch.s:
	Fudge the interrupt nesting level across context switches and in
	the idle loop so that the work for preemptive context switches
	gets counted as interrupt time, the work for voluntary context
	switches gets counted mostly as system time (the part when
	curproc == 0 gets counted as interrupt time), and only truly idle
	time gets counted as idle time.

	Remove obsolete support (commented out and otherwise) for pcb_iml.

	Load curpcb just before curproc instead of just after so that
	curpcb is always valid if curproc is.  A few more changes like
	this may fix tracing through context switches.

	Remove obsolete function swtch_to_inactive().

include/cpu.h:
	Use the new interrupt nesting level variable to implement a
	non-fake CLF_INTR() so that accounting for the interrupt state
	works.

	You can use top, iostat or (best) an up to date systat to see
	interrupt overheads.  I see the expected huge interrupt overheads
	for ISA devices (on a 486DX/33, about 55% for an IDE drive
	transferring 1250K/sec and the same for a WD8013EBT network card
	transferring 1100K/sec).  The huge interrupt overheads for serial
	devices are unfortunately normally invisible.

include/pcb.h:
	Remove the obsolete pcb_iml and pcb_cmap2.  Replace them by
	padding to preserve binary compatibility.

	Use part of the new padding for pcb_inl.

isa/icu.s:
isa/vector.s:
	Keep track of interrupt nesting level.
1994-12-03 10:03:19 +00:00
..
pc Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some 1993-10-16 14:40:57 +00:00
_limits.h Added $Id$ 1994-08-02 07:55:43 +00:00
ansi.h Added $Id$ 1994-08-02 07:55:43 +00:00
apm_bios.h apm_bios.h: removed the equiv-stuff. Not needed now that the kernel module 1994-10-02 17:31:29 +00:00
apm_segments.h Added $Id$ 1994-10-01 05:13:37 +00:00
asmacros.h Get all the definitions from DEFS.h and not directly from asmacros.h 1994-09-08 12:25:18 +00:00
bootinfo.h Declare the bootinfo structure in the kernel. 1994-11-18 05:26:52 +00:00
clock.h Declare the full uglyness of the interfaces to the clock driver (except 1994-11-05 22:51:17 +00:00
cons.h Added $Id$ 1994-08-02 07:55:43 +00:00
console.h Added more SCO compat ioctl's. 1994-10-17 22:12:06 +00:00
cpu.h i386/exception.s, 1994-12-03 10:03:19 +00:00
cpufunc.h Add prototype for Debugger(). 1994-11-15 14:55:25 +00:00
cputypes.h Detect if we're running on a Cyrix 486DLC and enable automatic cache 1994-09-04 19:59:24 +00:00
cronyx.h Cronyx/Sigma sync/async serial driver with PPP support 1994-12-02 23:23:01 +00:00
db_machdep.h Fix the test for the code segment being the usual one. Unusual code 1994-10-19 21:13:51 +00:00
devconf.h Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de> 1994-11-02 23:44:11 +00:00
dkio.h Quote the first arg to _IO(). Not quoting it didn't matter because 1994-09-08 12:26:07 +00:00
eflags.h Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some 1993-10-16 14:40:57 +00:00
endian.h Change "asm" to "__asm" - makes it possible to compile code with 1994-09-10 20:03:14 +00:00
exec.h Shuffled macros and definitions around to facilitate architecture 1994-09-24 21:37:01 +00:00
float.h Made all header files idempotent and moved incorrect common data from 1993-11-07 17:43:17 +00:00
floatingpoint.h Don't provide bogus source operands in some asms. This probably shouldn't 1994-09-20 22:26:37 +00:00
frame.h The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch. 1994-05-25 09:21:21 +00:00
ieeefp.h Delete redundant #ifdef __i386__, be consistent about idempotency 1994-08-05 14:36:04 +00:00
ioctl_ctx.h Added Cortex-I Frame Grabber by Paul S. LaFollette, Jr. 1994-10-01 17:59:42 +00:00
ioctl_fd.h Included the command definition for FD_DEBUG. 1994-10-30 19:17:39 +00:00
ioctl_pc.h >From Theo Derradt 1993-09-08 19:29:54 +00:00
ipl.h Added $Id$ 1994-08-02 07:55:43 +00:00
limits.h Added $Id$ 1994-08-02 07:55:43 +00:00
lpt.h Added $Id$ 1994-08-02 07:55:43 +00:00
mouse.h Added the psm driver from 1.1.5. 1994-09-09 11:27:50 +00:00
mtpr.h Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some 1993-10-16 14:40:57 +00:00
npx.h Declare all functions exported by the npx driver. 1994-11-05 22:59:09 +00:00
param.h Replace unsigned' by u_int' so that it is not necessary to include 1994-09-18 22:05:22 +00:00
pcaudioio.h Changed header sligthly. 1994-09-29 08:31:39 +00:00
pcb.h i386/exception.s, 1994-12-03 10:03:19 +00:00
pio.h Made all header files idempotent and moved incorrect common data from 1993-11-07 17:43:17 +00:00
pmap.h Declare inline functions as __inline and with new-style parameter lists 1994-11-14 14:12:24 +00:00
proc.h The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch. 1994-05-25 09:21:21 +00:00
profile.h Added MCOUNT_ENTER and MCOUNT_EXIT macros to profile.h 1994-09-15 16:27:14 +00:00
psl.h Add back in CPU detection copde from 1.1.5. As an added bonus, the 1994-08-10 03:51:18 +00:00
pte.h Improved some comments. 1994-09-04 23:10:27 +00:00
ptrace.h Added $Id$ 1994-08-02 07:55:43 +00:00
reg.h apm_bios.h: removed the equiv-stuff. Not needed now that the kernel module 1994-10-02 17:31:29 +00:00
reloc.h Made idempotent. 1994-08-21 04:55:31 +00:00
segments.h Make gdt_segs[] public again for APM. 1994-11-15 14:12:55 +00:00
signal.h Made idempotent. 1994-08-21 04:55:31 +00:00
soundcard.h Remove extra idempotency ifdef and uniformize the other one. 1994-11-14 14:13:13 +00:00
speaker.h Added $Id$ 1994-08-02 07:55:43 +00:00
specialreg.h Improved some comments. 1994-09-04 23:10:27 +00:00
spl.h Remove the alias splnone() for spl0(). It was used only once. 1994-09-20 05:07:32 +00:00
stdarg.h Added $Id$ 1994-08-02 07:55:43 +00:00
sysarch.h Added $Id$ 1994-08-02 07:55:43 +00:00
trap.h Made all header files idempotent and moved incorrect common data from 1993-11-07 17:43:17 +00:00
tss.h Fixed comments that start within a comment, so code compiles cleanly with 1993-11-17 23:25:28 +00:00
types.h Added $Id$ 1994-08-02 07:55:43 +00:00
ultrasound.h Added $Id$ 1994-08-02 07:55:43 +00:00
varargs.h Added $Id$ 1994-08-02 07:55:43 +00:00
vmparam.h Increased SHMMAXPGS from 512 to 1024 now that there is plenty of kernel 1994-09-23 07:00:12 +00:00