NetBSD/sys/uvm
atatat 94ef8e0795 Add an implementation of forward merging of new map entries. Most new
allocations can be merged either forwards or backwards, meaning no new
entries will be added to the list, and some can even be merged in both
directions, resulting in a surplus entry.

This code typically reduces the number of map entries in the
kernel_map by an order of magnitude or more.  It also makes possible
recovery from the pathological case of "5000 processes created and
then killed", which leaves behind a large number of map entries.

The only forward merge case not covered is the instance of an amap
that has to be extended backwards (WIP).  Note that this only affects
processes, not the kernel (the kernel doesn't use amaps), and that
merge opportunities like this come up *very* rarely, if at all.  Eg,
after being up for eight days, I see only three failures in this
regard, and even those are most likely due to programs I'm developing
to exercise this case.

Code reviewed by thorpej, matt, christos, mrg, chuq, chuck, perry,
tls, and probably others.  I'd like to thank my mother, the Hollywood
Foreign Press...
2002-10-18 13:18:42 +00:00
..
Makefile
uvm_amap_i.h
uvm_amap.c
uvm_amap.h
uvm_anon.c
uvm_anon.h
uvm_aobj.c
uvm_aobj.h
uvm_bio.c remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
uvm_ddb.h
uvm_device.c
uvm_device.h
uvm_extern.h encapsulate knowledge of uarea allocation in some new functions. 2002-09-22 07:20:29 +00:00
uvm_fault_i.h
uvm_fault.c
uvm_fault.h
uvm_glue.c encapsulate knowledge of uarea allocation in some new functions. 2002-09-22 07:20:29 +00:00
uvm_glue.h
uvm_init.c
uvm_io.c
uvm_km.c Garbage collect some leftover (and unneeded) code. OK'ed by chs. 2002-10-05 17:26:06 +00:00
uvm_km.h
uvm_loan.c
uvm_loan.h
uvm_map_i.h add a new flag VM_MAP_DYING, which is set before we start 2002-09-22 07:21:29 +00:00
uvm_map.c Add an implementation of forward merging of new map entries. Most new 2002-10-18 13:18:42 +00:00
uvm_map.h add a new flag VM_MAP_DYING, which is set before we start 2002-09-22 07:21:29 +00:00
uvm_meter.c
uvm_mmap.c #if 0 the call to uvm_map_checkprot() in sys_munmap() -- it's not documented, 2002-09-27 19:13:29 +00:00
uvm_object.h
uvm_page_i.h
uvm_page.c remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
uvm_page.h
uvm_pager_i.h
uvm_pager.c uao_find_swslot()'s second argument is in units of pages, not bytes. 2002-10-01 07:52:30 +00:00
uvm_pager.h
uvm_param.h
uvm_pdaemon.c
uvm_pdaemon.h
uvm_pglist.c
uvm_pglist.h
uvm_pmap.h add pmap_remove_all() hook (empty on most platforms so far). 2002-09-22 07:17:08 +00:00
uvm_prot.h
uvm_stat.c
uvm_stat.h
uvm_swap.c remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
uvm_swap.h
uvm_unix.c
uvm_user.c
uvm_vnode.c
uvm.h