linux/include/trace
Jeff Layton 18c64378ad sunrpc: add info about xprt queue times to svc_xprt_dequeue tracepoint
I've been looking at a problem where we see increased RPC timeouts in
clients when the nfs_layout_flexfiles dataserver_timeo value is tuned
very low (6s). This is necessary to ensure quick failover to a different
mirror if a server goes down, but it causes a lot more major RPC timeouts.

Ultimately, the problem is server-side however. It's sometimes doesn't
respond to connection attempts. My theory is that the interrupt handler
runs when a connection comes in, the xprt ends up being enqueued, but it
takes a significant amount of time for the nfsd thread to pick it up.

Currently, the svc_xprt_dequeue tracepoint displays "wakeup-us". This is
the time between the wake_up() call, and the thread dequeueing the xprt.
If no thread was woken, or the thread ended up picking up a different
xprt than intended, then this value won't tell us how long the xprt was
waiting.

Add a new xpt_qtime field to struct svc_xprt and set it in
svc_xprt_enqueue(). When the dequeue tracepoint fires, also store the
time that the xprt sat on the queue in total. Display it as "qtime-us".

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
History 2025-05-11 19:48:26 -04:00
..
events sunrpc: add info about xprt queue times to svc_xprt_dequeue tracepoint 2025-05-11 19:48:26 -04:00
misc NFS: trace: show TIMEDOUT instead of 0x6e 2024-09-01 10:04:55 -04:00
stages tracing: Add __print_dynamic_array() helper 2024-10-30 17:24:32 +01:00
bpf_probe.h tracing/bpf: Add might_fault check to syscall probes 2024-10-09 17:09:46 -04:00
define_custom_trace.h tracing: Add TRACE_CUSTOM_EVENT() macro 2022-03-11 11:49:24 -05:00
define_trace.h tracing: Fix DECLARE_TRACE_CONDITION 2025-03-04 12:11:08 -05:00
perf.h tracing/perf: Add might_fault check to syscall probes 2024-10-09 17:09:46 -04:00
syscall.h tracepoints: Migrate to use SYSCALL_WORK flag 2020-11-16 21:53:15 +01:00
trace_custom_events.h tracing: Rename the staging files for trace_events 2022-04-02 08:40:04 -04:00
trace_events.h tracing/ftrace: Add might_fault check to syscall probes 2024-10-09 17:09:36 -04:00