git: kernel - Improve VM fault performance for sequential access
    Matthew Dillon 
    dillon at crater.dragonflybsd.org
       
    Thu Jan 14 20:07:48 PST 2010
    
    
  
commit cf1bb2a83970df7e08f3ca2ed871657ca2185944
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Jan 14 19:40:14 2010 -0800
    kernel - Improve VM fault performance for sequential access
    
    * VM fault I/O pipelining was not working properly.
    
    * Temporarily fix pipelining by introducing PG_RAM, A read-ahead mark
      for vm_page_t, and adjust vm_fault to pass VM pages through to
      getpages calls if PG_RAM is set, even if they are fully valid.
    
    * Remove code in vnode_pager_generic_getpages() which shortcutted
      the operation when the requested page was fully valid.  This
      prevented read-aheads from being issued.
    
    * A more permanent solution is in the works (basically getting rid of
      the whole VM read-ahead/read-behind array entirely, just passing
      a single page through to vnode_pager_generic_getpages(), and
      letting the filesystem handle the read-ahead in a more efficient
      fashion.
    
    Reported-by: "Mikhail T." <mi+thun at aldan.algebra.com>
Summary of changes:
 sys/kern/vfs_cluster.c |   19 ++++++++++++++-----
 sys/sys/vnode.h        |    1 +
 sys/vm/vm_fault.c      |   22 +++++++++++++++++-----
 sys/vm/vm_page.h       |    1 +
 sys/vm/vnode_pager.c   |   27 ++++++++++-----------------
 5 files changed, 43 insertions(+), 27 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/cf1bb2a83970df7e08f3ca2ed871657ca2185944
-- 
DragonFly BSD source repository
    
    
More information about the Commits
mailing list