1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-20 11:11:24 +00:00
freebsd/sys
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 Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly 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
boot Make this compile in case anyone ever wants to use the PC98 booter 2000-05-21 05:27:56 +00:00
cam Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly 2000-05-21 12:50:18 +00:00
coda Remove 42 unneeded #include <sys/ioccom.h>. 2000-05-03 07:31:38 +00:00
compat Regenerated (to fix "created from" lines, and to fix the previous 2000-05-10 14:38:28 +00:00
compile
conf Correct the syntax of ROOTDEVNAME and describe it somewhat better. 2000-05-19 20:46:28 +00:00
contrib Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
crypto Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
ddb
dev Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly 2000-05-21 12:50:18 +00:00
fs Adapt fdesc to be mounted on /dev/fd and remove fd, stdin, stdout and 2000-05-11 22:10:51 +00:00
geom Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
gnu Compile in the case that anyone ever actually uses LEAVE_FREE_CHARS. 2000-05-21 05:40:44 +00:00
i4b Remove 42 unneeded #include <sys/ioccom.h>. 2000-05-03 07:31:38 +00:00
i386 Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly 2000-05-21 12:50:18 +00:00
isa Add RSS0262 - 5614Jx3[G] V90+K56Flex Modem. 2000-05-19 10:02:15 +00:00
isofs/cd9660 Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
kern Put the wait(2) exit status in "data" for NOTE_EXIT kevents. 2000-05-17 01:16:11 +00:00
libkern Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
miscfs Adapt fdesc to be mounted on /dev/fd and remove fd, stdin, stdout and 2000-05-11 22:10:51 +00:00
modules Remove the -DFDESC cruft that is no longer necessary since the support 2000-05-14 04:44:30 +00:00
msdosfs Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
net Move code to handle BPF and bridging for incoming Ethernet packets out 2000-05-14 02:18:43 +00:00
netatalk Slight cleanup of aarp code 2000-03-29 17:12:09 +00:00
netatm
netgraph Add hook for IPv6. 2000-05-10 16:54:00 +00:00
netinet Return ECONNRESET instead of EINVAL if the connection has been shot 2000-05-19 00:55:21 +00:00
netinet6 Fixed missing prototype for inet6_rthdr_reverse(). 2000-05-11 16:57:45 +00:00
netipx Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
netkey
netnatm Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
netncp nwfs depends on ncp 2000-04-29 13:34:28 +00:00
netns
nfs Include a RFC 1533 "Maximum DHCP Message Size" option in our request. 2000-05-07 14:29:19 +00:00
nfsclient Include a RFC 1533 "Maximum DHCP Message Size" option in our request. 2000-05-07 14:29:19 +00:00
nfsserver Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
ntfs Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
nwfs Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
pc98 Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly 2000-05-21 12:50:18 +00:00
pccard Add PnP ID for vadem based plug and play card. 2000-05-02 06:50:17 +00:00
pci Print the correct value for the map type on a verbose boot. 2000-05-18 20:28:15 +00:00
posix4 Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
powerpc Handle PCI devices that actually use an ISA IRQ for the cia and tsunami 2000-05-10 18:54:28 +00:00
rpc
svr4 Regenerated (to fix "created from" lines, and to fix the previous 2000-05-10 14:38:28 +00:00
sys Major style cleanup; make ordering and internal use of the macros consistent. 2000-05-21 01:54:45 +00:00
tools
ufs s/ffs_unmonut/ffs_unmount/ in a gratuitous ufs_extattr printf. 2000-05-07 17:21:08 +00:00
vm Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly 2000-05-21 12:50:18 +00:00
Makefile Cause modules to build with the kernel build. Modules are removed 2000-05-02 02:26:04 +00:00