mirror of https://gitee.com/openkylin/linux.git
NFSv4.1: Add a module parameter to set the number of session slots
Add the module parameter 'max_session_slots' to set the initial number of slots that the NFSv4.1 client will attempt to negotiate with the server. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
45d43c291e
commit
ef159e9177
|
@ -1657,6 +1657,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
of returning the full 64-bit number.
|
||||
The default is to return 64-bit inode numbers.
|
||||
|
||||
nfs.max_session_slots=
|
||||
[NFSv4.1] Sets the maximum number of session slots
|
||||
the client will attempt to negotiate with the server.
|
||||
This limits the number of simultaneous RPC requests
|
||||
that the client can send to the NFSv4.1 server.
|
||||
Note that there is little point in setting this
|
||||
value higher than the max_tcp_slot_table_limit.
|
||||
|
||||
nfs.nfs4_disable_idmapping=
|
||||
[NFSv4] When set to the default of '1', this option
|
||||
ensures that both the RPC level authentication
|
||||
|
|
|
@ -72,6 +72,8 @@
|
|||
|
||||
#define NFS4_MAX_LOOP_ON_RECOVER (10)
|
||||
|
||||
static unsigned short max_session_slots = NFS4_DEF_SLOT_TABLE_SIZE;
|
||||
|
||||
struct nfs4_opendata;
|
||||
static int _nfs4_proc_open(struct nfs4_opendata *data);
|
||||
static int _nfs4_recover_proc_open(struct nfs4_opendata *data);
|
||||
|
@ -5245,7 +5247,7 @@ static void nfs4_init_channel_attrs(struct nfs41_create_session_args *args)
|
|||
args->fc_attrs.max_rqst_sz = mxrqst_sz;
|
||||
args->fc_attrs.max_resp_sz = mxresp_sz;
|
||||
args->fc_attrs.max_ops = NFS4_MAX_OPS;
|
||||
args->fc_attrs.max_reqs = session->clp->cl_rpcclient->cl_xprt->max_reqs;
|
||||
args->fc_attrs.max_reqs = max_session_slots;
|
||||
|
||||
dprintk("%s: Fore Channel : max_rqst_sz=%u max_resp_sz=%u "
|
||||
"max_ops=%u max_reqs=%u\n",
|
||||
|
@ -6390,6 +6392,10 @@ const struct xattr_handler *nfs4_xattr_handlers[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
module_param(max_session_slots, ushort, 0644);
|
||||
MODULE_PARM_DESC(max_session_slots, "Maximum number of outstanding NFSv4.1 "
|
||||
"requests the client will negotiate");
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
|
|
|
@ -190,13 +190,14 @@ struct nfs_server {
|
|||
|
||||
|
||||
/* maximum number of slots to use */
|
||||
#define NFS4_MAX_SLOT_TABLE (128U)
|
||||
#define NFS4_DEF_SLOT_TABLE_SIZE (16U)
|
||||
#define NFS4_MAX_SLOT_TABLE (256U)
|
||||
#define NFS4_NO_SLOT ((u32)-1)
|
||||
|
||||
#if defined(CONFIG_NFS_V4)
|
||||
|
||||
/* Sessions */
|
||||
#define SLOT_TABLE_SZ (NFS4_MAX_SLOT_TABLE/(8*sizeof(long)))
|
||||
#define SLOT_TABLE_SZ DIV_ROUND_UP(NFS4_MAX_SLOT_TABLE, 8*sizeof(long))
|
||||
struct nfs4_slot_table {
|
||||
struct nfs4_slot *slots; /* seqid per slot */
|
||||
unsigned long used_slots[SLOT_TABLE_SZ]; /* used/unused bitmap */
|
||||
|
|
Loading…
Reference in New Issue