freebsd-dev/sys/vm
Alan Cox cf4682ae23 Eliminate the reactivation of cached pages in vm_fault_prefault() and
vm_map_pmap_enter() unless the caller is madvise(MADV_WILLNEED).  With
the exception of calls to vm_map_pmap_enter() from
madvise(MADV_WILLNEED), vm_fault_prefault() and vm_map_pmap_enter()
are both used to create speculative mappings.  Thus, always
reactivating cached pages is a mistake.  In principle, cached pages
should only be reactivated by an actual access.  Otherwise, the
following misbehavior can occur.  On a hard fault for a text page the
clustering algorithm fetches not only the required page but also
several of the adjacent pages.  Now, suppose that one or more of the
adjacent pages are never accessed.  Ultimately, these unused pages
become cached pages through the efforts of the page daemon.  However,
the next activation of the executable reactivates and maps these
unused pages.  Consequently, they are never replaced.  In effect, they
become pinned in memory.
2007-05-22 04:45:59 +00:00
..
default_pager.c
device_pager.c
memguard.c
memguard.h
phys_pager.c Minor typo fix, noticed while I was going through *_pager.c files. 2007-04-10 12:34:51 +00:00
pmap.h
redzone.c
redzone.h
swap_pager.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
swap_pager.h
uma_core.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h Update stale comment on protecting UMA per-CPU caches: we now use 2007-05-09 22:53:34 +00:00
uma.h Add uma_set_align() interface, which will be called at most once during 2007-02-11 20:13:52 +00:00
vm_contig.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
vm_extern.h
vm_fault.c Eliminate the reactivation of cached pages in vm_fault_prefault() and 2007-05-22 04:45:59 +00:00
vm_glue.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
vm_init.c
vm_kern.c When KVA is exhausted, try the vm_lowmem event for the last time before 2007-04-05 20:52:51 +00:00
vm_kern.h
vm_map.c Eliminate the reactivation of cached pages in vm_fault_prefault() and 2007-05-22 04:45:59 +00:00
vm_map.h
vm_meter.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
vm_mmap.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
vm_object.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
vm_object.h
vm_page.c - rename VMCNT_DEC to VMCNT_SUB to reflect the count argument. 2007-05-20 22:33:42 +00:00
vm_page.h Define every architecture as either VM_PHYSSEG_DENSE or 2007-05-05 19:50:28 +00:00
vm_pageout.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
vm_pageout.h
vm_pageq.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
vm_pager.c
vm_pager.h
vm_param.h Correct two comments. 2007-04-19 04:52:47 +00:00
vm_unix.c
vm_zeroidle.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
vm.h
vnode_pager.c - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating 2007-05-18 07:10:50 +00:00
vnode_pager.h