freebsd-dev/sys/fs/nfsclient
Rick Macklem ad6dc36520 nfscl: Use vfs.nfs.maxalloclen to limit Deallocate RPC RTT
Unlike Copy, the NFSv4.2 Allocate and Deallocate operations do not
allow a reply with partial completion.  As such, the only way to
limit the time the operation takes to provide a reasonable RPC RTT
is to limit the size of the allocation/deallocation in the NFSv4.2
client.

This patch uses the sysctl vfs.nfs.maxalloclen to set
the limit on the size of the Deallocate operation.
There is no way to know how long a server will take to do an
deallocate operation, but 64Mbytes results in a reasonable
RPC RTT for the slow hardware I test on.

For an 8Gbyte deallocation, the elapsed time for doing it in 64Mbyte
chunks was the same (within margin of variability) as the
elapsed time taken for a single large deallocation
operation for a FreeBSD server with a UFS file system.
2021-09-18 14:38:43 -07:00
..
nfs_clbio.c buffer pager: allow get_blksize method to return error 2021-09-17 20:29:55 +03:00
nfs_clcomsubs.c nfscl: Add support for va_birthtime to NFSv4 2021-05-07 17:30:56 -07:00
nfs_clkdtrace.c fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfs_clkrpc.c fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfs_clnfsiod.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
nfs_clnode.c nfscl: Cache an open stateid for the "oneopenown" mount option 2021-07-28 15:48:27 -07:00
nfs_clport.c nfssvc: Zero the buffer copied out when NFSSVC_DUMPMNTOPTS is set 2021-07-15 22:41:10 -04:00
nfs_clrpcops.c nfscl: Make vfs.nfs.maxcopyrange larger by default 2021-09-11 15:36:32 -07:00
nfs_clstate.c nfscl: Add a Lookup+Open RPC for NFSv4.1/4.2 2021-08-11 18:49:26 -07:00
nfs_clsubs.c nfsclient: add nfs node locking around uses of n_direofoffset 2021-02-28 14:53:54 -08:00
nfs_clvfsops.c nfsclient: Avoid copying uninitialized bytes into statfs 2021-07-15 12:18:17 -04:00
nfs_clvnops.c nfscl: Use vfs.nfs.maxalloclen to limit Deallocate RPC RTT 2021-09-18 14:38:43 -07:00
nfs_kdtrace.h fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfs.h
nfsmount.h nfscl: Add a VOP_DEALLOCATE() for the NFSv4.2 client 2021-08-27 18:31:36 -07:00
nfsnode.h nfscl: Cache an open stateid for the "oneopenown" mount option 2021-07-28 15:48:27 -07:00
nlminfo.h