mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
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 <[email protected]>
This commit is contained in:
parent
b54a134a7d
commit
b1d9f7fde0
3 changed files with 95 additions and 6 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue