git: HAMMER VFS - Reduce stalls during bulk file operations
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Feb 19 10:51:39 PST 2010
commit e98f1b96f17c57d1d59a4bba1d6a26b281767c07
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Fri Feb 19 10:41:22 2010 -0800
HAMMER VFS - Reduce stalls during bulk file operations
* Track modifying inode operations on a per-PID basis (loosely) and
call hammer_inode_wait_reclaims() earlier for those pids.
The algorithm selects a wait point based on the process's perceived
contribution to the inode load. The greater the contribution, the
more readily we stall the process in order to wait for related reclaims
to process.
Processes with lower loads have higher reclaim points and do not stall
as readily as they did before.
* Remove waitreclaims calls based on B-Tree scans. I'm not sure why I had
this in there but it was creating an excessive number of unnecessary
stalls, so if any problems crop up I'll have to find another way to deal
with them.
* These changes (particularly the first) should reduce unnecessary stalls
for the programs not doing heavy inode operations. Hopefully that means
rm -rf and tar extractions will not have as quite the detrimental effect
on other processes as they did before.
Summary of changes:
sys/vfs/hammer/hammer.h | 20 +++++++-
sys/vfs/hammer/hammer_inode.c | 86 ++++++++++++++++++++++++++++++++---
sys/vfs/hammer/hammer_object.c | 10 ++--
sys/vfs/hammer/hammer_prune.c | 2 +-
sys/vfs/hammer/hammer_transaction.c | 7 ++-
sys/vfs/hammer/hammer_vnops.c | 12 +++---
6 files changed, 113 insertions(+), 24 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e98f1b96f17c57d1d59a4bba1d6a26b281767c07
--
DragonFly BSD source repository
More information about the Commits
mailing list