freebsd-skq/sys/vm
Matthew Dillon 2b6b0df712 This implements a better launder limiting solution. There was a solution
in 4.2-REL which I ripped out in -stable and -current when implementing the
low-memory handling solution.  However, maxlaunder turns out to be the saving
grace in certain very heavily loaded systems (e.g. newsreader box).  The new
algorithm limits the number of pages laundered in the first pageout daemon
pass.  If that is not sufficient then suceessive will be run without any
limit.

Write I/O is now pipelined using two sysctls, vfs.lorunningspace and
vfs.hirunningspace.  This prevents excessive buffered writes in the
disk queues which cause long (multi-second) delays for reads.  It leads
to more stable (less jerky) and generally faster I/O streaming to disk
by allowing required read ops (e.g. for indirect blocks and such) to occur
without interrupting the write stream, amoung other things.

NOTE: eventually, filesystem write I/O pipelining needs to be done on a
per-device basis.  At the moment it is globalized.
2000-12-26 19:41:38 +00:00
..
default_pager.c - If swap metadata does not fit into the KVM, reduce the number of 2000-12-13 10:01:00 +00:00
device_pager.c Revert spelling mistake I made in the previous commit 2000-03-27 20:41:17 +00:00
phys_pager.c Really fix phys_pager: 2000-12-06 21:52:23 +00:00
pmap.h Implement write combining for crashdumps. This is useful when 2000-10-17 10:05:49 +00:00
swap_pager.c - If swap metadata does not fit into the KVM, reduce the number of 2000-12-13 10:01:00 +00:00
swap_pager.h - If swap metadata does not fit into the KVM, reduce the number of 2000-12-13 10:01:00 +00:00
vm_extern.h Remove unused 3rd argument from vsunlock() which abused B_WRITE. 2000-03-13 10:47:24 +00:00
vm_fault.c Add the splvm()'s suggested in PR 20609 to protect vm_pager_page_unswapped(). 2000-11-18 21:11:23 +00:00
vm_glue.c - Change the allproc_lock to use a macro, ALLPROC_LOCK(how), instead 2000-12-13 00:17:05 +00:00
vm_init.c Revert spelling mistake I made in the previous commit 2000-03-27 20:41:17 +00:00
vm_kern.c - If swap metadata does not fit into the KVM, reduce the number of 2000-12-13 10:01:00 +00:00
vm_kern.h Fix null-pointer dereference crash when the system is intentionally 2000-02-16 21:11:33 +00:00
vm_map.c - If swap metadata does not fit into the KVM, reduce the number of 2000-12-13 10:01:00 +00:00
vm_map.h For lockmgr mutex protection, use an array of mutexes that are allocated 2000-10-12 22:37:28 +00:00
vm_meter.c - Change the allproc_lock to use a macro, ALLPROC_LOCK(how), instead 2000-12-13 00:17:05 +00:00
vm_mmap.c This patchset fixes a large number of file descriptor race conditions. 2000-11-18 21:01:04 +00:00
vm_object.c - If swap metadata does not fit into the KVM, reduce the number of 2000-12-13 10:01:00 +00:00
vm_object.h Make the arguments match the functionality of the functions. 2000-08-26 04:51:39 +00:00
vm_page.c This implements a better launder limiting solution. There was a solution 2000-12-26 19:41:38 +00:00
vm_page.h This implements a better launder limiting solution. There was a solution 2000-12-26 19:41:38 +00:00
vm_pageout.c This implements a better launder limiting solution. There was a solution 2000-12-26 19:41:38 +00:00
vm_pageout.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
vm_pager.c Backed out previous commit. Don't depend on namespace pollution in 2000-12-02 12:03:58 +00:00
vm_pager.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
vm_param.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
vm_swap.c - If swap metadata does not fit into the KVM, reduce the number of 2000-12-13 10:01:00 +00:00
vm_unix.c If a process is over its resource limit for datasize, still allow 2000-10-06 13:03:50 +00:00
vm_zone.c - If swap metadata does not fit into the KVM, reduce the number of 2000-12-13 10:01:00 +00:00
vm_zone.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
vm.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
vnode_pager.c This implements a better launder limiting solution. There was a solution 2000-12-26 19:41:38 +00:00
vnode_pager.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00