git: kernel - Improve VM fault performance for sequential access
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Jan 14 19:46:42 PST 2010
commit 768970b4fd5a55ad14ac037ab9bf530686f44db8
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/768970b4fd5a55ad14ac037ab9bf530686f44db8
--
DragonFly BSD source repository
More information about the Commits
mailing list