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

git: kernel - Improve VM fault performance for sequential access


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 14 Jan 2010 20:07:06 -0800 (PST)

commit cf1bb2a83970df7e08f3ca2ed871657ca2185944
Author: Matthew Dillon <dillon@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@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



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