Do not generate 1000 unique lock names for nfsrc hash chain locks.

It overflows witness.

Shorten the names of some nfs mutexes.

Reported and tested by:	pho
No objections from:	rmacklem, mav
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
This commit is contained in:
Konstantin Belousov 2014-07-31 19:24:44 +00:00
parent 46b315b29a
commit e7375b6fa5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=269347
2 changed files with 8 additions and 16 deletions

View File

@ -116,7 +116,6 @@ LIST_HEAD(nfsrvhashhead, nfsrvcache);
/* The fine-grained locked cache hash table for TCP. */
struct nfsrchash_bucket {
struct mtx mtx;
char lock_name[16];
struct nfsrvhashhead tbl;
};

View File

@ -3321,23 +3321,16 @@ nfsd_modevent(module_t mod, int type, void *data)
goto out;
newnfs_portinit();
for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) {
snprintf(nfsrchash_table[i].lock_name,
sizeof(nfsrchash_table[i].lock_name), "nfsrc_tcp%d",
i);
mtx_init(&nfsrchash_table[i].mtx,
nfsrchash_table[i].lock_name, NULL, MTX_DEF);
snprintf(nfsrcahash_table[i].lock_name,
sizeof(nfsrcahash_table[i].lock_name), "nfsrc_tcpa%d",
i);
mtx_init(&nfsrcahash_table[i].mtx,
nfsrcahash_table[i].lock_name, NULL, MTX_DEF);
mtx_init(&nfsrchash_table[i].mtx, "nfsrtc", NULL,
MTX_DEF);
mtx_init(&nfsrcahash_table[i].mtx, "nfsrtca", NULL,
MTX_DEF);
}
mtx_init(&nfsrc_udpmtx, "nfs_udpcache_mutex", NULL, MTX_DEF);
mtx_init(&nfs_v4root_mutex, "nfs_v4root_mutex", NULL, MTX_DEF);
mtx_init(&nfsv4root_mnt.mnt_mtx, "struct mount mtx", NULL,
MTX_DEF);
mtx_init(&nfsrc_udpmtx, "nfsuc", NULL, MTX_DEF);
mtx_init(&nfs_v4root_mutex, "nfs4rt", NULL, MTX_DEF);
mtx_init(&nfsv4root_mnt.mnt_mtx, "nfs4mnt", NULL, MTX_DEF);
for (i = 0; i < NFSSESSIONHASHSIZE; i++)
mtx_init(&nfssessionhash[i].mtx, "nfs_session_mutex",
mtx_init(&nfssessionhash[i].mtx, "nfssm",
NULL, MTX_DEF);
lockinit(&nfsv4root_mnt.mnt_explock, PVFS, "explock", 0, 0);
nfsrvd_initcache();