DragonFly commits List (threaded) for 2008-12
DragonFly-126.96.36.199.gc84c2 master sys/vm swap_pager.c swap_pager.h vm_pageout.c vm_swap.c
Author: Matthew Dillon <firstname.lastname@example.org>
Date: Wed Dec 17 17:02:38 2008 -0800
Fix bugs in dealing with low-memory situations when the system has run out
of swap or has no swap.
* Fix an error where the system started killing processes before it needed
* Continue propagating pages from the active queue to the inactive queue
when the system has run out of swap or has no swap, even though the
inactive queue has become bloated. This occurs because the inactive
queue may be unable to drain due to an excess of dirty pages which
cannot be swapped out.
* Use the active queue to detect excessive stress which combined with
an out-of-swap or no-swap situation means the system has run out of
memory. THEN start killing processes.
* This also allows the system to recycle nearly all the clean pages
available when it has no swap space left, to try to keep things going,
leaving only dirty pages in the VM page queues.
Summary of changes:
sys/vm/swap_pager.c | 10 ++++++-
sys/vm/swap_pager.h | 1 +
sys/vm/vm_pageout.c | 77 ++++++++++++++++++++++++++++++++++++++------------
sys/vm/vm_swap.c | 1 +
4 files changed, 69 insertions(+), 20 deletions(-)
DragonFly BSD source repository