diff options
author | David Howells <dhowells@redhat.com> | 2018-03-27 18:08:20 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2018-03-27 18:08:20 -0400 |
commit | 1bae5d229532b4e8dfd5728cb3b8373bc9eec9eb (patch) | |
tree | 6295c9cb009170068e7a3217f0c4a5d59504c2dc /include/trace | |
parent | a25e21f0bcd25673b91b97b9805db33350feec0f (diff) |
rxrpc: Trace call completion
Add a tracepoint to track rxrpc calls moving into the completed state and
to log the completion type and the recorded error value and abort code.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/rxrpc.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index 4d2c2d35c5cb..2ea788f6f95d 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h | |||
@@ -400,6 +400,13 @@ enum rxrpc_congest_change { | |||
400 | EM(RXRPC_ACK_IDLE, "IDL") \ | 400 | EM(RXRPC_ACK_IDLE, "IDL") \ |
401 | E_(RXRPC_ACK__INVALID, "-?-") | 401 | E_(RXRPC_ACK__INVALID, "-?-") |
402 | 402 | ||
403 | #define rxrpc_completions \ | ||
404 | EM(RXRPC_CALL_SUCCEEDED, "Succeeded") \ | ||
405 | EM(RXRPC_CALL_REMOTELY_ABORTED, "RemoteAbort") \ | ||
406 | EM(RXRPC_CALL_LOCALLY_ABORTED, "LocalAbort") \ | ||
407 | EM(RXRPC_CALL_LOCAL_ERROR, "LocalError") \ | ||
408 | E_(RXRPC_CALL_NETWORK_ERROR, "NetError") | ||
409 | |||
403 | /* | 410 | /* |
404 | * Export enum symbols via userspace. | 411 | * Export enum symbols via userspace. |
405 | */ | 412 | */ |
@@ -624,6 +631,32 @@ TRACE_EVENT(rxrpc_abort, | |||
624 | __entry->abort_code, __entry->error, __entry->why) | 631 | __entry->abort_code, __entry->error, __entry->why) |
625 | ); | 632 | ); |
626 | 633 | ||
634 | TRACE_EVENT(rxrpc_call_complete, | ||
635 | TP_PROTO(struct rxrpc_call *call), | ||
636 | |||
637 | TP_ARGS(call), | ||
638 | |||
639 | TP_STRUCT__entry( | ||
640 | __field(unsigned int, call ) | ||
641 | __field(enum rxrpc_call_completion, compl ) | ||
642 | __field(int, error ) | ||
643 | __field(u32, abort_code ) | ||
644 | ), | ||
645 | |||
646 | TP_fast_assign( | ||
647 | __entry->call = call->debug_id; | ||
648 | __entry->compl = call->completion; | ||
649 | __entry->error = call->error; | ||
650 | __entry->abort_code = call->abort_code; | ||
651 | ), | ||
652 | |||
653 | TP_printk("c=%08x %s r=%d ac=%d", | ||
654 | __entry->call, | ||
655 | __print_symbolic(__entry->compl, rxrpc_completions), | ||
656 | __entry->error, | ||
657 | __entry->abort_code) | ||
658 | ); | ||
659 | |||
627 | TRACE_EVENT(rxrpc_transmit, | 660 | TRACE_EVENT(rxrpc_transmit, |
628 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_transmit_trace why), | 661 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_transmit_trace why), |
629 | 662 | ||