Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 827efed6 authored by David Howells's avatar David Howells
Browse files

rxrpc: Trace resend



Add a tracepoint to trace packet resend events and to dump the Tx
annotation buffer for added illumination.

Signed-off-by: default avatarDavid Howells <dhowells@rdhat.com>
parent 5d22d47b
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -420,6 +420,7 @@ rxrpc_rtt_rx_traces;
rxrpc_timer_traces;
rxrpc_propose_ack_traces;
rxrpc_propose_ack_outcomes;
rxrpc_congest_modes;
rxrpc_congest_changes;

/*
@@ -1229,6 +1230,29 @@ TRACE_EVENT(rxrpc_connect_call,
		      __entry->call_id)
	    );

TRACE_EVENT(rxrpc_resend,
	    TP_PROTO(struct rxrpc_call *call, int ix),

	    TP_ARGS(call, ix),

	    TP_STRUCT__entry(
		    __field(struct rxrpc_call *,	call		)
		    __field(int,			ix		)
		    __array(u8,				anno, 64	)
			     ),

	    TP_fast_assign(
		    __entry->call = call;
		    __entry->ix = ix;
		    memcpy(__entry->anno, call->rxtx_annotations, 64);
			   ),

	    TP_printk("c=%p ix=%u a=%64phN",
		      __entry->call,
		      __entry->ix,
		      __entry->anno)
	    );

#endif /* _TRACE_RXRPC_H */

/* This part must be outside protection */
+1 −0
Original line number Diff line number Diff line
@@ -195,6 +195,7 @@ static void rxrpc_resend(struct rxrpc_call *call, unsigned long now_j)
	 * the packets in the Tx buffer we're going to resend and what the new
	 * resend timeout will be.
	 */
	trace_rxrpc_resend(call, (cursor + 1) & RXRPC_RXTX_BUFF_MASK);
	oldest = now;
	for (seq = cursor + 1; before_eq(seq, top); seq++) {
		ix = seq & RXRPC_RXTX_BUFF_MASK;