rxrpc: Trace socket notification

Trace notifications from the softirq side of the socket to the
process-context side.

Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
David Howells 2018-07-23 17:18:37 +01:00
parent 197445aff1
commit 4272d3034e
2 changed files with 23 additions and 1 deletions

View File

@ -1528,6 +1528,26 @@ TRACE_EVENT(rxrpc_call_reset,
__entry->tx_seq, __entry->rx_seq)
);
TRACE_EVENT(rxrpc_notify_socket,
TP_PROTO(unsigned int debug_id, rxrpc_serial_t serial),
TP_ARGS(debug_id, serial),
TP_STRUCT__entry(
__field(unsigned int, debug_id )
__field(rxrpc_serial_t, serial )
),
TP_fast_assign(
__entry->debug_id = debug_id;
__entry->serial = serial;
),
TP_printk("c=%08x r=%08x",
__entry->debug_id,
__entry->serial)
);
#endif /* _TRACE_RXRPC_H */
/* This part must be outside protection */

View File

@ -597,8 +597,10 @@ static void rxrpc_input_data(struct rxrpc_call *call, struct sk_buff *skb,
false, true,
rxrpc_propose_ack_input_data);
if (sp->hdr.seq == READ_ONCE(call->rx_hard_ack) + 1)
if (sp->hdr.seq == READ_ONCE(call->rx_hard_ack) + 1) {
trace_rxrpc_notify_socket(call->debug_id, serial);
rxrpc_notify_socket(call);
}
_leave(" [queued]");
}