Re: [PATCH] nfsd: set RPC_CLNT_CREATE_NO_IDLE_TIMEOUT on callback client

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks, Timo. A handful of nits below:

> On Feb 21, 2021, at 1:27 PM, Timo Rothenpieler <timo@xxxxxxxxxxxxxxxx> wrote:
> 
> This tackles an issue where the callback client times out from
> inactivity, causing operations like server side copy to never return on
> the client side.
> I was observing that issue frequently on my RDMA connected clients, it
> does not seem to manifest on tcp connected clients.

Indeed, it is curious that the COPY issue does not occur on TCP
connections. You could try using the same tracing technique to
collect some data on TCP to see what is different.


> However, it does not fix the actual issue of the callback channel
> not getting re-established and the client being stuck in the call
> forever. It just makes it a lot less likely to occur, as long as no
> other circumstances cause the callback channel to be disconnected.

Agreed. I'm hoping Olga or Dai will look further into why recovery
is failing in this case (and whether that missing recovery action
is also observed only on RDMA transports!).

Please add a Signed-off-by: tag. See the "Sign your work" section
in Documentation/process/submitting-patches.rst


> ---
> fs/nfsd/nfs4callback.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
> index 052be5bf9ef5..75dacb7878b8 100644
> --- a/fs/nfsd/nfs4callback.c
> +++ b/fs/nfsd/nfs4callback.c
> @@ -897,7 +897,7 @@ static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *c
> 		.timeout	= &timeparms,
> 		.program	= &cb_program,
> 		.version	= 1,
> -		.flags		= (RPC_CLNT_CREATE_NOPING | RPC_CLNT_CREATE_QUIET),
> +		.flags		= (RPC_CLNT_CREATE_NOPING | RPC_CLNT_CREATE_QUIET | RPC_CLNT_CREATE_NO_IDLE_TIMEOUT),

Kernel coding style keeps lines at 80 characters or fewer. Please
find a way to keep the replacement line under 80 characters.


> 		.cred		= current_cred(),
> 	};
> 	struct rpc_clnt *client;
> -- 
> 2.25.1
> 

Once you have received other review comments, you might wish to
submit this patch again. Be sure to update the Subject: line to
say "[PATCH v2]".

--
Chuck Lever







[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux