freebsd-skq/sys/alpha/alpha
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
..
alpha-gdbstub.c Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
atomic.s Fix the atomic arithmetic primitives for address where (p&7) >= 4. 1999-11-04 09:55:07 +00:00
autoconf.c Include opt_nfs.h 1999-12-27 07:51:05 +00:00
busdma_machdep.c useracc() the prequel: 1999-10-29 18:09:36 +00:00
clock_if.m * Factor out the object system from new-bus so that it can be used by 2000-04-08 14:17:18 +00:00
clock.c Avoid dividing by zero when beeping with a zero pitch. This was bad. 2000-03-30 22:39:48 +00:00
cpuconf.c add in dec_kn300 (Alpha 4100) case 2000-05-07 05:00:26 +00:00
db_disasm.c Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
db_instruction.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
db_interface.c Add a new mechanism, cndbctl(), to tell the console driver that 2000-01-11 14:54:01 +00:00
db_trace.c Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
dec_1000a.c o Wilko Bulte has tested our AlphaServer 1000A ("Noritake") support 2000-02-15 18:47:51 +00:00
dec_2100_a50.c [ repository copy of sys/pci/pci_ioctl.h to sys/sys/pciio.h happened in the 1999-12-08 17:44:04 +00:00
dec_3000_300.c Removal of sys/device.h 1999-10-05 21:19:41 +00:00
dec_3000_500.c Removal of sys/device.h 1999-10-05 21:19:41 +00:00
dec_axppci_33.c [ repository copy of sys/pci/pci_ioctl.h to sys/sys/pciio.h happened in the 1999-12-08 17:44:04 +00:00
dec_eb64plus.c [ repository copy of sys/pci/pci_ioctl.h to sys/sys/pciio.h happened in the 1999-12-08 17:44:04 +00:00
dec_eb164.c Removal of sys/device.h 1999-10-05 21:19:41 +00:00
dec_kn8ae.c Alpha 8200: remove the SIMOS usage of zs_cnattach- we have a real 2000-03-18 08:04:23 +00:00
dec_kn20aa.c [ repository copy of sys/pci/pci_ioctl.h to sys/sys/pciio.h happened in the 1999-12-08 17:44:04 +00:00
dec_kn300.c Unhide dec_kn300_cons_init and don't make it something we call early. 2000-05-09 02:19:04 +00:00
dec_st550.c [ repository copy of sys/pci/pci_ioctl.h to sys/sys/pciio.h happened in the 1999-12-08 17:44:04 +00:00
dec_st6600.c Stop calling everthing an XP1000. 1999-12-14 17:50:00 +00:00
divrem.m4 Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
elf_machdep.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
exception.s $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
fp_emulate.c Re-organise the code which manages the owner of the FP state (fpcurproc). 1999-11-10 21:14:25 +00:00
genassym.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
gensetdefs.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ieee_float.c Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ieee_float.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
in_cksum.c Fix checksum calculations. This should fix the network problems 2000-05-07 16:41:15 +00:00
interrupt.c Eliminate a couple of evil common declarations. 2000-05-18 23:38:33 +00:00
ipl_funcs.c Fixed my breakage of SPLASSERT() in rev.1.15. There was a stray semicolon 2000-03-23 18:46:44 +00:00
locore.s $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
machdep.c Some white-box (NT) systems have SRM which reports a systype that's 2000-05-11 13:31:05 +00:00
mem.c Make /dev/[k]mem work after last commit. Transfers were being double 2000-05-13 07:43:00 +00:00
pal.s Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
pmap.c Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly 2000-05-21 12:50:18 +00:00
procfs_machdep.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
prom_disp.s useracc() the prequel: 1999-10-29 18:09:36 +00:00
prom.c Alpha 8200: Redo console attachment to be more 'normal'. Make sure the 2000-03-18 08:03:48 +00:00
promcons.c Alpha 8200: redo prom console code to be more up to date, etc. This 2000-03-18 08:02:35 +00:00
setdef0.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
setdef1.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
sgmap.c useracc() the prequel: 1999-10-29 18:09:36 +00:00
support.s Fix two bugs in the fault handler for copy{in,out} and friends. 2000-02-25 03:26:10 +00:00
swtch.s Re-organise the code which manages the owner of the FP state (fpcurproc). 1999-11-10 21:14:25 +00:00
sys_machdep.c The kernel side of per-process unaligned access control (printing, fixing & 2000-01-16 07:07:33 +00:00
timerreg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
trap.c Eliminate a couple of evil common declarations. 2000-05-18 23:38:33 +00:00
vm_machdep.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00