DragonFly-2.1.1.87.g20479 master sys/kern vfs_bio.c sys/platform/pc32/i386 pmap.c sys/platform/pc64/amd64 pmap.c sys/platform/vkernel/platform pmap.c sys/vm vm_glue.c vm_map.c vm_map.h vm_page.c vm_page2.h vm_pageout.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Dec 18 13:46:57 PST 2008
commit 20479584e1624aae60acc01070a685a1ae5ae392
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Dec 18 13:27:20 2008 -0800
This is a major revamping of the pageout and low-memory handling code.
The pageout daemon now detects out-of-memory conditions and properly
kills the largest process(es). This condition occurs when swap is
full (or you have no swap) and most of the remaining VM pages in memory
have become dirty. With no swap to page to the dirty pages squeeze out
the clean ones. The pageout daemon detects the case and starts killing
processes.
The pageout daemon now detects stress in the form of excess cpu use
and tries to reduce its cpu footprint when that occurs. Excess cpu use
can occur when the only pages left in-core are dirty and there is nowhere
to swap them to. Previously if this case occured the system would basically
just stop working.
These changes make the system truely have VM = RAM+SWAP. If you 1G of ram
and 1G of swap the system can run up to 2G worth of processes.
Summary of changes:
sys/kern/vfs_bio.c | 11 --
sys/platform/pc32/i386/pmap.c | 6 +-
sys/platform/pc64/amd64/pmap.c | 6 +-
sys/platform/vkernel/platform/pmap.c | 6 +-
sys/vm/vm_glue.c | 2 +-
sys/vm/vm_map.c | 39 ++++-
sys/vm/vm_map.h | 1 +
sys/vm/vm_page.c | 19 +--
sys/vm/vm_page2.h | 71 ++++----
sys/vm/vm_pageout.c | 306 +++++++++++++++++++---------------
10 files changed, 260 insertions(+), 207 deletions(-)
http://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commitdiff;h=20479584e1624aae60acc01070a685a1ae5ae392
--
DragonFly BSD source repository
More information about the Commits
mailing list