This is a set of patches I've been toying with to get better responsiveness from a client when a transport remains connected but the server is not returning RPC replies. The approach I've taken is to disable RPC_TASK_NO_RETRANS_TIMEOUT for a few particular operations to enable them to time out even though the connection is still operational. It could be appropriate to take this approach for any idempotent operation that cannot be killed with a ^C. Changes since RFC: - Dropped changes to async lease renewal and DESTROY_SESSION|CLIENTID - Cleaned up some tracepoint issues I found along the way --- Chuck Lever (6): SUNRPC: Refactor rpc_ping() SUNRPC: Unset RPC_TASK_NO_RETRANS_TIMEOUT for NULL RPCs SUNRPC: Remove unneeded TRACE_DEFINE_ENUMs SUNRPC: Update trace flags SUNRPC: xprt_retransmit() displays the the NULL procedure incorrectly SUNRPC: Record timeout value in xprt_retransmit tracepoint include/trace/events/sunrpc.h | 51 ++++++++--------------------------- net/sunrpc/clnt.c | 33 ++++++++++++++++------- 2 files changed, 35 insertions(+), 49 deletions(-) -- Chuck Lever