Add a tracepoint (rxrpc_rx_abort) to record received aborts.
Unified · Split
| @@ -683,6 +683,30 @@ TRACE_EVENT(rxrpc_rx_ack, · 682 unmodified lines | |||
| 683 | __entry->n_acks) | 683 | __entry->n_acks) |
| 684 | ); | 684 | ); |
| 685 | 685 | ||
| 686 | TRACE_EVENT(rxrpc_rx_abort, | ||
| 687 | TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t serial, | ||
| 688 | u32 abort_code), | ||
| 689 | |||
| 690 | TP_ARGS(call, serial, abort_code), | ||
| 691 | |||
| 692 | TP_STRUCT__entry( | ||
| 693 | __field(struct rxrpc_call *, call ) | ||
| 694 | __field(rxrpc_serial_t, serial ) | ||
| 695 | __field(u32, abort_code ) | ||
| 696 | ), | ||
| 697 | |||
| 698 | TP_fast_assign( | ||
| 699 | __entry->call = call; | ||
| 700 | __entry->serial = serial; | ||
| 701 | __entry->abort_code = abort_code; | ||
| 702 | ), | ||
| 703 | |||
| 704 | TP_printk("c=%p ABORT %08x ac=%d", | ||
| 705 | __entry->call, | ||
| 706 | __entry->serial, | ||
| 707 | __entry->abort_code) | ||
| 708 | ); | ||
| 709 | |||
| 686 | TRACE_EVENT(rxrpc_tx_data, | 710 | TRACE_EVENT(rxrpc_tx_data, |
| 687 | TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, | 711 | TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, |
| 688 | rxrpc_serial_t serial, u8 flags, bool retrans, bool lose), | 712 | rxrpc_serial_t serial, u8 flags, bool retrans, bool lose), |
| @@ -877,7 +877,7 @@ static void rxrpc_input_ackall(struct rxrpc_call *call, struct sk_buff *skb) · 876 unmodified lines | |||
| 877 | } | 877 | } |
| 878 | 878 | ||
| 879 | /* | 879 | /* |
| 880 | * Process an ABORT packet. | 880 | * Process an ABORT packet directed at a call. |
| 881 | */ | 881 | */ |
| 882 | static void rxrpc_input_abort(struct rxrpc_call *call, struct sk_buff *skb) | 882 | static void rxrpc_input_abort(struct rxrpc_call *call, struct sk_buff *skb) |
| 883 | { | 883 | { |
| @@ -892,6 +892,8 @@ static void rxrpc_input_abort(struct rxrpc_call *call, struct sk_buff *skb) · 8 unmodified lines | |||
| 892 | &wtmp, sizeof(wtmp)) >= 0) | 892 | &wtmp, sizeof(wtmp)) >= 0) |
| 893 | abort_code = ntohl(wtmp); | 893 | abort_code = ntohl(wtmp); |
| 894 | 894 | ||
| 895 | trace_rxrpc_rx_abort(call, sp->hdr.serial, abort_code); | ||
| 896 | |||
| 895 | _proto("Rx ABORT %%%u { %x }", sp->hdr.serial, abort_code); | 897 | _proto("Rx ABORT %%%u { %x }", sp->hdr.serial, abort_code); |
| 896 | 898 | ||
| 897 | if (rxrpc_set_call_completion(call, RXRPC_CALL_REMOTELY_ABORTED, | 899 | if (rxrpc_set_call_completion(call, RXRPC_CALL_REMOTELY_ABORTED, |