svn commit: r282363 - stable/9/sys/fs/nfsclient

Alexander Motin mav at FreeBSD.org
Sun May 3 07:18:07 UTC 2015


Author: mav
Date: Sun May  3 07:18:06 2015
New Revision: 282363
URL: https://svnweb.freebsd.org/changeset/base/282363

Log:
  MFC r281738:
  Change wcommitsize default from one empirical value to another.
  
  The new value is more predictable with growing RAM size:
  
          hibufspace maxvnodes      old      new
  i386:
    256MB   32980992     15800  2198732  2097152
      2GB   94027776    107677   878764  4194304
  amd64:
    256MB   32980992     15800  2198732  2097152
      1GB  114114560     68062  1678155  4194304
      4GB  217055232    111807  1955452  4194304
     16GB 1717846016    337308  5097465 16777216
     64GB 1734918144   1164427  1490479 16777216
    256GB 1734918144   4426453   391983 16777216

Modified:
  stable/9/sys/fs/nfsclient/nfs_clvfsops.c
Directory Properties:
  stable/9/   (props changed)
  stable/9/sys/   (props changed)
  stable/9/sys/fs/   (props changed)

Modified: stable/9/sys/fs/nfsclient/nfs_clvfsops.c
==============================================================================
--- stable/9/sys/fs/nfsclient/nfs_clvfsops.c	Sun May  3 07:16:47 2015	(r282362)
+++ stable/9/sys/fs/nfsclient/nfs_clvfsops.c	Sun May  3 07:18:06 2015	(r282363)
@@ -1265,10 +1265,13 @@ mountnfs(struct nfs_args *argp, struct m
 	nmp->nm_timeo = NFS_TIMEO;
 	nmp->nm_retry = NFS_RETRANS;
 	nmp->nm_readahead = NFS_DEFRAHEAD;
-	if (desiredvnodes >= 11000)
-		nmp->nm_wcommitsize = hibufspace / (desiredvnodes / 1000);
-	else
-		nmp->nm_wcommitsize = hibufspace / 10;
+
+	/* This is empirical approximation of sqrt(hibufspace) * 256. */
+	nmp->nm_wcommitsize = NFS_MAXBSIZE / 256;
+	while ((long)nmp->nm_wcommitsize * nmp->nm_wcommitsize < hibufspace)
+		nmp->nm_wcommitsize *= 2;
+	nmp->nm_wcommitsize *= 256;
+
 
 	nfs_decode_args(mp, nmp, argp, hst, cred, td);
 


More information about the svn-src-stable-9 mailing list