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