svn commit: r269347 - in head/sys/fs: nfs nfsserver

Konstantin Belousov kib at FreeBSD.org
Thu Jul 31 19:24:45 UTC 2014


Author: kib
Date: Thu Jul 31 19:24:44 2014
New Revision: 269347
URL: http://svnweb.freebsd.org/changeset/base/269347

Log:
  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

Modified:
  head/sys/fs/nfs/nfsrvcache.h
  head/sys/fs/nfsserver/nfs_nfsdport.c

Modified: head/sys/fs/nfs/nfsrvcache.h
==============================================================================
--- head/sys/fs/nfs/nfsrvcache.h	Thu Jul 31 18:54:40 2014	(r269346)
+++ head/sys/fs/nfs/nfsrvcache.h	Thu Jul 31 19:24:44 2014	(r269347)
@@ -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;
 };
 

Modified: head/sys/fs/nfsserver/nfs_nfsdport.c
==============================================================================
--- head/sys/fs/nfsserver/nfs_nfsdport.c	Thu Jul 31 18:54:40 2014	(r269346)
+++ head/sys/fs/nfsserver/nfs_nfsdport.c	Thu Jul 31 19:24:44 2014	(r269347)
@@ -3321,23 +3321,16 @@ nfsd_modevent(module_t mod, int type, vo
 			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();


More information about the svn-src-head mailing list