NetBSD/sys/uvm
pk 70f20a1217 Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes).  It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms.  Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
2003-12-30 12:33:13 +00:00
..
Makefile
uvm.h
uvm_amap.c
uvm_amap.h
uvm_amap_i.h
uvm_anon.c
uvm_anon.h
uvm_aobj.c
uvm_aobj.h
uvm_bio.c
uvm_ddb.h
uvm_device.c
uvm_device.h
uvm_extern.h * Introduce uvm_km_kmemalloc1() which allows alignment and preferred offset 2003-12-18 15:02:04 +00:00
uvm_fault.c
uvm_fault.h
uvm_fault_i.h
uvm_glue.c Replace the traditional buffer memory management -- based on fixed per buffer 2003-12-30 12:33:13 +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.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_map_i.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.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_page_i.h
uvm_pager.c
uvm_pager.h
uvm_pager_i.h
uvm_param.h
uvm_pdaemon.c Replace the traditional buffer memory management -- based on fixed per buffer 2003-12-30 12:33:13 +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
uvm_prot.h
uvm_stat.c
uvm_stat.h
uvm_swap.c
uvm_swap.h
uvm_unix.c
uvm_user.c
uvm_vnode.c