aboutsummaryrefslogtreecommitdiff
path: root/sys/ufs
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2013-08-05 22:02:45 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2013-08-05 22:02:45 +0000
commit8cf85cf292d0cff0c0065547123d8bc0c7fa01cf (patch)
treeaaf06fbacc2a5cc482d9d1dbd9fd94101a8654cc /sys/ufs
parent57591d8e78cb784821502c861d1d83c9ddc31f34 (diff)
downloadsrc-8cf85cf292d0cff0c0065547123d8bc0c7fa01cf.tar.gz
src-8cf85cf292d0cff0c0065547123d8bc0c7fa01cf.zip
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
Notes
Notes: svn path=/head/; revision=253974
Diffstat (limited to 'sys/ufs')
-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 640151bf7a58..9662ab30ac6a 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,