NetBSD/sys/uvm
thorpej 1779f8f71b Page scanner improvements, behavior is actually a bit more like
Mach VM's now.  Specific changes:
- Pages now need not have all of their mappings removed before being
  put on the inactive list.  They only need to have the "referenced"
  attribute cleared.  This makes putting pages onto the inactive list
  much more efficient.  In order to eliminate redundant clearings of
  "refrenced", callers of uvm_pagedeactivate() must now do this
  themselves.
- When checking the "modified" attribute for a page (for clearing
  PG_CLEAN), make sure to only do it if PG_CLEAN is currently set on
  the page (saves a potentially expensive pmap operation).
- When scanning the inactive list, if a page is referenced, reactivate
  it (this part was actually added in uvm_pdaemon.c,v 1.27).  This
  now works properly now that pages on the inactive list are allowed to
  have mappings.
- When scanning the inactive list and considering a page for freeing,
  remove all mappings, and then check the "modified" attribute if the
  page is marked PG_CLEAN.
- When scanning the active list, if the page was referenced since its
  last sweep by the scanner, don't deactivate it.  (This part was
  actually added in uvm_pdaemon.c,v 1.28.)

These changes greatly improve interactive performance during
moderate to high memory and I/O load.
2001-01-28 23:30:42 +00:00
..
Makefile Rename VM_INHERIT_* to MAP_INHERIT_* and move them to sys/sys/mman.h as 2000-08-01 00:53:07 +00:00
uvm_amap_i.h lots of cleanup: 2000-11-25 06:27:59 +00:00
uvm_amap.c Change uvm_analloc() to return a locked anon, update all callers, 2001-01-23 02:27:39 +00:00
uvm_amap.h lots of cleanup: 2000-11-25 06:27:59 +00:00
uvm_anon.c Page scanner improvements, behavior is actually a bit more like 2001-01-28 23:30:42 +00:00
uvm_anon.h when we fail to allocate anons to represent new swap space, 2000-12-27 09:17:04 +00:00
uvm_aobj.c Page scanner improvements, behavior is actually a bit more like 2001-01-28 23:30:42 +00:00
uvm_aobj.h add support for ``swapctl -d'' (removing swap space). 2000-01-11 06:57:49 +00:00
uvm_bio.c fix some types so that files larger than 4GB work. 2000-12-27 09:01:45 +00:00
uvm_ddb.h lots of cleanup: 2000-11-25 06:27:59 +00:00
uvm_device.c lots of cleanup: 2000-11-25 06:27:59 +00:00
uvm_device.h Don't silently truncate the voff_t offset to vaddr_t when passing it to 2000-05-28 10:21:55 +00:00
uvm_extern.h Move uvm_pgcnt_vnode and uvm_pgcnt_anon into uvmexp (as vnodepages and 2000-11-30 11:04:43 +00:00
uvm_fault_i.h remove/move more mach vm header files: 2000-06-26 14:20:25 +00:00
uvm_fault.c Page scanner improvements, behavior is actually a bit more like 2001-01-28 23:30:42 +00:00
uvm_fault.h remove/move more mach vm header files: 2000-06-26 14:20:25 +00:00
uvm_glue.c lots of cleanup: 2000-11-25 06:27:59 +00:00
uvm_glue.h Protect prototypes, certain macros, and inlines from userland. 1999-06-21 17:25:11 +00:00
uvm_init.c remove include of <vm/vm.h> 2000-06-27 17:29:17 +00:00
uvm_io.c remove include of <vm/vm.h> 2000-06-27 17:29:17 +00:00
uvm_km.c splimp() -> splvm() 2001-01-14 02:10:01 +00:00
uvm_km.h Protect prototypes, certain macros, and inlines from userland. 1999-06-21 17:25:11 +00:00
uvm_loan.c Change uvm_analloc() to return a locked anon, update all callers, 2001-01-23 02:27:39 +00:00
uvm_loan.h Protect prototypes, certain macros, and inlines from userland. 1999-06-21 17:25:11 +00:00
uvm_map_i.h Initial integration of the Unified Buffer Cache project. 2000-11-27 08:39:39 +00:00
uvm_map.c Page scanner improvements, behavior is actually a bit more like 2001-01-28 23:30:42 +00:00
uvm_map.h Use single const char array instead of over 200 string constant. 2000-12-13 08:06:11 +00:00
uvm_meter.c Move uvm_pgcnt_vnode and uvm_pgcnt_anon into uvmexp (as vnodepages and 2000-11-30 11:04:43 +00:00
uvm_mmap.c Nevermind that it's silly to include PROT_EXEC even if a vnode 2001-01-08 01:35:03 +00:00
uvm_object.h Put the extern decl of uvm_vnodeops in uvm_object.h 2001-01-28 22:23:04 +00:00
uvm_page_i.h Page scanner improvements, behavior is actually a bit more like 2001-01-28 23:30:42 +00:00
uvm_page.c Put the extern decl of uvm_vnodeops in uvm_object.h 2001-01-28 22:23:04 +00:00
uvm_page.h remove some more leftovers from Mach. 2000-12-28 08:24:55 +00:00
uvm_pager_i.h lots of cleanup: 2000-11-25 06:27:59 +00:00
uvm_pager.c Page scanner improvements, behavior is actually a bit more like 2001-01-28 23:30:42 +00:00
uvm_pager.h Initial integration of the Unified Buffer Cache project. 2000-11-27 08:39:39 +00:00
uvm_param.h atop(): cast argument to paddr_t' (instead of u_long') to avoid 2001-01-09 13:55:20 +00:00
uvm_pdaemon.c Page scanner improvements, behavior is actually a bit more like 2001-01-28 23:30:42 +00:00
uvm_pdaemon.h Const poison uvm_wait(). 1999-11-04 21:51:42 +00:00
uvm_pglist.c lots of cleanup: 2000-11-25 06:27:59 +00:00
uvm_pglist.h remove/move more mach vm header files: 2000-06-26 14:20:25 +00:00
uvm_pmap.h more vm header file changes: 2000-06-27 09:00:14 +00:00
uvm_prot.h <vm/vm_prot.h> becomes <uvm/uvm_prot.h> 2000-06-25 13:37:51 +00:00
uvm_stat.c add new uvmexp fields for uvmexp_print(). 2000-12-01 09:48:56 +00:00
uvm_stat.h Finish previous. 2000-04-11 08:12:14 +00:00
uvm_swap.c Use cast where appropriate to avoid integer overflow. 2001-01-04 06:07:18 +00:00
uvm_swap.h add support for ``swapctl -d'' (removing swap space). 2000-01-11 06:57:49 +00:00
uvm_unix.c Add an align argument to uvm_map() and some callers of that 2000-09-13 15:00:15 +00:00
uvm_user.c remove include of <vm/vm.h> 2000-06-27 17:29:17 +00:00
uvm_vnode.c Page scanner improvements, behavior is actually a bit more like 2001-01-28 23:30:42 +00:00
uvm_vnode.h Initial integration of the Unified Buffer Cache project. 2000-11-27 08:39:39 +00:00
uvm.h Initial integration of the Unified Buffer Cache project. 2000-11-27 08:39:39 +00:00