NetBSD/sys/uvm
thorpej a180cee23b Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map).  Try to deal with this:

* Group all information about the backend allocator for a pool in a
  separate structure.  The pool references this structure, rather than
  the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
  to become available, but will still fail if it cannot callocate KVA
  space for the pages.  If this happens, carefully drain all pools using
  the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
  some pages, and use that information to make draining easier and more
  efficient.
* Get rid of PR_URGENT.  There was only one use of it, and it could be
  dealt with by the caller.

From art@openbsd.org.
2002-03-08 20:48:27 +00:00
..
Makefile a whole bunch of changes to improve performance and robustness under load: 2001-09-15 20:36:31 +00:00
uvm_amap_i.h remove trailing whitespace. 2001-05-25 04:06:11 +00:00
uvm_amap.c Pool deals fairly well with physical memory shortage, but it doesn't 2002-03-08 20:48:27 +00:00
uvm_amap.h replace vm_map{,_entry}_t with struct vm_map{,_entry} *. 2001-06-02 18:09:08 +00:00
uvm_anon.c add RCSIDs, and in some cases, slightly cleanup #include order 2001-11-10 07:36:59 +00:00
uvm_anon.h replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}. 2001-05-26 16:32:40 +00:00
uvm_aobj.c Pool deals fairly well with physical memory shortage, but it doesn't 2002-03-08 20:48:27 +00:00
uvm_aobj.h a whole bunch of changes to improve performance and robustness under load: 2001-09-15 20:36:31 +00:00
uvm_bio.c honor the PG_RDONLY flag (so that NFS can clear the PG_NEEDCOMMIT flag 2002-02-27 16:02:03 +00:00
uvm_ddb.h replace vm_map{,_entry}_t with struct vm_map{,_entry} *. 2001-06-02 18:09:08 +00:00
uvm_device.c use the <sys/conf.h> macro to get the mmap footprint. 2002-02-28 21:00:23 +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 the code that walks the process's VM map during a coredump 2001-12-10 01:52:26 +00:00
uvm_fault_i.h a whole bunch of changes to improve performance and robustness under load: 2001-09-15 20:36:31 +00:00
uvm_fault.c in uvm_fault_unwire_locked(), if we find that a pmap entry is missing, 2002-01-02 01:10:36 +00:00
uvm_fault.h introduce a new UVM fault type, VM_FAULT_WIREMAX. this is different 2001-12-31 22:34:39 +00:00
uvm_glue.c introduce a new UVM fault type, VM_FAULT_WIREMAX. this is different 2001-12-31 22:34:39 +00:00
uvm_glue.h
uvm_init.c add RCSIDs, and in some cases, slightly cleanup #include order 2001-11-10 07:36:59 +00:00
uvm_io.c add RCSIDs, and in some cases, slightly cleanup #include order 2001-11-10 07:36:59 +00:00
uvm_km.c If the bootstrapping process didn't actually use any KVA space, don't 2002-03-07 20:15:32 +00:00
uvm_km.h a whole bunch of changes to improve performance and robustness under load: 2001-09-15 20:36:31 +00:00
uvm_loan.c fix locking for loaning. in general we should be looking at the page's 2001-12-31 19:21:36 +00:00
uvm_loan.h several changes prompted by loaning problems: 2001-11-06 08:07:49 +00:00
uvm_map_i.h Reduce some complexity in the fault path -- Rather than maintaining 2001-06-26 17:55:14 +00:00
uvm_map.c Pool deals fairly well with physical memory shortage, but it doesn't 2002-03-08 20:48:27 +00:00
uvm_map.h protect against traditional macro expansion. 2001-10-03 13:32:23 +00:00
uvm_meter.c add {anon,file,exec}max as a upper bound on the amount of memory that 2001-12-09 03:07:19 +00:00
uvm_mmap.c in sys_mincore(), check the return value of uvm_vslock() to determine 2001-12-14 04:21:22 +00:00
uvm_object.h - Add a new vnode flag VEXECMAP, which indicates that a vnode has 2001-10-30 15:32:01 +00:00
uvm_page_i.h a whole bunch of changes to improve performance and robustness under load: 2001-09-15 20:36:31 +00:00
uvm_page.c In the function uvm_page_own(), clear owner_tag after assertion so that 2002-02-20 07:06:56 +00:00
uvm_page.h a whole bunch of changes to improve performance and robustness under load: 2001-09-15 20:36:31 +00:00
uvm_pager_i.h remove trailing whitespace. 2001-05-25 04:06:11 +00:00
uvm_pager.c fix locking for loaning. in general we should be looking at the page's 2001-12-31 19:21:36 +00:00
uvm_pager.h a whole bunch of changes to improve performance and robustness under load: 2001-09-15 20:36:31 +00:00
uvm_param.h add {anon,file,exec}max as a upper bound on the amount of memory that 2001-12-09 03:07:19 +00:00
uvm_pdaemon.c deamon -> daemon 2002-01-21 14:42:26 +00:00
uvm_pdaemon.h remove trailing whitespace. 2001-05-25 04:06:11 +00:00
uvm_pglist.c add RCSIDs, and in some cases, slightly cleanup #include order 2001-11-10 07:36:59 +00:00
uvm_pglist.h use the correct symbol for multi-include protection. 2001-08-25 20:37:46 +00:00
uvm_pmap.h Update pmap_update to now take the updated pmap as an argument. 2001-09-10 21:19:08 +00:00
uvm_prot.h remove trailing whitespace. 2001-05-25 04:06:11 +00:00
uvm_stat.c add {anon,file,exec}max as a upper bound on the amount of memory that 2001-12-09 03:07:19 +00:00
uvm_stat.h Include <sys/kernel.h> if UVMHIST is defined - the "cold" variable is 2002-03-05 05:45:54 +00:00
uvm_swap.c Pool deals fairly well with physical memory shortage, but it doesn't 2002-03-08 20:48:27 +00:00
uvm_swap.h
uvm_unix.c Make the coredump routine exec-format/emulation specific. Split 2001-12-08 00:35:25 +00:00
uvm_user.c add RCSIDs, and in some cases, slightly cleanup #include order 2001-11-10 07:36:59 +00:00
uvm_vnode.c in uvm_vnp_setsize(), wait for any i/o in progress on pages that we free. 2001-12-31 07:00:15 +00:00
uvm.h a whole bunch of changes to improve performance and robustness under load: 2001-09-15 20:36:31 +00:00