git: kernel - Improve VM fault performance for sequential access

Matthew Dillon dillon at
Thu Jan 14 20:07:48 PST 2010

commit cf1bb2a83970df7e08f3ca2ed871657ca2185944
Author: Matthew Dillon <dillon at>
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
    Reported-by: "Mikhail T." <mi+thun at>

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(-)

DragonFly BSD source repository

More information about the Commits mailing list