summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2013-08-05 22:02:45 +0000
committermckusick <mckusick@FreeBSD.org>2013-08-05 22:02:45 +0000
commitc3a8e703896854a4f73b2602d7692169a0fbcc57 (patch)
treeaaf06fbacc2a5cc482d9d1dbd9fd94101a8654cc
parentc4523d974e7d3a78a18463ebb86d6103bd28ac26 (diff)
downloadFreeBSD-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.c2
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,
OpenPOWER on IntegriCloud