aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndy Adamson <andros@netapp.com>2009-08-28 08:45:01 -0400
committerJ. Bruce Fields <bfields@citi.umich.edu>2009-09-01 22:24:05 -0400
commita649637c73a36174287a403cdda7607177d64523 (patch)
tree8aec8e30b2f4cceaee9fa5ddaa88e694ea3e09dd /include
parenta06b1261bdb580b35967d0e055d1ab131b332254 (diff)
nfsd41: bound forechannel drc size by memory usage
By using the requested ca_maxresponsesize_cached * ca_maxresponses to bound a forechannel drc request size, clients can tailor a session to usage. For example, an I/O session (READ/WRITE only) can have a much smaller ca_maxresponsesize_cached (for only WRITE compound responses) and a lot larger ca_maxresponses to service a large in-flight data window. Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'include')
-rw-r--r--include/linux/nfsd/state.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h
index fb0c404c7c5c..ff0b771efde6 100644
--- a/include/linux/nfsd/state.h
+++ b/include/linux/nfsd/state.h
@@ -92,13 +92,17 @@ struct nfs4_cb_conn {
92 struct rpc_cred * cb_cred; 92 struct rpc_cred * cb_cred;
93}; 93};
94 94
95/* Maximum number of slots per session. 128 is useful for long haul TCP */ 95/* Maximum number of slots per session. 160 is useful for long haul TCP */
96#define NFSD_MAX_SLOTS_PER_SESSION 128 96#define NFSD_MAX_SLOTS_PER_SESSION 160
97/* Maximum number of pages per slot cache entry */ 97/* Maximum number of pages per slot cache entry */
98#define NFSD_PAGES_PER_SLOT 1 98#define NFSD_PAGES_PER_SLOT 1
99#define NFSD_SLOT_CACHE_SIZE PAGE_SIZE 99#define NFSD_SLOT_CACHE_SIZE PAGE_SIZE
100/* Maximum number of operations per session compound */ 100/* Maximum number of operations per session compound */
101#define NFSD_MAX_OPS_PER_COMPOUND 16 101#define NFSD_MAX_OPS_PER_COMPOUND 16
102/* Maximum number of NFSD_SLOT_CACHE_SIZE slots per session */
103#define NFSD_CACHE_SIZE_SLOTS_PER_SESSION 32
104#define NFSD_MAX_MEM_PER_SESSION \
105 (NFSD_CACHE_SIZE_SLOTS_PER_SESSION * NFSD_SLOT_CACHE_SIZE)
102 106
103struct nfsd4_cache_entry { 107struct nfsd4_cache_entry {
104 __be32 ce_status; 108 __be32 ce_status;