NetBSD/sys/uvm
thorpej 7fd701e0fa Add support for multiple memory free lists. There is at least one
default free list, and 0 - N additional free list, in order of descending
priority.

A new page allocation function, uvm_pagealloc_strat(), has been added,
providing three page allocation strategies:

	- normal: high -> low priority free list walk, taking the
	  page off the first free list that has one.

	- only: attempt to allocate a page only from the specified free
	  list, failing if that free list has none available.

	- fallback: if `only' fails, fall back on `normal'.

uvm_pagealloc(...) is provided for normal use (and is a synonym for
uvm_pagealloc_strat(..., UVM_PGA_STRAT_NORMAL, 0); the free list argument
is ignored for the `normal' case).

uvm_page_physload() now specified which free list the pages will be
loaded onto.  This means that some platforms which have multiple physical
memory segments may define additional vm_physsegs if they wish to break
individual physical segments into differing priorities.

Machine-dependent code must define _at least_ the following constants
in <machine/vmparam.h>:

	VM_NFREELIST: the number of free lists the system will have

	VM_FREELIST_DEFAULT: the default freelist (should always be 0,
	but is defined in machdep code so that it's with all of the
	other free list-related constants).

Additional free list names may be defined by machine-dependent code, but
they will only be used by machine-dependent code (e.g. for loading the
vm_physsegs).
1998-07-08 04:28:27 +00:00
..
Makefile Rework the way kernel include files are installed. In the new method, 1998-06-12 23:22:30 +00:00
uvm_amap_i.h
uvm_amap.c add a "<-done!" log 1998-06-20 13:16:29 +00:00
uvm_amap.h
uvm_anon.h
uvm_aobj.c
uvm_aobj.h
uvm_ddb.h defopt DDB. 1998-07-04 22:18:13 +00:00
uvm_device.c
uvm_device.h
uvm_extern.h Add support for multiple memory free lists. There is at least one 1998-07-08 04:28:27 +00:00
uvm_fault_i.h
uvm_fault.c Use the sparc's GCC lossage fix for the arm32 port as well. Problem appears 1998-06-02 20:51:24 +00:00
uvm_fault.h
uvm_glue.c Use size_t to pass the length of the memory region to operate on to chgkprot(), 1998-05-09 15:04:39 +00:00
uvm_glue.h
uvm_init.c
uvm_io.c
uvm_km.c correct counting for uvmexp.wired: 1998-06-09 05:18:52 +00:00
uvm_km.h
uvm_loan.c
uvm_loan.h
uvm_map_i.h
uvm_map.c Add support for multiple memory free lists. There is at least one 1998-07-08 04:28:27 +00:00
uvm_map.h
uvm_meter.c
uvm_mmap.c Add support for mmap'ing disk block devices. 1998-07-07 23:22:13 +00:00
uvm_object.h
uvm_page_i.h Add support for multiple memory free lists. There is at least one 1998-07-08 04:28:27 +00:00
uvm_page.c Add support for multiple memory free lists. There is at least one 1998-07-08 04:28:27 +00:00
uvm_page.h Add support for multiple memory free lists. There is at least one 1998-07-08 04:28:27 +00:00
uvm_pager_i.h
uvm_pager.c
uvm_pager.h
uvm_pdaemon.c
uvm_pdaemon.h
uvm_pglist.c Add support for multiple memory free lists. There is at least one 1998-07-08 04:28:27 +00:00
uvm_stat.c Add new history grovelling function uvm_hist() that takes a bitmask of 1998-06-20 13:19:00 +00:00
uvm_stat.h Add new history grovelling function uvm_hist() that takes a bitmask of 1998-06-20 13:19:00 +00:00
uvm_swap.c Correct an expression that tried to compute the swap size in bytes using 1998-06-17 07:38:28 +00:00
uvm_swap.h
uvm_unix.c
uvm_user.c
uvm_vnode.c Add support for mmap'ing disk block devices. 1998-07-07 23:22:13 +00:00
uvm_vnode.h
uvm.h Add support for multiple memory free lists. There is at least one 1998-07-08 04:28:27 +00:00