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