rxrpc: Add some more tracing
Add the following extra tracing information: (1) Modify the rxrpc_transmit tracepoint to record the Tx window size as this is varied by the slow-start algorithm. (2) Modify the rxrpc_rx_ack tracepoint to record more information from received ACK packets. (3) Add an rxrpc_rx_data tracepoint to record the information in DATA packets. (4) Add an rxrpc_disconnect_call tracepoint to record call disconnection, including the reason the call was disconnected. (5) Add an rxrpc_improper_term tracepoint to record implicit termination of a call by a client either by starting a new call on a particular connection channel without first transmitting the final ACK for the previous call. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
@@ -173,6 +173,7 @@ void __rxrpc_disconnect_call(struct rxrpc_connection *conn,
|
||||
/* Save the result of the call so that we can repeat it if necessary
|
||||
* through the channel, whilst disposing of the actual call record.
|
||||
*/
|
||||
trace_rxrpc_disconnect_call(call);
|
||||
chan->last_service_id = call->service_id;
|
||||
if (call->abort_code) {
|
||||
chan->last_abort = call->abort_code;
|
||||
|
@@ -481,6 +481,7 @@ next_subpacket:
|
||||
return rxrpc_proto_abort("LSA", call, seq);
|
||||
}
|
||||
|
||||
trace_rxrpc_rx_data(call, seq, serial, flags, annotation);
|
||||
if (before_eq(seq, hard_ack)) {
|
||||
ack = RXRPC_ACK_DUPLICATE;
|
||||
ack_serial = serial;
|
||||
@@ -765,7 +766,9 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
summary.ack_reason = (buf.ack.reason < RXRPC_ACK__INVALID ?
|
||||
buf.ack.reason : RXRPC_ACK__INVALID);
|
||||
|
||||
trace_rxrpc_rx_ack(call, first_soft_ack, summary.ack_reason, nr_acks);
|
||||
trace_rxrpc_rx_ack(call, sp->hdr.serial, acked_serial,
|
||||
first_soft_ack, ntohl(buf.ack.previousPacket),
|
||||
summary.ack_reason, nr_acks);
|
||||
|
||||
if (buf.ack.reason == RXRPC_ACK_PING_RESPONSE)
|
||||
rxrpc_input_ping_response(call, skb->tstamp, acked_serial,
|
||||
@@ -951,6 +954,7 @@ static void rxrpc_input_implicit_end_call(struct rxrpc_connection *conn,
|
||||
break;
|
||||
}
|
||||
|
||||
trace_rxrpc_improper_term(call);
|
||||
__rxrpc_disconnect_call(conn, call);
|
||||
rxrpc_notify_socket(call);
|
||||
}
|
||||
|
Reference in New Issue
Block a user