git: kernel - Add vsyncscan() infrastructure
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Oct 10 19:05:19 PDT 2013
commit bf9f24c1485cebd2c430cfbc1d23fee8df6f69e6
Author: Matthew Dillon <dillon at backplane.com>
Date: Thu Oct 10 18:56:45 2013 -0700
kernel - Add vsyncscan() infrastructure
* For VFS's which support it, allows vnodes with dirty inodes to be placed
on the syncer list rather than just vnodes with dirty buffers. The VFS
can then implement its VFS_SYNC ops by calling vsyncscan() instead of
vmntvnodescan().
* On large systems with potentially hundreds of thousands to millions of
cached vnodes, this reduces sync scan overhead by several orders of
magnitude.
* Add the VISDIRTY flag to vnode->v_flag to indicate a dirty inode, adjust
syncer add/delete code to use the flag.
* Cleanup vfs_sync.c. Always initialize mp->mnt_syncer_ctx to something.
Change the kern.syncdelay sysctl to use SYSCTL_PROC which properly
range-checks syncdelay.
* Implement vsyncscan() which only scans the syncer lists for a mount point.
Summary of changes:
sys/kern/vfs_mount.c | 6 +-
sys/kern/vfs_subr.c | 17 ++++-
sys/kern/vfs_sync.c | 181 ++++++++++++++++++++++++++++++++++++++------------
sys/kern/vfs_vfsops.c | 11 +--
sys/sys/vnode.h | 10 ++-
5 files changed, 168 insertions(+), 57 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/bf9f24c1485cebd2c430cfbc1d23fee8df6f69e6
--
DragonFly BSD source repository
More information about the Commits
mailing list