freebsd-skq/sys/amd64
Peter Wemm 0385347c1a Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly
to various pmap_*() functions instead of looking up the physical address
and passing that.  In many cases, the first thing the pmap code was doing
was going to a lot of trouble to get back the original vm_page_t, or
it's shadow pv_table entry.

Inspired by: John Dyson's 1998 patches.

Also:
Eliminate pv_table as a seperate thing and build it into a machine
dependent part of vm_page_t.  This eliminates having a seperate set of
structions that shadow each other in a 1:1 fashion that we often went to
a lot of trouble to translate from one to the other. (see above)
This happens to save 4 bytes of physical memory for each page in the
system.  (8 bytes on the Alpha).

Eliminate the use of the phys_avail[] array to determine if a page is
managed (ie: it has pv_entries etc).  Store this information in a flag.
Things like device_pager set it because they create vm_page_t's on the
fly that do not have pv_entries.  This makes it easier to "unmanage" a
page of physical memory (this will be taken advantage of in subsequent
commits).

Add a function to add a new page to the freelist.  This could be used
for reclaiming the previously wasted pages left over from preloaded
loader(8) files.

Reviewed by:	dillon
2000-05-21 12:50:18 +00:00
..
amd64 Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly 2000-05-21 12:50:18 +00:00
conf Change to comments only: spell FreeBSD.org correctly 2000-05-13 11:21:19 +00:00
include Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly 2000-05-21 12:50:18 +00:00
isa 1. `movl' is for use with 32-bit operands. Do NOT use it with 16-bit 2000-05-10 01:24:23 +00:00
pci Don't assume that the PCI BIOS is going to clear the unused bits in %ecx 2000-05-04 17:44:55 +00:00
Makefile Add soft updates to the set of things being tagged. Syntax cleanup. 2000-01-27 01:22:06 +00:00