summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient/nfsmount.h
diff options
context:
space:
mode:
authormohans <mohans@FreeBSD.org>2007-10-12 19:12:21 +0000
committermohans <mohans@FreeBSD.org>2007-10-12 19:12:21 +0000
commit77c0dc0000d99e0fec699a08ebe6226272a2ded5 (patch)
tree0d7de3ddaa35c174d847664040eb069950b8a6c1 /sys/nfsclient/nfsmount.h
parentb3ebdff90d88ca9dd9bcdbdb45b44a3204e701d6 (diff)
downloadFreeBSD-src-77c0dc0000d99e0fec699a08ebe6226272a2ded5.zip
FreeBSD-src-77c0dc0000d99e0fec699a08ebe6226272a2ded5.tar.gz
NFS MP scaling changes.
- Eliminate the hideous nfs_sndlock that serialized NFS/TCP request senders thru the sndlock. - Institute a new nfs_connectlock that serializes NFS/TCP reconnects. Add logic to wait for pending request senders to finish sending before reconnecting. Dial down the sb_timeo for NFS/TCP sockets to 1 sec. - Break out the nfs xid manipulation under a new nfs xid lock, rather than over loading the nfs request lock for this purpose. - Fix some of the locking in nfs_request. Many thanks to Kris Kennaway for his help with this and for initiating the MP scaling analysis and work. Kris also tested this patch thorougly. Approved by: re@ (Ken Smith)
Diffstat (limited to 'sys/nfsclient/nfsmount.h')
-rw-r--r--sys/nfsclient/nfsmount.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/nfsclient/nfsmount.h b/sys/nfsclient/nfsmount.h
index 4fd2afe..8615846 100644
--- a/sys/nfsclient/nfsmount.h
+++ b/sys/nfsclient/nfsmount.h
@@ -40,7 +40,9 @@ struct nfs_tcp_mountstate {
int rpcresid;
#define NFS_TCP_EXPECT_RPCMARKER 0x0001 /* Expect to see a RPC/TCP marker next */
#define NFS_TCP_FORCE_RECONNECT 0x0002 /* Force a TCP reconnect */
+#define NFS_TCP_WAIT_WRITE_DRAIN 0x0004 /* Waiting for socket writers to finish */
int flags;
+ int sock_send_inprog;
};
/*
OpenPOWER on IntegriCloud