freebsd-skq/sys/fs
Rick Macklem 93c5875b24 Fix several performance related issues in the new NFS server's
DRC for NFS over TCP.
- Increase the size of the hash tables.
- Create a separate mutex for each hash list of the TCP hash table.
- Single thread the code that deletes stale cache entries.
- Add a tunable called vfs.nfsd.tcphighwater, which can be increased
  to allow the cache to grow larger, avoiding the overhead of frequent
  scans to delete stale cache entries.
  (The default value will result in frequent scans to delete stale cache
   entries, analagous to what the pre-patched code does.)
- Add a tunable called vfs.nfsd.cachetcp that can be used to disable
  DRC caching for NFS over TCP, since the old NFS server didn't DRC cache TCP.
It also adjusts the size of nfsrc_floodlevel dynamically, so that it is
always greater than vfs.nfsd.tcphighwater.

For UDP the algorithm remains the same as the pre-patched code, but the
tunable vfs.nfsd.udphighwater can be used to allow the cache to grow
larger and reduce the overhead caused by frequent scans for stale entries.
UDP also uses a larger hash table size than the pre-patched code.

Reported by:	wollman
Tested by:	wollman (earlier version of patch)
Submitted by:	ivoras (earlier patch)
Reviewed by:	jhb (earlier version of patch)
MFC after:	1 month
2013-08-14 21:11:26 +00:00
..
cd9660 - Add const-qualifiers to the arguments of isonum_*(). 2013-07-28 12:29:10 +00:00
deadfs The deadfs VOPs for vop_ioctl and vop_bmap call itself recursively, 2012-09-13 13:05:45 +00:00
devfs make path matching in devfs rules consistent and sane (and safer) 2013-07-26 14:25:58 +00:00
ext2fs ext2fs: update format specifiers for ext4 type. 2013-08-14 14:22:46 +00:00
fdescfs Fix several typos 2013-05-12 16:43:26 +00:00
fifofs I am comparing current pipe code with the one in 8.3-STABLE r236165, 2012-07-31 05:48:35 +00:00
fuse The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
msdosfs The fsync(2) call should sync the vnode in such way that even after 2013-05-02 20:00:11 +00:00
nandfs - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
nfs Fix several performance related issues in the new NFS server's 2013-08-14 21:11:26 +00:00
nfsclient Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
nfsserver Fix several performance related issues in the new NFS server's 2013-08-14 21:11:26 +00:00
nullfs The tvp vnode on rename is usually unlinked. Drop the cached null 2013-07-04 19:01:18 +00:00
procfs Relax the vm object locking. Use a read lock. 2013-06-05 17:00:10 +00:00
pseudofs Complete MPSAFE VFS interface and remove MNTK_MPSAFE flag. 2012-11-09 18:02:25 +00:00
smbfs - Fix double frees/user after free. 2013-07-03 10:31:45 +00:00
tmpfs The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
udf Add currently unused flag argument to the cluster_read(), 2013-03-14 20:28:26 +00:00
unionfs r16312 is not any longer real since many years (likely since when VFS 2012-11-19 22:43:45 +00:00