aboutsummaryrefslogtreecommitdiff
path: root/sys/nfsserver/nfsrvstats.h
diff options
context:
space:
mode:
authorDoug Rabson <dfr@FreeBSD.org>1996-11-06 10:53:16 +0000
committerDoug Rabson <dfr@FreeBSD.org>1996-11-06 10:53:16 +0000
commitf438ae02f5bfa5a0614fcee77ea16bedf78f508f (patch)
treeb99fa8ba7a7ef13dafb400913ede1cef59f59743 /sys/nfsserver/nfsrvstats.h
parentd3cf2d5d31ce6c15b140d5d9a8daa5ffe89f208a (diff)
downloadsrc-f438ae02f5bfa5a0614fcee77ea16bedf78f508f.tar.gz
src-f438ae02f5bfa5a0614fcee77ea16bedf78f508f.zip
Improve the queuing algorithms used by NFS' asynchronous i/o. The
existing mechanism uses a global queue for some buffers and the vp->b_dirtyblkhd queue for others. This turns sequential writes into randomly ordered writes to the server, affecting both read and write performance. The existing mechanism also copes badly with hung servers, tending to block accesses to other servers when all the iods are waiting for a hung server. The new mechanism uses a queue for each mount point. All asynchronous i/o goes through this queue which preserves the ordering of requests. A simple mechanism ensures that the iods are shared out fairly between active mount points. This removes the sysctl variable vfs.nfs.dwrite since the new queueing mechanism removes the old delayed write code completely. This should go into the 2.2 branch.
Notes
Notes: svn path=/head/; revision=19449
Diffstat (limited to 'sys/nfsserver/nfsrvstats.h')
-rw-r--r--sys/nfsserver/nfsrvstats.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/nfsserver/nfsrvstats.h b/sys/nfsserver/nfsrvstats.h
index 3d9d801740d6..bc2edeb12ac5 100644
--- a/sys/nfsserver/nfsrvstats.h
+++ b/sys/nfsserver/nfsrvstats.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs.h 8.1 (Berkeley) 6/10/93
- * $Id: nfs.h,v 1.17 1996/01/30 22:59:39 mpp Exp $
+ * $Id: nfs.h,v 1.18 1996/08/21 21:55:44 dyson Exp $
*/
#ifndef _NFS_NFS_H_
@@ -335,7 +335,7 @@ extern TAILQ_HEAD(nfs_reqq, nfsreq) nfs_reqq;
#define NWDELAYHASH(sock, f) \
(&(sock)->ns_wdelayhashtbl[(*((u_long *)(f))) % NFS_WDELAYHASHSIZ])
#ifndef NFS_MUIDHASHSIZ
-#define NFS_MUIDHASHSIZ 67 /* Tune the size of nfsmount with this */
+#define NFS_MUIDHASHSIZ 63 /* Tune the size of nfsmount with this */
#endif
#define NMUIDHASH(nmp, uid) \
(&(nmp)->nm_uidhashtbl[(uid) % NFS_MUIDHASHSIZ])