freebsd-skq/sys/amd64/include
John Dyson 4f4d35edf0 This commit is meant to solve a couple of VM system problems or
performance issues.

	1) The pmap module has had too many inlines, and so the
	   object file is simply bigger than it needs to be.
	   Some common code is also merged into subroutines.
	2) Removal of some *evil* PHYS_TO_VM_PAGE macro calls.
	   Unfortunately, a few have needed to be added also.
	   The removal caused the need for more vm_page_lookups.
	   I added lookup hints to minimize the need for the
	   page table lookup operations.
	3) Removal of some bogus performance improvements, that
	   mostly made the code more complex (tracking individual
	   page table page updates unnecessarily).  Those improvements
	   actually hurt 386 processors perf (not that people who
	   worry about perf use 386 processors anymore :-)).
	4) Changed pv queue manipulations/structures to be TAILQ's.
	5) The pv queue code has had some performance problems since
	   day one.  Some significant scalability issues are resolved
	   by threading the pv entries from the pmap AND the physical
	   address instead of just the physical address.  This makes
	   certain pmap operations run much faster.  This does
	   not affect most micro-benchmarks, but should help loaded system
	   performance *significantly*.  DG helped and came up with most
	   of the solution for this one.
	6) Most if not all pmap bit operations follow the pattern:
		pmap_test_bit();
		pmap_clear_bit();
	   That made for twice the necessary pv list traversal.   The
	   pmap interface now supports only pmap_tc_bit type operations:
	   pmap_[test/clear]_modified, pmap_[test/clear]_referenced.
	   Additionally, the modified routine now takes a vm_page_t arg
	   instead of a phys address.  This eliminates a PHYS_TO_VM_PAGE
	   operation.
	7) Several rewrites of routines that contain redundant code to
	   use common routines, so that there is a greater likelihood of
	   keeping the cache footprint smaller.
1996-07-27 03:24:10 +00:00
..
pc Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some 1993-10-16 14:40:57 +00:00
asmacros.h Jump some hoops to have the *.s code being able to be run through both an 1996-05-31 01:08:08 +00:00
clock.h The Great PC98 Merge. 1996-06-14 11:02:28 +00:00
cpu.h trap.c: 1996-06-25 20:02:16 +00:00
cpufunc.h Update to current state of PC98 world. 1996-07-23 07:46:59 +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 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
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 Don't return unused values in cpu_switch() or savectx(). 1996-05-01 03:47:04 +00:00
pmap.h This commit is meant to solve a couple of VM system problems or 1996-07-27 03:24:10 +00:00
proc.h hp300 -> i386 1996-04-10 05:27:11 +00:00
profile.h Fixed user-mode mcount which I broke in the previous revision. 1996-01-01 17:11:21 +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 Fix a bunch of spelling errors in the comment fields of 1996-01-30 23:02:38 +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 Fix security holes in sigreturn(), ptrace() and procfs. sigreturn() 1995-01-14 13:20:26 +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