freebsd-skq/sys
Alan Cox 3153e878dd Add support to the virtual memory system for configuring machine-
dependent memory attributes:

Rename vm_cache_mode_t to vm_memattr_t.  The new name reflects the
fact that there are machine-dependent memory attributes that have
nothing to do with controlling the cache's behavior.

Introduce vm_object_set_memattr() for setting the default memory
attributes that will be given to an object's pages.

Introduce and use pmap_page_{get,set}_memattr() for getting and
setting a page's machine-dependent memory attributes.  Add full
support for these functions on amd64 and i386 and stubs for them on
the other architectures.  The function pmap_page_set_memattr() is also
responsible for any other machine-dependent aspects of changing a
page's memory attributes, such as flushing the cache or updating the
direct map.  The uses include kmem_alloc_contig(), vm_page_alloc(),
and the device pager:

  kmem_alloc_contig() can now be used to allocate kernel memory with
  non-default memory attributes on amd64 and i386.

  vm_page_alloc() and the device pager will set the memory attributes
  for the real or fictitious page according to the object's default
  memory attributes.

Update the various pmap functions on amd64 and i386 that map pages to
incorporate each page's memory attributes in the mapping.

Notes: (1) Inherent to this design are safety features that prevent
the specification of inconsistent memory attributes by different
mappings on amd64 and i386.  In addition, the device pager provides a
warning when a device driver creates a fictitious page with memory
attributes that are inconsistent with the real page that the
fictitious page is an alias for. (2) Storing the machine-dependent
memory attributes for amd64 and i386 as a dedicated "int" in "struct
md_page" represents a compromise between space efficiency and the ease
of MFCing these changes to RELENG_7.

In collaboration with: jhb

Approved by:	re (kib)
2009-07-12 23:31:20 +00:00
..
amd64 Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
arm Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
boot On special systems where the MBR and the GPT are in sync (up to the 4th 2009-06-26 09:32:31 +00:00
bsm There is an optimization in chmod(1), that makes it not to call chmod(2) 2009-07-08 15:23:18 +00:00
cam Separate the parallel scsi knowledge out of the core of the XPT, and 2009-07-10 08:18:08 +00:00
cddl In nvpair_native_embedded_array(), meaningless pointers are zeroed. 2009-07-11 22:43:20 +00:00
compat Regen the freebsd32 parts. 2009-07-08 16:30:34 +00:00
conf Rename option USBVERBOSE to USB_VERBOSE for 2 reasons: 2009-07-12 04:48:47 +00:00
contrib Remove build timestamps from the following files: 2009-07-11 22:30:37 +00:00
crypto
ddb
dev Isochronous transfers only have 1 frame buffer, but multiple 2009-07-12 16:50:32 +00:00
fs Add calls to the experimental nfs client for the case of an "intr" mount, 2009-07-12 17:07:35 +00:00
gdb
geom Revert revisions 188839 and 188868. Use of the ioctl in geom_dev.c 2009-07-08 05:56:14 +00:00
gnu Fix the build by using proper format. 2009-06-25 16:48:13 +00:00
i386 Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
ia64 Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
isa
kern Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
kgssapi When the KOBJMETHOD() macro was updated, it resulted in the 2009-06-14 17:33:46 +00:00
libkern done method is supposed to return int. 2009-06-22 22:09:18 +00:00
mips Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
modules Separate the parallel scsi knowledge out of the core of the XPT, and 2009-07-10 08:18:08 +00:00
net Re-factoring for adding weighted routes introduced a 2009-07-11 21:56:23 +00:00
net80211 Implementation of the upcoming Wireless Mesh standard, 802.11s, on the 2009-07-11 15:02:45 +00:00
netatalk Use queue(9) instead of hand-crafted link lists for the global netatalk 2009-06-24 21:36:09 +00:00
netgraph Fix infinite loop in ng_iface, that happens when packet passes out via 2009-07-01 08:08:56 +00:00
netinet Pad the following TCP related structs to allow MFCs of upcoming features/fixes 2009-07-12 09:14:28 +00:00
netinet6 This patch adds a host route to an interface address (that is assigned 2009-07-12 19:20:55 +00:00
netipsec Add address list locking for in6_ifaddrhead/ia_link: as with locking 2009-06-25 16:35:28 +00:00
netipx Use queue(9) instead of hand-crafted link lists for the global IPX 2009-06-24 20:57:50 +00:00
netnatm
netncp
netsmb
nfs Revert rev 192323 (nfs_common.c only): 2009-07-12 03:53:52 +00:00
nfsclient In vn_vget_ino() and their inline equivalents, mnt_ref() the mount point 2009-07-02 18:02:55 +00:00
nfsserver Remove the old kernel RPC implementation and the NFS_LEGACYRPC option. 2009-06-30 19:03:27 +00:00
nlm Since svc_[dg|vc|tli|tp]_create() did not hold a reference count on the 2009-06-17 22:50:26 +00:00
opencrypto
pc98 Implementation of the upcoming Wireless Mesh standard, 802.11s, on the 2009-07-11 15:02:45 +00:00
pci Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/ 2009-06-26 11:45:06 +00:00
powerpc Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
rpc When unmounting an NFS mount using sec=krb5[ip], the umount system 2009-07-01 16:42:03 +00:00
security Create audit records for AUE_POSIX_OPENPT, currently w/o arguments. 2009-07-02 16:33:38 +00:00
sparc64 Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
sun4v Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
sys Pad the following TCP related structs to allow MFCs of upcoming features/fixes 2009-07-12 09:14:28 +00:00
tools - Increase dynamic range of filter coefficients from 28bit to 30bit. 2009-07-05 18:15:06 +00:00
ufs Fix fpathconf(3) on fifos, in effect making ls(1) properly 2009-07-02 20:05:21 +00:00
vm Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
xdr
xen
Makefile