NetBSD/sys/uvm
atatat df0a9badc6 Introduce "top down" memory management for mmap()ed allocations. This
means that the dynamic linker gets mapped in at the top of available
user virtual memory (typically just below the stack), shared libraries
get mapped downwards from that point, and calls to mmap() that don't
specify a preferred address will get mapped in below those.

This means that the heap and the mmap()ed allocations will grow
towards each other, allowing one or the other to grow larger than
before.  Previously, the heap was limited to MAXDSIZ by the placement
of the dynamic linker (and the process's rlimits) and the space
available to mmap was hobbled by this reservation.

This is currently only enabled via an *option* for the i386 platform
(though other platforms are expected to follow).  Add "options
USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild
your kernel to take advantage of this.

Note that the pmap_prefer() interface has not yet been modified to
play nicely with this, so those platforms require a bit more work
(most notably the sparc) before they can use this new memory
arrangement.

This change also introduces a VM_DEFAULT_ADDRESS() macro that picks
the appropriate default address based on the size of the allocation or
the size of the process's text segment accordingly.  Several drivers
and the SYSV SHM address assignment were changed to use this instead
of each one picking their own "default".
2003-02-20 22:16:05 +00:00
..
Makefile Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +00:00
uvm.h Reorder things so that with multiple inclusion protection that optional 2002-12-01 22:58:43 +00:00
uvm_amap.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
uvm_amap.h Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
uvm_amap_i.h Properly set page references counts at the start of the newly 2002-12-20 18:21:13 +00:00
uvm_anon.c
uvm_anon.h
uvm_aobj.c uao_put: release uvm object's lock only after we're done with its page list. 2003-02-09 22:28:40 +00:00
uvm_aobj.h
uvm_bio.c
uvm_ddb.h
uvm_device.c
uvm_device.h
uvm_extern.h Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
uvm_fault.c uvm_fault: case 1B: lock page queue before calling uvm_pageactivate(). 2003-02-09 22:32:21 +00:00
uvm_fault.h
uvm_fault_i.h
uvm_glue.c Rework the way in which the map is traversed when dumping core. Now 2003-02-14 16:25:12 +00:00
uvm_glue.h
uvm_init.c
uvm_io.c
uvm_km.c Change uvm_km_kmemalloc() to accept flag UVM_KMF_NOWAIT and pass it to 2002-11-30 18:28:04 +00:00
uvm_km.h
uvm_loan.c
uvm_loan.h
uvm_map.c Introduce "top down" memory management for mmap()ed allocations. This 2003-02-20 22:16:05 +00:00
uvm_map.h Introduce "top down" memory management for mmap()ed allocations. This 2003-02-20 22:16:05 +00:00
uvm_map_i.h Reorder things so that with multiple inclusion protection that optional 2002-12-01 22:58:43 +00:00
uvm_meter.c Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
uvm_mmap.c Introduce "top down" memory management for mmap()ed allocations. This 2003-02-20 22:16:05 +00:00
uvm_object.h
uvm_page.c Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
uvm_page.h
uvm_page_i.h Reorder things so that with multiple inclusion protection that optional 2002-12-01 22:58:43 +00:00
uvm_pager.c
uvm_pager.h Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
uvm_pager_i.h Reorder things so that with multiple inclusion protection that optional 2002-12-01 22:58:43 +00:00
uvm_param.h Introduce "top down" memory management for mmap()ed allocations. This 2003-02-20 22:16:05 +00:00
uvm_pdaemon.c Quell uninitialised variable warnings. 2002-11-24 11:50:32 +00:00
uvm_pdaemon.h
uvm_pglist.c
uvm_pglist.h
uvm_pmap.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
uvm_prot.h
uvm_stat.c
uvm_stat.h Include CPU number in UVM history logs. 2003-02-09 22:33:18 +00:00
uvm_swap.c Make the buffer cache code MP-safe. 2003-02-05 21:38:38 +00:00
uvm_swap.h
uvm_unix.c Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
uvm_user.c
uvm_vnode.c