DragonFly BSD
DragonFly commits List (threaded) for 2010-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - SWAP CACHE part 6/many - Refactor swap_pager_freespace()


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 4 Feb 2010 15:19:42 -0800 (PST)

commit 8d292090b933bb902477afb2312e290b83bb7d16
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Wed Feb 3 19:02:45 2010 -0800

    kernel - SWAP CACHE part 6/many - Refactor swap_pager_freespace()
    
    * Refactor swap_pager_freespace() to use a RB_SCAN() instead of a
      vm_pindex_t iteration.  This is necessary if we intend to allow
      swap backing store for vnodes because the related files & VM objects
      can be huge.  This is also generally a good idea in 64-bit mode
      to help deal with x86_64's massive address space.
    
    * Start adding swap space freeing calls in the OBJT_VNODE handling code
      and generic VM object handling code.
    
    * Remove various checks for OBJT_SWAP from swap*() and swp*() functions
      to allow them to be used with OBJT_VNODE objects.
    
    * Add checks for degenerate cases to reduce call overheads as the swap
      handling functions are now called for vnode objects too.
    
    * Add assertions for pagers which do not need swap support.

Summary of changes:
 sys/vm/default_pager.c |    1 +
 sys/vm/device_pager.c  |    1 +
 sys/vm/phys_pager.c    |    1 +
 sys/vm/swap_pager.c    |  150 +++++++++++++++++++++++++++++++++---------------
 sys/vm/swap_pager.h    |    4 +-
 sys/vm/vm_object.c     |   23 +++++---
 sys/vm/vm_pager.c      |    1 +
 sys/vm/vnode_pager.c   |    2 +
 8 files changed, 127 insertions(+), 56 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8d292090b933bb902477afb2312e290b83bb7d16


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]