freebsd-skq/sys/fs/nfs
Rick Macklem 3f7e14ad93 nfscl: Add hash lists for the NFSv4 opens
A problem was reported via email, where a large (130000+) accumulation
of NFSv4 opens on an NFSv4 mount caused significant lock contention
on the mutex used to protect the client mount's open/lock state.
Although the root cause for the accumulation of opens was not
resolved, it is obvious that the NFSv4 client is not designed to
handle 100000+ opens efficiently.  When searching for an open,
usually for a match by file handle, a linear search of all opens
is done.

This patch adds a table of hash lists for the opens, hashed on
file handle.  This table will be used by future commits to
search for an open based on file handle more efficiently.

MFC after:	2 weeks
2021-05-22 14:53:56 -07:00
..
nfs_commonacl.c nfs: Remove APPLESTATIC macro 2020-05-12 13:23:25 +00:00
nfs_commonkrpc.c nfsd: Reduce the callback timeout to 800msec 2021-05-18 16:17:58 -07:00
nfs_commonport.c Fix diroffdiroff, probably copy/paste bug. 2021-02-28 09:08:31 -05:00
nfs_commonsubs.c nfscl: Add support for va_birthtime to NFSv4 2021-05-07 17:30:56 -07:00
nfs_var.h nfsd: fix the slot sequence# when a callback fails 2021-04-26 16:24:10 -07:00
nfs.h nfsd: Reduce the callback timeout to 800msec 2021-05-18 16:17:58 -07:00
nfscl.h nfsv4 client: do the BindConnectionToSession as required 2021-04-11 14:34:57 -07:00
nfsclstate.h nfscl: Add hash lists for the NFSv4 opens 2021-05-22 14:53:56 -07:00
nfsdport.h Do not copy vp into f_data for DTYPE_VNODE files. 2020-09-15 21:55:21 +00:00
nfskpiport.h Remove vfs_statfs and vnode_mount macros from NFS 2020-06-17 16:20:19 +00:00
nfsm_subs.h fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfsport.h nfsclient: Copy only initialized fields in nfs_getattr() 2021-05-04 08:53:57 -04:00
nfsproto.h nfscl: Add support for va_birthtime to NFSv4 2021-05-07 17:30:56 -07:00
nfsrvcache.h Replace all instances of the typedef mbuf_t with "struct mbuf *". 2020-04-17 21:17:51 +00:00
nfsrvstate.h nfsd: make the server repeat CB_RECALL every couple of seconds 2021-04-04 18:15:54 -07:00
nfsv4_errstr.h Add missing comma in nfsv4_errstr 2020-01-13 21:49:27 +00:00
rpcv2.h fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
xdr_subs.h