mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
SUNRPC: Fix an RPC/RDMA performance regression
Use the standard gfp mask instead of using GFP_NOWAIT. The latter causes issues when under memory pressure. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
32346491dd
commit
4b8dbdfbc5
@ -1340,14 +1340,11 @@ gss_hash_cred(struct auth_cred *acred, unsigned int hashbits)
|
||||
/*
|
||||
* Lookup RPCSEC_GSS cred for the current process
|
||||
*/
|
||||
static struct rpc_cred *
|
||||
gss_lookup_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
|
||||
static struct rpc_cred *gss_lookup_cred(struct rpc_auth *auth,
|
||||
struct auth_cred *acred, int flags)
|
||||
{
|
||||
gfp_t gfp = GFP_KERNEL;
|
||||
|
||||
if (flags & RPCAUTH_LOOKUP_ASYNC)
|
||||
gfp = GFP_NOWAIT | __GFP_NOWARN;
|
||||
return rpcauth_lookup_credcache(auth, acred, flags, gfp);
|
||||
return rpcauth_lookup_credcache(auth, acred, flags,
|
||||
rpc_task_gfp_mask());
|
||||
}
|
||||
|
||||
static struct rpc_cred *
|
||||
|
@ -63,6 +63,7 @@ gfp_t rpc_task_gfp_mask(void)
|
||||
return GFP_KERNEL | __GFP_NORETRY | __GFP_NOWARN;
|
||||
return GFP_KERNEL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rpc_task_gfp_mask);
|
||||
|
||||
unsigned long
|
||||
rpc_task_timeout(const struct rpc_task *task)
|
||||
|
@ -571,11 +571,7 @@ xprt_rdma_allocate(struct rpc_task *task)
|
||||
struct rpc_rqst *rqst = task->tk_rqstp;
|
||||
struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(rqst->rq_xprt);
|
||||
struct rpcrdma_req *req = rpcr_to_rdmar(rqst);
|
||||
gfp_t flags;
|
||||
|
||||
flags = RPCRDMA_DEF_GFP;
|
||||
if (RPC_IS_ASYNC(task))
|
||||
flags = GFP_NOWAIT | __GFP_NOWARN;
|
||||
gfp_t flags = rpc_task_gfp_mask();
|
||||
|
||||
if (!rpcrdma_check_regbuf(r_xprt, req->rl_sendbuf, rqst->rq_callsize,
|
||||
flags))
|
||||
|
Loading…
Reference in New Issue
Block a user