diff options
author | mckusick <mckusick@FreeBSD.org> | 2013-08-05 22:02:45 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2013-08-05 22:02:45 +0000 |
commit | c3a8e703896854a4f73b2602d7692169a0fbcc57 (patch) | |
tree | aaf06fbacc2a5cc482d9d1dbd9fd94101a8654cc | |
parent | c4523d974e7d3a78a18463ebb86d6103bd28ac26 (diff) | |
download | FreeBSD-src-c3a8e703896854a4f73b2602d7692169a0fbcc57.zip FreeBSD-src-c3a8e703896854a4f73b2602d7692169a0fbcc57.tar.gz |
With the addition of journalled soft updates, the "newblk" structures
persist much longer than previously. Historically we had at most 100
entries; now the count may reach a million. With the increased count
we spent far too much time looking them up in the grossly undersized
newblk hash table. Configure the newblk hash table to accurately reflect
the number of entries that it must index.
Reviewed by: kib
Tested by: Peter Holm
MFC after: 2 weeks
-rw-r--r-- | sys/ufs/ffs/ffs_softdep.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 640151b..9662ab3 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -2393,7 +2393,7 @@ softdep_initialize() max_softdeps = desiredvnodes * 4; pagedep_hashtbl = hashinit(desiredvnodes / 5, M_PAGEDEP, &pagedep_hash); inodedep_hashtbl = hashinit(desiredvnodes, M_INODEDEP, &inodedep_hash); - newblk_hashtbl = hashinit(desiredvnodes / 5, M_NEWBLK, &newblk_hash); + newblk_hashtbl = hashinit(max_softdeps / 2, M_NEWBLK, &newblk_hash); bmsafemap_hashtbl = hashinit(1024, M_BMSAFEMAP, &bmsafemap_hash); i = 1 << (ffs(desiredvnodes / 10) - 1); indir_hashtbl = malloc(i * sizeof(indir_hashtbl[0]), M_FREEWORK, |