mbox series

[v2,0/6] Ensure RPC_TASK_NORTO is disabled for select operations

Message ID 162670594361.468132.16222376053830760696.stgit@manet.1015granger.net (mailing list archive)
Headers show
Series Ensure RPC_TASK_NORTO is disabled for select operations | expand

Message

Chuck Lever July 19, 2021, 2:47 p.m. UTC
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

Comments

Schumaker, Anna Aug. 9, 2021, 8:37 p.m. UTC | #1
Hi Chuck,

On Mon, Jul 19, 2021 at 10:55 AM Chuck Lever <chuck.lever@oracle.com> wrote:
>
> 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

Is this the latest version of these patches? If so I can include them
in my linux-next branch for 5.14.

Thanks,
Anna

>
> ---
>
> 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
>
Chuck Lever Aug. 9, 2021, 8:38 p.m. UTC | #2
> On Aug 9, 2021, at 4:37 PM, Anna Schumaker <anna.schumaker@netapp.com> wrote:
> 
> Hi Chuck,
> 
> On Mon, Jul 19, 2021 at 10:55 AM Chuck Lever <chuck.lever@oracle.com> wrote:
>> 
>> 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
> 
> Is this the latest version of these patches? If so I can include them
> in my linux-next branch for 5.14.

AFAIR v2 is the latest, yes. Thanks!


> Thanks,
> Anna
> 
>> 
>> ---
>> 
>> 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

--
Chuck Lever
Schumaker, Anna Aug. 10, 2021, 1:59 p.m. UTC | #3
On Mon, Aug 9, 2021 at 7:00 PM Chuck Lever III <chuck.lever@oracle.com> wrote:
>
>
>
> > On Aug 9, 2021, at 4:37 PM, Anna Schumaker <anna.schumaker@netapp.com> wrote:
> >
> > Hi Chuck,
> >
> > On Mon, Jul 19, 2021 at 10:55 AM Chuck Lever <chuck.lever@oracle.com> wrote:
> >>
> >> 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
> >
> > Is this the latest version of these patches? If so I can include them
> > in my linux-next branch for 5.14.
>
> AFAIR v2 is the latest, yes. Thanks!

Great, I have them applied!

Anna
>
>
> > Thanks,
> > Anna
> >
> >>
> >> ---
> >>
> >> 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
>
> --
> Chuck Lever
>
>
>