freebsd-nq/sys/i386
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
..
apm Fix type mismatches exposed by a recently added prototype. 1994-11-15 14:09:18 +00:00
bios Fix type mismatches exposed by a recently added prototype. 1994-11-15 14:09:18 +00:00
boot Implement RB_VERBOSE. This is intended to mean: Print all information which 1994-11-26 09:08:48 +00:00
conf Add Cronyx/Sigma files and config information; delete outdated config files. 1994-12-03 00:17:55 +00:00
eisa Put the sequencer into FASTMODE during initialization. I can now 1994-11-29 23:06:54 +00:00
i386 i386/exception.s, 1994-12-03 10:03:19 +00:00
ibcs2 First shot README file for iBCS support 1994-10-23 19:20:57 +00:00
include i386/exception.s, 1994-12-03 10:03:19 +00:00
isa i386/exception.s, 1994-12-03 10:03:19 +00:00
pci Fix bug I introduced that broke BPF support. Caused by a byte order problem 1994-11-30 12:08:23 +00:00
scsi Put the sequencer into FASTMODE during initialization. I can now 1994-11-29 23:06:54 +00:00
Makefile Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some 1993-10-16 19:17:18 +00:00