NetBSD/sys/uvm
jdolecek 089abdad44 Rearrange process exit path to avoid need to free resources from different
process context ('reaper').

From within the exiting process context:
* deactivate pmap and free vmspace while we can still block
* introduce MD cpu_lwp_free() - this cleans all MD-specific context (such
  as FPU state), and is the last potentially blocking operation;
  all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free()
* process is now immediatelly marked as zombie and made available for pickup
  by parent; the remaining last lwp continues the exit as fully detached
* MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same
  for both 'process' and 'lwp' exit

uvm_lwp_exit() is modified to never block; the u-area memory is now
always just linked to the list of available u-areas. Introduce (blocking)
uvm_uarea_drain(), which is called to release the excessive u-area memory;
this is called by parent within wait4(), or by pagedaemon on memory shortage.
uvm_uarea_free() is now private function within uvm_glue.c.

MD process/lwp exit code now always calls lwp_exit2() immediatelly after
switching away from the exiting lwp.

g/c now unneeded routines and variables, including the reaper kernel thread
2004-01-04 11:33:29 +00:00
..
Makefile
uvm_amap_i.h
uvm_amap.c
uvm_amap.h
uvm_anon.c When retiring a swap device with marked bad blocks on it we should update 2003-08-28 13:12:17 +00:00
uvm_anon.h
uvm_aobj.c Fix a reversed logic in swap deallocation which could lead to 2003-09-18 13:48:05 +00:00
uvm_aobj.h
uvm_bio.c
uvm_ddb.h
uvm_device.c
uvm_device.h
uvm_extern.h Rearrange process exit path to avoid need to free resources from different 2004-01-04 11:33:29 +00:00
uvm_fault_i.h
uvm_fault.c Make sure to call uvm_swap_free() and uvm_swap_markbad() with valid (i.e. 2003-08-11 16:44:35 +00:00
uvm_fault.h
uvm_glue.c Rearrange process exit path to avoid need to free resources from different 2004-01-04 11:33:29 +00:00
uvm_glue.h
uvm_init.c update comment - kmem_map is created in kmeminit(), not uvm_km_init() 2003-10-26 08:05:00 +00:00
uvm_io.c
uvm_km.c * Introduce uvm_km_kmemalloc1() which allows alignment and preferred offset 2003-12-18 15:02:04 +00:00
uvm_km.h
uvm_loan.c uvm_loanzero: 2003-10-27 12:47:33 +00:00
uvm_loan.h
uvm_map_i.h track map entries and free spaces using red-black tree 2003-11-01 11:09:02 +00:00
uvm_map.c Unindent a code block that doens't need to be indented. 2003-12-19 06:02:50 +00:00
uvm_map.h track map entries and free spaces using red-black tree 2003-11-01 11:09:02 +00:00
uvm_meter.c Allow sysctl(8) to update vm.{anon,exec,file}{min,max}. 2003-12-07 00:40:43 +00:00
uvm_mmap.c mincore: don't treat an aobj as a device mapping. 2003-11-29 19:06:48 +00:00
uvm_object.h mincore: don't treat an aobj as a device mapping. 2003-11-29 19:06:48 +00:00
uvm_page_i.h
uvm_page.c No need to break a line - the full line is less than 80 chars long. 2003-12-21 11:38:46 +00:00
uvm_page.h In vm_phsyseg_find, use u_int for start, len and try when doing a 2003-11-10 16:13:05 +00:00
uvm_pager_i.h
uvm_pager.c Can't rely on side-effects in KASSERT expressions which was pointed out to 2003-09-01 14:20:57 +00:00
uvm_pager.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
uvm_param.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
uvm_pdaemon.c Rearrange process exit path to avoid need to free resources from different 2004-01-04 11:33:29 +00:00
uvm_pdaemon.h
uvm_pglist.c add a DEBUG check if freed PG_ZERO pages are really zero-filled. 2003-11-03 03:58:28 +00:00
uvm_pglist.h
uvm_pmap.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
uvm_prot.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
uvm_stat.c
uvm_stat.h
uvm_swap.c When retiring a swap device with marked bad blocks on it we should update 2003-08-28 13:12:17 +00:00
uvm_swap.h Introduce uvm_swapisfull(), which computes the available swap space by 2003-08-11 16:33:30 +00:00
uvm_unix.c add support for non-executable mappings (where the hardware allows this) 2003-08-24 17:52:28 +00:00
uvm_user.c
uvm_vnode.c
uvm.h