1 /* SPDX-License-Identifier: GPL-2.0-or-later * << 2 /* AF_RXRPC tracepoints 1 /* AF_RXRPC tracepoints 3 * 2 * 4 * Copyright (C) 2016 Red Hat, Inc. All Rights 3 * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved. 5 * Written by David Howells (dhowells@redhat.c 4 * Written by David Howells (dhowells@redhat.com) >> 5 * >> 6 * This program is free software; you can redistribute it and/or >> 7 * modify it under the terms of the GNU General Public Licence >> 8 * as published by the Free Software Foundation; either version >> 9 * 2 of the Licence, or (at your option) any later version. 6 */ 10 */ 7 #undef TRACE_SYSTEM 11 #undef TRACE_SYSTEM 8 #define TRACE_SYSTEM rxrpc 12 #define TRACE_SYSTEM rxrpc 9 13 10 #if !defined(_TRACE_RXRPC_H) || defined(TRACE_ 14 #if !defined(_TRACE_RXRPC_H) || defined(TRACE_HEADER_MULTI_READ) 11 #define _TRACE_RXRPC_H 15 #define _TRACE_RXRPC_H 12 16 13 #include <linux/tracepoint.h> 17 #include <linux/tracepoint.h> 14 #include <linux/errqueue.h> << 15 18 16 /* 19 /* 17 * Declare tracing information enums and their !! 20 * Define enums for tracing information. >> 21 * >> 22 * These should all be kept sorted, making it easier to match the string >> 23 * mapping tables further on. 18 */ 24 */ 19 #define rxrpc_abort_reasons \ !! 25 #ifndef __RXRPC_DECLARE_TRACE_ENUMS_ONCE_ONLY 20 /* AFS errors */ !! 26 #define __RXRPC_DECLARE_TRACE_ENUMS_ONCE_ONLY 21 EM(afs_abort_general_error, !! 27 22 EM(afs_abort_interrupted, !! 28 enum rxrpc_skb_trace { 23 EM(afs_abort_oom, !! 29 rxrpc_skb_rx_cleaned, 24 EM(afs_abort_op_not_supported, !! 30 rxrpc_skb_rx_freed, 25 EM(afs_abort_probeuuid_negative, !! 31 rxrpc_skb_rx_got, 26 EM(afs_abort_send_data_error, !! 32 rxrpc_skb_rx_lost, 27 EM(afs_abort_unmarshal_error, !! 33 rxrpc_skb_rx_purged, 28 /* rxperf errors */ !! 34 rxrpc_skb_rx_received, 29 EM(rxperf_abort_general_error, !! 35 rxrpc_skb_rx_rotated, 30 EM(rxperf_abort_oom, !! 36 rxrpc_skb_rx_seen, 31 EM(rxperf_abort_op_not_supported, !! 37 rxrpc_skb_tx_cleaned, 32 EM(rxperf_abort_unmarshal_error, !! 38 rxrpc_skb_tx_freed, 33 /* RxKAD security errors */ !! 39 rxrpc_skb_tx_got, 34 EM(rxkad_abort_1_short_check, !! 40 rxrpc_skb_tx_new, 35 EM(rxkad_abort_1_short_data, !! 41 rxrpc_skb_tx_rotated, 36 EM(rxkad_abort_1_short_encdata, !! 42 rxrpc_skb_tx_seen, 37 EM(rxkad_abort_1_short_header, !! 43 }; 38 EM(rxkad_abort_2_short_check, !! 44 39 EM(rxkad_abort_2_short_data, !! 45 enum rxrpc_conn_trace { 40 EM(rxkad_abort_2_short_header, !! 46 rxrpc_conn_got, 41 EM(rxkad_abort_2_short_len, !! 47 rxrpc_conn_new_client, 42 EM(rxkad_abort_bad_checksum, !! 48 rxrpc_conn_new_service, 43 EM(rxkad_abort_chall_key_expired, !! 49 rxrpc_conn_put_client, 44 EM(rxkad_abort_chall_level, !! 50 rxrpc_conn_put_service, 45 EM(rxkad_abort_chall_no_key, !! 51 rxrpc_conn_queued, 46 EM(rxkad_abort_chall_short, !! 52 rxrpc_conn_seen, 47 EM(rxkad_abort_chall_version, !! 53 }; 48 EM(rxkad_abort_resp_bad_callid, !! 54 49 EM(rxkad_abort_resp_bad_checksum, !! 55 enum rxrpc_client_trace { 50 EM(rxkad_abort_resp_bad_param, !! 56 rxrpc_client_activate_chans, 51 EM(rxkad_abort_resp_call_ctr, !! 57 rxrpc_client_alloc, 52 EM(rxkad_abort_resp_call_state, !! 58 rxrpc_client_chan_activate, 53 EM(rxkad_abort_resp_key_expired, !! 59 rxrpc_client_chan_disconnect, 54 EM(rxkad_abort_resp_key_rejected, !! 60 rxrpc_client_chan_pass, 55 EM(rxkad_abort_resp_level, !! 61 rxrpc_client_chan_unstarted, 56 EM(rxkad_abort_resp_nokey, !! 62 rxrpc_client_cleanup, 57 EM(rxkad_abort_resp_ooseq, !! 63 rxrpc_client_count, 58 EM(rxkad_abort_resp_short, !! 64 rxrpc_client_discard, 59 EM(rxkad_abort_resp_short_tkt, !! 65 rxrpc_client_duplicate, 60 EM(rxkad_abort_resp_tkt_aname, !! 66 rxrpc_client_exposed, 61 EM(rxkad_abort_resp_tkt_expired, !! 67 rxrpc_client_replace, 62 EM(rxkad_abort_resp_tkt_future, !! 68 rxrpc_client_to_active, 63 EM(rxkad_abort_resp_tkt_inst, !! 69 rxrpc_client_to_culled, 64 EM(rxkad_abort_resp_tkt_len, !! 70 rxrpc_client_to_idle, 65 EM(rxkad_abort_resp_tkt_realm, !! 71 rxrpc_client_to_inactive, 66 EM(rxkad_abort_resp_tkt_short, !! 72 rxrpc_client_to_upgrade, 67 EM(rxkad_abort_resp_tkt_sinst, !! 73 rxrpc_client_to_waiting, 68 EM(rxkad_abort_resp_tkt_sname, !! 74 rxrpc_client_uncount, 69 EM(rxkad_abort_resp_unknown_tkt, !! 75 }; 70 EM(rxkad_abort_resp_version, !! 76 71 /* rxrpc errors */ !! 77 enum rxrpc_call_trace { 72 EM(rxrpc_abort_call_improper_term, !! 78 rxrpc_call_connected, 73 EM(rxrpc_abort_call_reset, !! 79 rxrpc_call_error, 74 EM(rxrpc_abort_call_sendmsg, !! 80 rxrpc_call_got, 75 EM(rxrpc_abort_call_sock_release, !! 81 rxrpc_call_got_kernel, 76 EM(rxrpc_abort_call_sock_release_tba, !! 82 rxrpc_call_got_userid, 77 EM(rxrpc_abort_call_timeout, !! 83 rxrpc_call_new_client, 78 EM(rxrpc_abort_no_service_key, !! 84 rxrpc_call_new_service, 79 EM(rxrpc_abort_nomem, !! 85 rxrpc_call_put, 80 EM(rxrpc_abort_service_not_offered, !! 86 rxrpc_call_put_kernel, 81 EM(rxrpc_abort_shut_down, !! 87 rxrpc_call_put_noqueue, 82 EM(rxrpc_abort_unsupported_security, !! 88 rxrpc_call_put_userid, 83 EM(rxrpc_badmsg_bad_abort, !! 89 rxrpc_call_queued, 84 EM(rxrpc_badmsg_bad_jumbo, !! 90 rxrpc_call_queued_ref, 85 EM(rxrpc_badmsg_short_ack, !! 91 rxrpc_call_release, 86 EM(rxrpc_badmsg_short_ack_trailer, !! 92 rxrpc_call_seen, 87 EM(rxrpc_badmsg_short_hdr, !! 93 }; 88 EM(rxrpc_badmsg_unsupported_packet, !! 94 89 EM(rxrpc_badmsg_zero_call, !! 95 enum rxrpc_transmit_trace { 90 EM(rxrpc_badmsg_zero_seq, !! 96 rxrpc_transmit_await_reply, 91 EM(rxrpc_badmsg_zero_service, !! 97 rxrpc_transmit_end, 92 EM(rxrpc_eproto_ackr_outside_window, !! 98 rxrpc_transmit_queue, 93 EM(rxrpc_eproto_ackr_sack_overflow, !! 99 rxrpc_transmit_queue_last, 94 EM(rxrpc_eproto_ackr_short_sack, !! 100 rxrpc_transmit_rotate, 95 EM(rxrpc_eproto_ackr_zero, !! 101 rxrpc_transmit_rotate_last, 96 EM(rxrpc_eproto_bad_upgrade, !! 102 rxrpc_transmit_wait, 97 EM(rxrpc_eproto_data_after_last, !! 103 }; 98 EM(rxrpc_eproto_different_last, !! 104 99 EM(rxrpc_eproto_early_reply, !! 105 enum rxrpc_receive_trace { 100 EM(rxrpc_eproto_improper_term, !! 106 rxrpc_receive_end, 101 EM(rxrpc_eproto_no_client_call, !! 107 rxrpc_receive_front, 102 EM(rxrpc_eproto_no_client_conn, !! 108 rxrpc_receive_incoming, 103 EM(rxrpc_eproto_no_service_call, !! 109 rxrpc_receive_queue, 104 EM(rxrpc_eproto_reupgrade, !! 110 rxrpc_receive_queue_last, 105 EM(rxrpc_eproto_rxnull_challenge, !! 111 rxrpc_receive_rotate, 106 EM(rxrpc_eproto_rxnull_response, !! 112 }; 107 EM(rxrpc_eproto_tx_rot_last, !! 113 108 EM(rxrpc_eproto_unexpected_ack, !! 114 enum rxrpc_recvmsg_trace { 109 EM(rxrpc_eproto_unexpected_ackall, !! 115 rxrpc_recvmsg_cont, 110 EM(rxrpc_eproto_unexpected_implicit_en !! 116 rxrpc_recvmsg_data_return, 111 EM(rxrpc_eproto_unexpected_reply, !! 117 rxrpc_recvmsg_dequeue, 112 EM(rxrpc_eproto_wrong_security, !! 118 rxrpc_recvmsg_enter, 113 EM(rxrpc_recvmsg_excess_data, !! 119 rxrpc_recvmsg_full, 114 EM(rxrpc_recvmsg_short_data, !! 120 rxrpc_recvmsg_hole, 115 E_(rxrpc_sendmsg_late_send, !! 121 rxrpc_recvmsg_next, 116 !! 122 rxrpc_recvmsg_requeue, 117 #define rxrpc_call_poke_traces \ !! 123 rxrpc_recvmsg_return, 118 EM(rxrpc_call_poke_abort, !! 124 rxrpc_recvmsg_terminal, 119 EM(rxrpc_call_poke_complete, !! 125 rxrpc_recvmsg_to_be_accepted, 120 EM(rxrpc_call_poke_error, !! 126 rxrpc_recvmsg_wait, 121 EM(rxrpc_call_poke_idle, !! 127 }; 122 EM(rxrpc_call_poke_set_timeout, !! 128 123 EM(rxrpc_call_poke_start, !! 129 enum rxrpc_rtt_tx_trace { 124 EM(rxrpc_call_poke_timer, !! 130 rxrpc_rtt_tx_data, 125 E_(rxrpc_call_poke_timer_now, !! 131 rxrpc_rtt_tx_ping, >> 132 }; >> 133 >> 134 enum rxrpc_rtt_rx_trace { >> 135 rxrpc_rtt_rx_ping_response, >> 136 rxrpc_rtt_rx_requested_ack, >> 137 }; >> 138 >> 139 enum rxrpc_timer_trace { >> 140 rxrpc_timer_begin, >> 141 rxrpc_timer_expired, >> 142 rxrpc_timer_init_for_reply, >> 143 rxrpc_timer_init_for_send_reply, >> 144 rxrpc_timer_set_for_ack, >> 145 rxrpc_timer_set_for_ping, >> 146 rxrpc_timer_set_for_resend, >> 147 rxrpc_timer_set_for_send, >> 148 }; >> 149 >> 150 enum rxrpc_propose_ack_trace { >> 151 rxrpc_propose_ack_client_tx_end, >> 152 rxrpc_propose_ack_input_data, >> 153 rxrpc_propose_ack_ping_for_lost_ack, >> 154 rxrpc_propose_ack_ping_for_lost_reply, >> 155 rxrpc_propose_ack_ping_for_params, >> 156 rxrpc_propose_ack_processing_op, >> 157 rxrpc_propose_ack_respond_to_ack, >> 158 rxrpc_propose_ack_respond_to_ping, >> 159 rxrpc_propose_ack_retry_tx, >> 160 rxrpc_propose_ack_rotate_rx, >> 161 rxrpc_propose_ack_terminal_ack, >> 162 }; >> 163 >> 164 enum rxrpc_propose_ack_outcome { >> 165 rxrpc_propose_ack_subsume, >> 166 rxrpc_propose_ack_update, >> 167 rxrpc_propose_ack_use, >> 168 }; >> 169 >> 170 enum rxrpc_congest_change { >> 171 rxrpc_cong_begin_retransmission, >> 172 rxrpc_cong_cleared_nacks, >> 173 rxrpc_cong_new_low_nack, >> 174 rxrpc_cong_no_change, >> 175 rxrpc_cong_progress, >> 176 rxrpc_cong_retransmit_again, >> 177 rxrpc_cong_rtt_window_end, >> 178 rxrpc_cong_saw_nack, >> 179 }; 126 180 >> 181 #endif /* end __RXRPC_DECLARE_TRACE_ENUMS_ONCE_ONLY */ >> 182 >> 183 /* >> 184 * Declare tracing information enums and their string mappings for display. >> 185 */ 127 #define rxrpc_skb_traces \ 186 #define rxrpc_skb_traces \ 128 EM(rxrpc_skb_eaten_by_unshare, !! 187 EM(rxrpc_skb_rx_cleaned, "Rx CLN") \ 129 EM(rxrpc_skb_eaten_by_unshare_nomem, !! 188 EM(rxrpc_skb_rx_freed, "Rx FRE") \ 130 EM(rxrpc_skb_get_conn_secured, !! 189 EM(rxrpc_skb_rx_got, "Rx GOT") \ 131 EM(rxrpc_skb_get_conn_work, !! 190 EM(rxrpc_skb_rx_lost, "Rx *L*") \ 132 EM(rxrpc_skb_get_last_nack, !! 191 EM(rxrpc_skb_rx_purged, "Rx PUR") \ 133 EM(rxrpc_skb_get_local_work, !! 192 EM(rxrpc_skb_rx_received, "Rx RCV") \ 134 EM(rxrpc_skb_get_reject_work, !! 193 EM(rxrpc_skb_rx_rotated, "Rx ROT") \ 135 EM(rxrpc_skb_get_to_recvmsg, !! 194 EM(rxrpc_skb_rx_seen, "Rx SEE") \ 136 EM(rxrpc_skb_get_to_recvmsg_oos, !! 195 EM(rxrpc_skb_tx_cleaned, "Tx CLN") \ 137 EM(rxrpc_skb_new_encap_rcv, !! 196 EM(rxrpc_skb_tx_freed, "Tx FRE") \ 138 EM(rxrpc_skb_new_error_report, !! 197 EM(rxrpc_skb_tx_got, "Tx GOT") \ 139 EM(rxrpc_skb_new_jumbo_subpacket, !! 198 EM(rxrpc_skb_tx_new, "Tx NEW") \ 140 EM(rxrpc_skb_new_unshared, !! 199 EM(rxrpc_skb_tx_rotated, "Tx ROT") \ 141 EM(rxrpc_skb_put_conn_secured, !! 200 E_(rxrpc_skb_tx_seen, "Tx SEE") 142 EM(rxrpc_skb_put_conn_work, << 143 EM(rxrpc_skb_put_error_report, << 144 EM(rxrpc_skb_put_input, << 145 EM(rxrpc_skb_put_jumbo_subpacket, << 146 EM(rxrpc_skb_put_last_nack, << 147 EM(rxrpc_skb_put_purge, << 148 EM(rxrpc_skb_put_rotate, << 149 EM(rxrpc_skb_put_unknown, << 150 EM(rxrpc_skb_see_conn_work, << 151 EM(rxrpc_skb_see_recvmsg, << 152 EM(rxrpc_skb_see_reject, << 153 EM(rxrpc_skb_see_rotate, << 154 E_(rxrpc_skb_see_version, << 155 << 156 #define rxrpc_local_traces \ << 157 EM(rxrpc_local_free, << 158 EM(rxrpc_local_get_call, << 159 EM(rxrpc_local_get_client_conn, << 160 EM(rxrpc_local_get_for_use, << 161 EM(rxrpc_local_get_peer, << 162 EM(rxrpc_local_get_prealloc_conn, << 163 EM(rxrpc_local_new, << 164 EM(rxrpc_local_put_bind, << 165 EM(rxrpc_local_put_call, << 166 EM(rxrpc_local_put_for_use, << 167 EM(rxrpc_local_put_kill_conn, << 168 EM(rxrpc_local_put_peer, << 169 EM(rxrpc_local_put_prealloc_peer, << 170 EM(rxrpc_local_put_release_sock, << 171 EM(rxrpc_local_stop, << 172 EM(rxrpc_local_stopped, << 173 EM(rxrpc_local_unuse_bind, << 174 EM(rxrpc_local_unuse_conn_work, << 175 EM(rxrpc_local_unuse_peer_keepalive, << 176 EM(rxrpc_local_unuse_release_sock, << 177 EM(rxrpc_local_use_conn_work, << 178 EM(rxrpc_local_use_lookup, << 179 E_(rxrpc_local_use_peer_keepalive, << 180 << 181 #define rxrpc_peer_traces \ << 182 EM(rxrpc_peer_free, << 183 EM(rxrpc_peer_get_accept, << 184 EM(rxrpc_peer_get_application, << 185 EM(rxrpc_peer_get_bundle, << 186 EM(rxrpc_peer_get_call, << 187 EM(rxrpc_peer_get_client_conn, << 188 EM(rxrpc_peer_get_input, << 189 EM(rxrpc_peer_get_input_error, << 190 EM(rxrpc_peer_get_keepalive, << 191 EM(rxrpc_peer_get_lookup_client, << 192 EM(rxrpc_peer_get_service_conn, << 193 EM(rxrpc_peer_new_client, << 194 EM(rxrpc_peer_new_prealloc, << 195 EM(rxrpc_peer_put_application, << 196 EM(rxrpc_peer_put_bundle, << 197 EM(rxrpc_peer_put_call, << 198 EM(rxrpc_peer_put_conn, << 199 EM(rxrpc_peer_put_input, << 200 EM(rxrpc_peer_put_input_error, << 201 E_(rxrpc_peer_put_keepalive, << 202 << 203 #define rxrpc_bundle_traces \ << 204 EM(rxrpc_bundle_free, << 205 EM(rxrpc_bundle_get_client_call, << 206 EM(rxrpc_bundle_get_client_conn, << 207 EM(rxrpc_bundle_get_service_conn, << 208 EM(rxrpc_bundle_put_call, << 209 EM(rxrpc_bundle_put_conn, << 210 EM(rxrpc_bundle_put_discard, << 211 E_(rxrpc_bundle_new, << 212 201 213 #define rxrpc_conn_traces \ 202 #define rxrpc_conn_traces \ 214 EM(rxrpc_conn_free, !! 203 EM(rxrpc_conn_got, "GOT") \ 215 EM(rxrpc_conn_get_activate_call, !! 204 EM(rxrpc_conn_new_client, "NWc") \ 216 EM(rxrpc_conn_get_call_input, !! 205 EM(rxrpc_conn_new_service, "NWs") \ 217 EM(rxrpc_conn_get_conn_input, !! 206 EM(rxrpc_conn_put_client, "PTc") \ 218 EM(rxrpc_conn_get_idle, !! 207 EM(rxrpc_conn_put_service, "PTs") \ 219 EM(rxrpc_conn_get_poke_abort, !! 208 EM(rxrpc_conn_queued, "QUE") \ 220 EM(rxrpc_conn_get_poke_timer, !! 209 E_(rxrpc_conn_seen, "SEE") 221 EM(rxrpc_conn_get_service_conn, << 222 EM(rxrpc_conn_new_client, << 223 EM(rxrpc_conn_new_service, << 224 EM(rxrpc_conn_put_call, << 225 EM(rxrpc_conn_put_call_input, << 226 EM(rxrpc_conn_put_conn_input, << 227 EM(rxrpc_conn_put_discard_idle, << 228 EM(rxrpc_conn_put_local_dead, << 229 EM(rxrpc_conn_put_noreuse, << 230 EM(rxrpc_conn_put_poke, << 231 EM(rxrpc_conn_put_service_reaped, << 232 EM(rxrpc_conn_put_unbundle, << 233 EM(rxrpc_conn_put_unidle, << 234 EM(rxrpc_conn_put_work, << 235 EM(rxrpc_conn_queue_challenge, << 236 EM(rxrpc_conn_queue_retry_work, << 237 EM(rxrpc_conn_queue_rx_work, << 238 EM(rxrpc_conn_see_new_service_conn, << 239 EM(rxrpc_conn_see_reap_service, << 240 E_(rxrpc_conn_see_work, << 241 210 242 #define rxrpc_client_traces \ 211 #define rxrpc_client_traces \ 243 EM(rxrpc_client_activate_chans, 212 EM(rxrpc_client_activate_chans, "Activa") \ 244 EM(rxrpc_client_alloc, 213 EM(rxrpc_client_alloc, "Alloc ") \ 245 EM(rxrpc_client_chan_activate, 214 EM(rxrpc_client_chan_activate, "ChActv") \ 246 EM(rxrpc_client_chan_disconnect, 215 EM(rxrpc_client_chan_disconnect, "ChDisc") \ 247 EM(rxrpc_client_chan_pass, 216 EM(rxrpc_client_chan_pass, "ChPass") \ >> 217 EM(rxrpc_client_chan_unstarted, "ChUnst") \ 248 EM(rxrpc_client_cleanup, 218 EM(rxrpc_client_cleanup, "Clean ") \ >> 219 EM(rxrpc_client_count, "Count ") \ 249 EM(rxrpc_client_discard, 220 EM(rxrpc_client_discard, "Discar") \ >> 221 EM(rxrpc_client_duplicate, "Duplic") \ 250 EM(rxrpc_client_exposed, 222 EM(rxrpc_client_exposed, "Expose") \ 251 EM(rxrpc_client_replace, 223 EM(rxrpc_client_replace, "Replac") \ 252 EM(rxrpc_client_queue_new_call, << 253 EM(rxrpc_client_to_active, 224 EM(rxrpc_client_to_active, "->Actv") \ 254 E_(rxrpc_client_to_idle, !! 225 EM(rxrpc_client_to_culled, "->Cull") \ >> 226 EM(rxrpc_client_to_idle, "->Idle") \ >> 227 EM(rxrpc_client_to_inactive, "->Inac") \ >> 228 EM(rxrpc_client_to_upgrade, "->Upgd") \ >> 229 EM(rxrpc_client_to_waiting, "->Wait") \ >> 230 E_(rxrpc_client_uncount, "Uncoun") >> 231 >> 232 #define rxrpc_conn_cache_states \ >> 233 EM(RXRPC_CONN_CLIENT_INACTIVE, "Inac") \ >> 234 EM(RXRPC_CONN_CLIENT_WAITING, "Wait") \ >> 235 EM(RXRPC_CONN_CLIENT_ACTIVE, "Actv") \ >> 236 EM(RXRPC_CONN_CLIENT_UPGRADE, "Upgd") \ >> 237 EM(RXRPC_CONN_CLIENT_CULLED, "Cull") \ >> 238 E_(RXRPC_CONN_CLIENT_IDLE, "Idle") \ 255 239 256 #define rxrpc_call_traces \ 240 #define rxrpc_call_traces \ 257 EM(rxrpc_call_get_io_thread, !! 241 EM(rxrpc_call_connected, "CON") \ 258 EM(rxrpc_call_get_input, !! 242 EM(rxrpc_call_error, "*E*") \ 259 EM(rxrpc_call_get_kernel_service, !! 243 EM(rxrpc_call_got, "GOT") \ 260 EM(rxrpc_call_get_notify_socket, !! 244 EM(rxrpc_call_got_kernel, "Gke") \ 261 EM(rxrpc_call_get_poke, !! 245 EM(rxrpc_call_got_userid, "Gus") \ 262 EM(rxrpc_call_get_recvmsg, !! 246 EM(rxrpc_call_new_client, "NWc") \ 263 EM(rxrpc_call_get_release_sock, !! 247 EM(rxrpc_call_new_service, "NWs") \ 264 EM(rxrpc_call_get_sendmsg, !! 248 EM(rxrpc_call_put, "PUT") \ 265 EM(rxrpc_call_get_userid, !! 249 EM(rxrpc_call_put_kernel, "Pke") \ 266 EM(rxrpc_call_new_client, !! 250 EM(rxrpc_call_put_noqueue, "PNQ") \ 267 EM(rxrpc_call_new_prealloc_service, !! 251 EM(rxrpc_call_put_userid, "Pus") \ 268 EM(rxrpc_call_put_discard_prealloc, !! 252 EM(rxrpc_call_queued, "QUE") \ 269 EM(rxrpc_call_put_discard_error, !! 253 EM(rxrpc_call_queued_ref, "QUR") \ 270 EM(rxrpc_call_put_io_thread, !! 254 EM(rxrpc_call_release, "RLS") \ 271 EM(rxrpc_call_put_input, !! 255 E_(rxrpc_call_seen, "SEE") 272 EM(rxrpc_call_put_kernel, !! 256 273 EM(rxrpc_call_put_poke, !! 257 #define rxrpc_transmit_traces \ 274 EM(rxrpc_call_put_recvmsg, !! 258 EM(rxrpc_transmit_await_reply, "AWR") \ 275 EM(rxrpc_call_put_release_sock, !! 259 EM(rxrpc_transmit_end, "END") \ 276 EM(rxrpc_call_put_release_sock_tba, !! 260 EM(rxrpc_transmit_queue, "QUE") \ 277 EM(rxrpc_call_put_sendmsg, !! 261 EM(rxrpc_transmit_queue_last, "QLS") \ 278 EM(rxrpc_call_put_unnotify, !! 262 EM(rxrpc_transmit_rotate, "ROT") \ 279 EM(rxrpc_call_put_userid_exists, !! 263 EM(rxrpc_transmit_rotate_last, "RLS") \ 280 EM(rxrpc_call_put_userid, !! 264 E_(rxrpc_transmit_wait, "WAI") 281 EM(rxrpc_call_see_accept, << 282 EM(rxrpc_call_see_activate_client, << 283 EM(rxrpc_call_see_connect_failed, << 284 EM(rxrpc_call_see_connected, << 285 EM(rxrpc_call_see_disconnected, << 286 EM(rxrpc_call_see_distribute_error, << 287 EM(rxrpc_call_see_input, << 288 EM(rxrpc_call_see_release, << 289 EM(rxrpc_call_see_userid_exists, << 290 EM(rxrpc_call_see_waiting_call, << 291 E_(rxrpc_call_see_zap, << 292 << 293 #define rxrpc_txqueue_traces \ << 294 EM(rxrpc_txqueue_await_reply, << 295 EM(rxrpc_txqueue_dequeue, << 296 EM(rxrpc_txqueue_end, << 297 EM(rxrpc_txqueue_queue, << 298 EM(rxrpc_txqueue_queue_last, << 299 EM(rxrpc_txqueue_rotate, << 300 EM(rxrpc_txqueue_rotate_last, << 301 E_(rxrpc_txqueue_wait, << 302 265 303 #define rxrpc_receive_traces \ 266 #define rxrpc_receive_traces \ 304 EM(rxrpc_receive_end, 267 EM(rxrpc_receive_end, "END") \ 305 EM(rxrpc_receive_front, 268 EM(rxrpc_receive_front, "FRN") \ 306 EM(rxrpc_receive_incoming, 269 EM(rxrpc_receive_incoming, "INC") \ 307 EM(rxrpc_receive_queue, 270 EM(rxrpc_receive_queue, "QUE") \ 308 EM(rxrpc_receive_queue_last, 271 EM(rxrpc_receive_queue_last, "QLS") \ 309 EM(rxrpc_receive_queue_oos, !! 272 E_(rxrpc_receive_rotate, "ROT") 310 EM(rxrpc_receive_queue_oos_last, << 311 EM(rxrpc_receive_oos, << 312 EM(rxrpc_receive_oos_last, << 313 EM(rxrpc_receive_rotate, << 314 E_(rxrpc_receive_rotate_last, << 315 273 316 #define rxrpc_recvmsg_traces \ 274 #define rxrpc_recvmsg_traces \ 317 EM(rxrpc_recvmsg_cont, 275 EM(rxrpc_recvmsg_cont, "CONT") \ 318 EM(rxrpc_recvmsg_data_return, 276 EM(rxrpc_recvmsg_data_return, "DATA") \ 319 EM(rxrpc_recvmsg_dequeue, 277 EM(rxrpc_recvmsg_dequeue, "DEQU") \ 320 EM(rxrpc_recvmsg_enter, 278 EM(rxrpc_recvmsg_enter, "ENTR") \ 321 EM(rxrpc_recvmsg_full, 279 EM(rxrpc_recvmsg_full, "FULL") \ 322 EM(rxrpc_recvmsg_hole, 280 EM(rxrpc_recvmsg_hole, "HOLE") \ 323 EM(rxrpc_recvmsg_next, 281 EM(rxrpc_recvmsg_next, "NEXT") \ 324 EM(rxrpc_recvmsg_requeue, 282 EM(rxrpc_recvmsg_requeue, "REQU") \ 325 EM(rxrpc_recvmsg_return, 283 EM(rxrpc_recvmsg_return, "RETN") \ 326 EM(rxrpc_recvmsg_terminal, 284 EM(rxrpc_recvmsg_terminal, "TERM") \ 327 EM(rxrpc_recvmsg_to_be_accepted, 285 EM(rxrpc_recvmsg_to_be_accepted, "TBAC") \ 328 EM(rxrpc_recvmsg_unqueue, << 329 E_(rxrpc_recvmsg_wait, 286 E_(rxrpc_recvmsg_wait, "WAIT") 330 287 331 #define rxrpc_rtt_tx_traces \ 288 #define rxrpc_rtt_tx_traces \ 332 EM(rxrpc_rtt_tx_cancel, << 333 EM(rxrpc_rtt_tx_data, 289 EM(rxrpc_rtt_tx_data, "DATA") \ 334 EM(rxrpc_rtt_tx_no_slot, << 335 E_(rxrpc_rtt_tx_ping, 290 E_(rxrpc_rtt_tx_ping, "PING") 336 291 337 #define rxrpc_rtt_rx_traces \ 292 #define rxrpc_rtt_rx_traces \ 338 EM(rxrpc_rtt_rx_other_ack, << 339 EM(rxrpc_rtt_rx_obsolete, << 340 EM(rxrpc_rtt_rx_lost, << 341 EM(rxrpc_rtt_rx_ping_response, 293 EM(rxrpc_rtt_rx_ping_response, "PONG") \ 342 E_(rxrpc_rtt_rx_requested_ack, 294 E_(rxrpc_rtt_rx_requested_ack, "RACK") 343 295 344 #define rxrpc_timer_traces \ 296 #define rxrpc_timer_traces \ 345 EM(rxrpc_timer_trace_delayed_ack, !! 297 EM(rxrpc_timer_begin, "Begin ") \ 346 EM(rxrpc_timer_trace_expect_rx, !! 298 EM(rxrpc_timer_expired, "*EXPR*") \ 347 EM(rxrpc_timer_trace_hard, !! 299 EM(rxrpc_timer_init_for_reply, "IniRpl") \ 348 EM(rxrpc_timer_trace_idle, !! 300 EM(rxrpc_timer_init_for_send_reply, "SndRpl") \ 349 EM(rxrpc_timer_trace_keepalive, !! 301 EM(rxrpc_timer_set_for_ack, "SetAck") \ 350 EM(rxrpc_timer_trace_lost_ack, !! 302 EM(rxrpc_timer_set_for_ping, "SetPng") \ 351 EM(rxrpc_timer_trace_ping, !! 303 EM(rxrpc_timer_set_for_resend, "SetRTx") \ 352 EM(rxrpc_timer_trace_resend, !! 304 E_(rxrpc_timer_set_for_send, "SetTx ") 353 EM(rxrpc_timer_trace_resend_reset, << 354 E_(rxrpc_timer_trace_resend_tx, << 355 305 356 #define rxrpc_propose_ack_traces \ 306 #define rxrpc_propose_ack_traces \ 357 EM(rxrpc_propose_ack_client_tx_end, 307 EM(rxrpc_propose_ack_client_tx_end, "ClTxEnd") \ 358 EM(rxrpc_propose_ack_delayed_ack, << 359 EM(rxrpc_propose_ack_input_data, 308 EM(rxrpc_propose_ack_input_data, "DataIn ") \ 360 EM(rxrpc_propose_ack_input_data_hole, << 361 EM(rxrpc_propose_ack_ping_for_keepaliv << 362 EM(rxrpc_propose_ack_ping_for_lost_ack 309 EM(rxrpc_propose_ack_ping_for_lost_ack, "LostAck") \ 363 EM(rxrpc_propose_ack_ping_for_lost_rep 310 EM(rxrpc_propose_ack_ping_for_lost_reply, "LostRpl") \ 364 EM(rxrpc_propose_ack_ping_for_0_retran << 365 EM(rxrpc_propose_ack_ping_for_old_rtt, << 366 EM(rxrpc_propose_ack_ping_for_params, 311 EM(rxrpc_propose_ack_ping_for_params, "Params ") \ 367 EM(rxrpc_propose_ack_ping_for_rtt, << 368 EM(rxrpc_propose_ack_processing_op, 312 EM(rxrpc_propose_ack_processing_op, "ProcOp ") \ 369 EM(rxrpc_propose_ack_respond_to_ack, 313 EM(rxrpc_propose_ack_respond_to_ack, "Rsp2Ack") \ 370 EM(rxrpc_propose_ack_respond_to_ping, 314 EM(rxrpc_propose_ack_respond_to_ping, "Rsp2Png") \ 371 EM(rxrpc_propose_ack_retry_tx, 315 EM(rxrpc_propose_ack_retry_tx, "RetryTx") \ 372 EM(rxrpc_propose_ack_rotate_rx, 316 EM(rxrpc_propose_ack_rotate_rx, "RxAck ") \ 373 EM(rxrpc_propose_ack_rx_idle, << 374 E_(rxrpc_propose_ack_terminal_ack, 317 E_(rxrpc_propose_ack_terminal_ack, "ClTerm ") 375 318 >> 319 #define rxrpc_propose_ack_outcomes \ >> 320 EM(rxrpc_propose_ack_subsume, " Subsume") \ >> 321 EM(rxrpc_propose_ack_update, " Update") \ >> 322 E_(rxrpc_propose_ack_use, "") >> 323 376 #define rxrpc_congest_modes \ 324 #define rxrpc_congest_modes \ 377 EM(RXRPC_CALL_CONGEST_AVOIDANCE, 325 EM(RXRPC_CALL_CONGEST_AVOIDANCE, "CongAvoid") \ 378 EM(RXRPC_CALL_FAST_RETRANSMIT, 326 EM(RXRPC_CALL_FAST_RETRANSMIT, "FastReTx ") \ 379 EM(RXRPC_CALL_PACKET_LOSS, 327 EM(RXRPC_CALL_PACKET_LOSS, "PktLoss ") \ 380 E_(RXRPC_CALL_SLOW_START, 328 E_(RXRPC_CALL_SLOW_START, "SlowStart") 381 329 382 #define rxrpc_congest_changes \ 330 #define rxrpc_congest_changes \ 383 EM(rxrpc_cong_begin_retransmission, 331 EM(rxrpc_cong_begin_retransmission, " Retrans") \ 384 EM(rxrpc_cong_cleared_nacks, 332 EM(rxrpc_cong_cleared_nacks, " Cleared") \ 385 EM(rxrpc_cong_new_low_nack, 333 EM(rxrpc_cong_new_low_nack, " NewLowN") \ 386 EM(rxrpc_cong_no_change, !! 334 EM(rxrpc_cong_no_change, "") \ 387 EM(rxrpc_cong_progress, 335 EM(rxrpc_cong_progress, " Progres") \ 388 EM(rxrpc_cong_idle_reset, << 389 EM(rxrpc_cong_retransmit_again, 336 EM(rxrpc_cong_retransmit_again, " ReTxAgn") \ 390 EM(rxrpc_cong_rtt_window_end, 337 EM(rxrpc_cong_rtt_window_end, " RttWinE") \ 391 E_(rxrpc_cong_saw_nack, 338 E_(rxrpc_cong_saw_nack, " SawNack") 392 339 393 #define rxrpc_pkts \ 340 #define rxrpc_pkts \ 394 EM(0, 341 EM(0, "?00") \ 395 EM(RXRPC_PACKET_TYPE_DATA, 342 EM(RXRPC_PACKET_TYPE_DATA, "DATA") \ 396 EM(RXRPC_PACKET_TYPE_ACK, 343 EM(RXRPC_PACKET_TYPE_ACK, "ACK") \ 397 EM(RXRPC_PACKET_TYPE_BUSY, 344 EM(RXRPC_PACKET_TYPE_BUSY, "BUSY") \ 398 EM(RXRPC_PACKET_TYPE_ABORT, 345 EM(RXRPC_PACKET_TYPE_ABORT, "ABORT") \ 399 EM(RXRPC_PACKET_TYPE_ACKALL, 346 EM(RXRPC_PACKET_TYPE_ACKALL, "ACKALL") \ 400 EM(RXRPC_PACKET_TYPE_CHALLENGE, 347 EM(RXRPC_PACKET_TYPE_CHALLENGE, "CHALL") \ 401 EM(RXRPC_PACKET_TYPE_RESPONSE, 348 EM(RXRPC_PACKET_TYPE_RESPONSE, "RESP") \ 402 EM(RXRPC_PACKET_TYPE_DEBUG, 349 EM(RXRPC_PACKET_TYPE_DEBUG, "DEBUG") \ 403 EM(9, 350 EM(9, "?09") \ 404 EM(10, 351 EM(10, "?10") \ 405 EM(11, 352 EM(11, "?11") \ 406 EM(12, 353 EM(12, "?12") \ 407 EM(RXRPC_PACKET_TYPE_VERSION, 354 EM(RXRPC_PACKET_TYPE_VERSION, "VERSION") \ 408 EM(14, 355 EM(14, "?14") \ 409 E_(15, 356 E_(15, "?15") 410 357 411 #define rxrpc_ack_names \ 358 #define rxrpc_ack_names \ 412 EM(0, 359 EM(0, "-0-") \ 413 EM(RXRPC_ACK_REQUESTED, 360 EM(RXRPC_ACK_REQUESTED, "REQ") \ 414 EM(RXRPC_ACK_DUPLICATE, 361 EM(RXRPC_ACK_DUPLICATE, "DUP") \ 415 EM(RXRPC_ACK_OUT_OF_SEQUENCE, 362 EM(RXRPC_ACK_OUT_OF_SEQUENCE, "OOS") \ 416 EM(RXRPC_ACK_EXCEEDS_WINDOW, 363 EM(RXRPC_ACK_EXCEEDS_WINDOW, "WIN") \ 417 EM(RXRPC_ACK_NOSPACE, 364 EM(RXRPC_ACK_NOSPACE, "MEM") \ 418 EM(RXRPC_ACK_PING, 365 EM(RXRPC_ACK_PING, "PNG") \ 419 EM(RXRPC_ACK_PING_RESPONSE, 366 EM(RXRPC_ACK_PING_RESPONSE, "PNR") \ 420 EM(RXRPC_ACK_DELAY, 367 EM(RXRPC_ACK_DELAY, "DLY") \ 421 EM(RXRPC_ACK_IDLE, 368 EM(RXRPC_ACK_IDLE, "IDL") \ 422 E_(RXRPC_ACK__INVALID, 369 E_(RXRPC_ACK__INVALID, "-?-") 423 370 424 #define rxrpc_sack_traces \ << 425 EM(rxrpc_sack_advance, << 426 EM(rxrpc_sack_fill, << 427 EM(rxrpc_sack_nack, << 428 EM(rxrpc_sack_none, << 429 E_(rxrpc_sack_oos, << 430 << 431 #define rxrpc_completions \ << 432 EM(RXRPC_CALL_SUCCEEDED, << 433 EM(RXRPC_CALL_REMOTELY_ABORTED, << 434 EM(RXRPC_CALL_LOCALLY_ABORTED, << 435 EM(RXRPC_CALL_LOCAL_ERROR, << 436 E_(RXRPC_CALL_NETWORK_ERROR, << 437 << 438 #define rxrpc_tx_points \ << 439 EM(rxrpc_tx_point_call_abort, << 440 EM(rxrpc_tx_point_call_ack, << 441 EM(rxrpc_tx_point_call_data_frag, << 442 EM(rxrpc_tx_point_call_data_nofrag, << 443 EM(rxrpc_tx_point_call_final_resend, << 444 EM(rxrpc_tx_point_conn_abort, << 445 EM(rxrpc_tx_point_reject, << 446 EM(rxrpc_tx_point_rxkad_challenge, << 447 EM(rxrpc_tx_point_rxkad_response, << 448 EM(rxrpc_tx_point_version_keepalive, << 449 E_(rxrpc_tx_point_version_reply, << 450 << 451 #define rxrpc_req_ack_traces \ << 452 EM(rxrpc_reqack_ack_lost, << 453 EM(rxrpc_reqack_already_on, << 454 EM(rxrpc_reqack_more_rtt, << 455 EM(rxrpc_reqack_no_srv_last, << 456 EM(rxrpc_reqack_old_rtt, << 457 EM(rxrpc_reqack_retrans, << 458 EM(rxrpc_reqack_slow_start, << 459 E_(rxrpc_reqack_small_txwin, << 460 /* ---- Must update size of stat_why_req_ack[] << 461 << 462 #define rxrpc_txbuf_traces \ << 463 EM(rxrpc_txbuf_alloc_ack, << 464 EM(rxrpc_txbuf_alloc_data, << 465 EM(rxrpc_txbuf_free, << 466 EM(rxrpc_txbuf_get_buffer, << 467 EM(rxrpc_txbuf_get_trans, << 468 EM(rxrpc_txbuf_get_retrans, << 469 EM(rxrpc_txbuf_put_ack_tx, << 470 EM(rxrpc_txbuf_put_cleaned, << 471 EM(rxrpc_txbuf_put_nomem, << 472 EM(rxrpc_txbuf_put_rotated, << 473 EM(rxrpc_txbuf_put_send_aborted, << 474 EM(rxrpc_txbuf_put_trans, << 475 EM(rxrpc_txbuf_see_out_of_step, << 476 EM(rxrpc_txbuf_see_send_more, << 477 E_(rxrpc_txbuf_see_unacked, << 478 << 479 /* << 480 * Generate enums for tracing information. << 481 */ << 482 #ifndef __NETFS_DECLARE_TRACE_ENUMS_ONCE_ONLY << 483 #define __NETFS_DECLARE_TRACE_ENUMS_ONCE_ONLY << 484 << 485 #undef EM << 486 #undef E_ << 487 #define EM(a, b) a, << 488 #define E_(a, b) a << 489 << 490 enum rxrpc_abort_reason { rxrpc_abort_ << 491 enum rxrpc_bundle_trace { rxrpc_bundle << 492 enum rxrpc_call_poke_trace { rxrpc_call_p << 493 enum rxrpc_call_trace { rxrpc_call_t << 494 enum rxrpc_client_trace { rxrpc_client << 495 enum rxrpc_congest_change { rxrpc_conges << 496 enum rxrpc_conn_trace { rxrpc_conn_t << 497 enum rxrpc_local_trace { rxrpc_local_ << 498 enum rxrpc_peer_trace { rxrpc_peer_t << 499 enum rxrpc_propose_ack_outcome { rxrpc_propos << 500 enum rxrpc_propose_ack_trace { rxrpc_propos << 501 enum rxrpc_receive_trace { rxrpc_receiv << 502 enum rxrpc_recvmsg_trace { rxrpc_recvms << 503 enum rxrpc_req_ack_trace { rxrpc_req_ac << 504 enum rxrpc_rtt_rx_trace { rxrpc_rtt_rx << 505 enum rxrpc_rtt_tx_trace { rxrpc_rtt_tx << 506 enum rxrpc_sack_trace { rxrpc_sack_t << 507 enum rxrpc_skb_trace { rxrpc_skb_tr << 508 enum rxrpc_timer_trace { rxrpc_timer_ << 509 enum rxrpc_tx_point { rxrpc_tx_poi << 510 enum rxrpc_txbuf_trace { rxrpc_txbuf_ << 511 enum rxrpc_txqueue_trace { rxrpc_txqueu << 512 << 513 #endif /* end __RXRPC_DECLARE_TRACE_ENUMS_ONCE << 514 << 515 /* 371 /* 516 * Export enum symbols via userspace. 372 * Export enum symbols via userspace. 517 */ 373 */ 518 #undef EM 374 #undef EM 519 #undef E_ 375 #undef E_ 520 << 521 #ifndef RXRPC_TRACE_ONLY_DEFINE_ENUMS << 522 << 523 #define EM(a, b) TRACE_DEFINE_ENUM(a); 376 #define EM(a, b) TRACE_DEFINE_ENUM(a); 524 #define E_(a, b) TRACE_DEFINE_ENUM(a); 377 #define E_(a, b) TRACE_DEFINE_ENUM(a); 525 378 526 rxrpc_abort_reasons; !! 379 rxrpc_skb_traces; 527 rxrpc_bundle_traces; << 528 rxrpc_call_poke_traces; << 529 rxrpc_call_traces; << 530 rxrpc_client_traces; << 531 rxrpc_congest_changes; << 532 rxrpc_congest_modes; << 533 rxrpc_conn_traces; 380 rxrpc_conn_traces; 534 rxrpc_local_traces; !! 381 rxrpc_client_traces; 535 rxrpc_propose_ack_traces; !! 382 rxrpc_call_traces; >> 383 rxrpc_transmit_traces; 536 rxrpc_receive_traces; 384 rxrpc_receive_traces; 537 rxrpc_recvmsg_traces; 385 rxrpc_recvmsg_traces; 538 rxrpc_req_ack_traces; << 539 rxrpc_rtt_rx_traces; << 540 rxrpc_rtt_tx_traces; 386 rxrpc_rtt_tx_traces; 541 rxrpc_sack_traces; !! 387 rxrpc_rtt_rx_traces; 542 rxrpc_skb_traces; << 543 rxrpc_timer_traces; 388 rxrpc_timer_traces; 544 rxrpc_tx_points; !! 389 rxrpc_propose_ack_traces; 545 rxrpc_txbuf_traces; !! 390 rxrpc_propose_ack_outcomes; 546 rxrpc_txqueue_traces; !! 391 rxrpc_congest_changes; 547 392 548 /* 393 /* 549 * Now redefine the EM() and E_() macros to ma 394 * Now redefine the EM() and E_() macros to map the enums to the strings that 550 * will be printed in the output. 395 * will be printed in the output. 551 */ 396 */ 552 #undef EM 397 #undef EM 553 #undef E_ 398 #undef E_ 554 #define EM(a, b) { a, b }, 399 #define EM(a, b) { a, b }, 555 #define E_(a, b) { a, b } 400 #define E_(a, b) { a, b } 556 401 557 TRACE_EVENT(rxrpc_local, !! 402 TRACE_EVENT(rxrpc_conn, 558 TP_PROTO(unsigned int local_debug_ !! 403 TP_PROTO(struct rxrpc_connection *conn, enum rxrpc_conn_trace op, 559 int ref, int usage), !! 404 int usage, const void *where), 560 405 561 TP_ARGS(local_debug_id, op, ref, u !! 406 TP_ARGS(conn, op, usage, where), 562 407 563 TP_STRUCT__entry( 408 TP_STRUCT__entry( 564 __field(unsigned int, !! 409 __field(struct rxrpc_connection *, conn ) 565 __field(int, !! 410 __field(int, op ) 566 __field(int, !! 411 __field(int, usage ) 567 __field(int, !! 412 __field(const void *, where ) 568 ), 413 ), 569 414 570 TP_fast_assign( 415 TP_fast_assign( 571 __entry->local = local_deb !! 416 __entry->conn = conn; 572 __entry->op = op; 417 __entry->op = op; 573 __entry->ref = ref; << 574 __entry->usage = usage; 418 __entry->usage = usage; >> 419 __entry->where = where; 575 ), 420 ), 576 421 577 TP_printk("L=%08x %s r=%d u=%d", !! 422 TP_printk("C=%p %s u=%d sp=%pSR", 578 __entry->local, << 579 __print_symbolic(__entry << 580 __entry->ref, << 581 __entry->usage) << 582 ); << 583 << 584 TRACE_EVENT(rxrpc_peer, << 585 TP_PROTO(unsigned int peer_debug_i << 586 << 587 TP_ARGS(peer_debug_id, ref, why), << 588 << 589 TP_STRUCT__entry( << 590 __field(unsigned int, << 591 __field(int, << 592 __field(enum rxrpc_peer_tr << 593 ), << 594 << 595 TP_fast_assign( << 596 __entry->peer = peer_debug << 597 __entry->ref = ref; << 598 __entry->why = why; << 599 ), << 600 << 601 TP_printk("P=%08x %s r=%d", << 602 __entry->peer, << 603 __print_symbolic(__entry << 604 __entry->ref) << 605 ); << 606 << 607 TRACE_EVENT(rxrpc_bundle, << 608 TP_PROTO(unsigned int bundle_debug << 609 << 610 TP_ARGS(bundle_debug_id, ref, why) << 611 << 612 TP_STRUCT__entry( << 613 __field(unsigned int, << 614 __field(int, << 615 __field(int, << 616 ), << 617 << 618 TP_fast_assign( << 619 __entry->bundle = bundle_d << 620 __entry->ref = ref; << 621 __entry->why = why; << 622 ), << 623 << 624 TP_printk("CB=%08x %s r=%d", << 625 __entry->bundle, << 626 __print_symbolic(__entry << 627 __entry->ref) << 628 ); << 629 << 630 TRACE_EVENT(rxrpc_conn, << 631 TP_PROTO(unsigned int conn_debug_i << 632 << 633 TP_ARGS(conn_debug_id, ref, why), << 634 << 635 TP_STRUCT__entry( << 636 __field(unsigned int, << 637 __field(int, << 638 __field(int, << 639 ), << 640 << 641 TP_fast_assign( << 642 __entry->conn = conn_debug << 643 __entry->ref = ref; << 644 __entry->why = why; << 645 ), << 646 << 647 TP_printk("C=%08x %s r=%d", << 648 __entry->conn, 423 __entry->conn, 649 __print_symbolic(__entry !! 424 __print_symbolic(__entry->op, rxrpc_conn_traces), 650 __entry->ref) !! 425 __entry->usage, >> 426 __entry->where) 651 ); 427 ); 652 428 653 TRACE_EVENT(rxrpc_client, 429 TRACE_EVENT(rxrpc_client, 654 TP_PROTO(struct rxrpc_connection * 430 TP_PROTO(struct rxrpc_connection *conn, int channel, 655 enum rxrpc_client_trace o 431 enum rxrpc_client_trace op), 656 432 657 TP_ARGS(conn, channel, op), 433 TP_ARGS(conn, channel, op), 658 434 659 TP_STRUCT__entry( 435 TP_STRUCT__entry( 660 __field(unsigned int, !! 436 __field(struct rxrpc_connection *, conn ) 661 __field(u32, !! 437 __field(u32, cid ) 662 __field(int, !! 438 __field(int, channel ) 663 __field(int, !! 439 __field(int, usage ) 664 __field(enum rxrpc_client_ !! 440 __field(enum rxrpc_client_trace, op ) >> 441 __field(enum rxrpc_conn_cache_state, cs ) 665 ), 442 ), 666 443 667 TP_fast_assign( 444 TP_fast_assign( 668 __entry->conn = conn ? con !! 445 __entry->conn = conn; 669 __entry->channel = channel 446 __entry->channel = channel; 670 __entry->usage = conn ? re !! 447 __entry->usage = atomic_read(&conn->usage); 671 __entry->op = op; 448 __entry->op = op; 672 __entry->cid = conn ? conn !! 449 __entry->cid = conn->proto.cid; >> 450 __entry->cs = conn->cache_state; 673 ), 451 ), 674 452 675 TP_printk("C=%08x h=%2d %s i=%08x !! 453 TP_printk("C=%p h=%2d %s %s i=%08x u=%d", 676 __entry->conn, 454 __entry->conn, 677 __entry->channel, 455 __entry->channel, 678 __print_symbolic(__entry 456 __print_symbolic(__entry->op, rxrpc_client_traces), >> 457 __print_symbolic(__entry->cs, rxrpc_conn_cache_states), 679 __entry->cid, 458 __entry->cid, 680 __entry->usage) 459 __entry->usage) 681 ); 460 ); 682 461 683 TRACE_EVENT(rxrpc_call, 462 TRACE_EVENT(rxrpc_call, 684 TP_PROTO(unsigned int call_debug_i !! 463 TP_PROTO(struct rxrpc_call *call, enum rxrpc_call_trace op, 685 enum rxrpc_call_trace why !! 464 int usage, const void *where, const void *aux), 686 465 687 TP_ARGS(call_debug_id, ref, aux, w !! 466 TP_ARGS(call, op, usage, where, aux), 688 467 689 TP_STRUCT__entry( 468 TP_STRUCT__entry( 690 __field(unsigned int, !! 469 __field(struct rxrpc_call *, call ) 691 __field(int, !! 470 __field(int, op ) 692 __field(int, !! 471 __field(int, usage ) 693 __field(unsigned long, !! 472 __field(const void *, where ) >> 473 __field(const void *, aux ) 694 ), 474 ), 695 475 696 TP_fast_assign( 476 TP_fast_assign( 697 __entry->call = call_debug !! 477 __entry->call = call; 698 __entry->ref = ref; !! 478 __entry->op = op; 699 __entry->why = why; !! 479 __entry->usage = usage; >> 480 __entry->where = where; 700 __entry->aux = aux; 481 __entry->aux = aux; 701 ), 482 ), 702 483 703 TP_printk("c=%08x %s r=%d a=%lx", !! 484 TP_printk("c=%p %s u=%d sp=%pSR a=%p", 704 __entry->call, 485 __entry->call, 705 __print_symbolic(__entry !! 486 __print_symbolic(__entry->op, rxrpc_call_traces), 706 __entry->ref, !! 487 __entry->usage, >> 488 __entry->where, 707 __entry->aux) 489 __entry->aux) 708 ); 490 ); 709 491 710 TRACE_EVENT(rxrpc_skb, 492 TRACE_EVENT(rxrpc_skb, 711 TP_PROTO(struct sk_buff *skb, int !! 493 TP_PROTO(struct sk_buff *skb, enum rxrpc_skb_trace op, 712 enum rxrpc_skb_trace why) !! 494 int usage, int mod_count, const void *where), 713 495 714 TP_ARGS(skb, usage, mod_count, why !! 496 TP_ARGS(skb, op, usage, mod_count, where), 715 497 716 TP_STRUCT__entry( 498 TP_STRUCT__entry( 717 __field(struct sk_buff *, !! 499 __field(struct sk_buff *, skb ) 718 __field(int, !! 500 __field(enum rxrpc_skb_trace, op ) 719 __field(int, !! 501 __field(int, usage ) 720 __field(enum rxrpc_skb_tra !! 502 __field(int, mod_count ) >> 503 __field(const void *, where ) 721 ), 504 ), 722 505 723 TP_fast_assign( 506 TP_fast_assign( 724 __entry->skb = skb; 507 __entry->skb = skb; >> 508 __entry->op = op; 725 __entry->usage = usage; 509 __entry->usage = usage; 726 __entry->mod_count = mod_c 510 __entry->mod_count = mod_count; 727 __entry->why = why; !! 511 __entry->where = where; 728 ), 512 ), 729 513 730 TP_printk("s=%p Rx %s u=%d m=%d", !! 514 TP_printk("s=%p %s u=%d m=%d p=%pSR", 731 __entry->skb, 515 __entry->skb, 732 __print_symbolic(__entry !! 516 __print_symbolic(__entry->op, rxrpc_skb_traces), 733 __entry->usage, 517 __entry->usage, 734 __entry->mod_count) !! 518 __entry->mod_count, >> 519 __entry->where) 735 ); 520 ); 736 521 737 TRACE_EVENT(rxrpc_rx_packet, 522 TRACE_EVENT(rxrpc_rx_packet, 738 TP_PROTO(struct rxrpc_skb_priv *sp 523 TP_PROTO(struct rxrpc_skb_priv *sp), 739 524 740 TP_ARGS(sp), 525 TP_ARGS(sp), 741 526 742 TP_STRUCT__entry( 527 TP_STRUCT__entry( 743 __field_struct(struct rxrp !! 528 __field_struct(struct rxrpc_host_header, hdr ) 744 ), 529 ), 745 530 746 TP_fast_assign( 531 TP_fast_assign( 747 memcpy(&__entry->hdr, &sp- 532 memcpy(&__entry->hdr, &sp->hdr, sizeof(__entry->hdr)); 748 ), 533 ), 749 534 750 TP_printk("%08x:%08x:%08x:%04x %08 535 TP_printk("%08x:%08x:%08x:%04x %08x %08x %02x %02x %s", 751 __entry->hdr.epoch, __en 536 __entry->hdr.epoch, __entry->hdr.cid, 752 __entry->hdr.callNumber, 537 __entry->hdr.callNumber, __entry->hdr.serviceId, 753 __entry->hdr.serial, __e 538 __entry->hdr.serial, __entry->hdr.seq, 754 __entry->hdr.securityInd !! 539 __entry->hdr.type, __entry->hdr.flags, 755 __print_symbolic(__entry !! 540 __entry->hdr.type <= 15 ? >> 541 __print_symbolic(__entry->hdr.type, rxrpc_pkts) : "?UNK") 756 ); 542 ); 757 543 758 TRACE_EVENT(rxrpc_rx_done, 544 TRACE_EVENT(rxrpc_rx_done, 759 TP_PROTO(int result, int abort_cod 545 TP_PROTO(int result, int abort_code), 760 546 761 TP_ARGS(result, abort_code), 547 TP_ARGS(result, abort_code), 762 548 763 TP_STRUCT__entry( 549 TP_STRUCT__entry( 764 __field(int, result !! 550 __field(int, result ) 765 __field(int, abort_ !! 551 __field(int, abort_code ) 766 ), 552 ), 767 553 768 TP_fast_assign( 554 TP_fast_assign( 769 __entry->result = result; 555 __entry->result = result; 770 __entry->abort_code = abor 556 __entry->abort_code = abort_code; 771 ), 557 ), 772 558 773 TP_printk("r=%d a=%d", __entry->re 559 TP_printk("r=%d a=%d", __entry->result, __entry->abort_code) 774 ); 560 ); 775 561 776 TRACE_EVENT(rxrpc_abort, 562 TRACE_EVENT(rxrpc_abort, 777 TP_PROTO(unsigned int call_nr, enu !! 563 TP_PROTO(const char *why, u32 cid, u32 call_id, rxrpc_seq_t seq, 778 u32 cid, u32 call_id, rxr !! 564 int abort_code, int error), 779 565 780 TP_ARGS(call_nr, why, cid, call_id !! 566 TP_ARGS(why, cid, call_id, seq, abort_code, error), 781 567 782 TP_STRUCT__entry( 568 TP_STRUCT__entry( 783 __field(unsigned int, !! 569 __array(char, why, 4 ) 784 __field(enum rxrpc_abort_r !! 570 __field(u32, cid ) 785 __field(u32, !! 571 __field(u32, call_id ) 786 __field(u32, !! 572 __field(rxrpc_seq_t, seq ) 787 __field(rxrpc_seq_t, !! 573 __field(int, abort_code ) 788 __field(int, !! 574 __field(int, error ) 789 __field(int, << 790 ), 575 ), 791 576 792 TP_fast_assign( 577 TP_fast_assign( 793 __entry->call_nr = call_nr !! 578 memcpy(__entry->why, why, 4); 794 __entry->why = why; << 795 __entry->cid = cid; 579 __entry->cid = cid; 796 __entry->call_id = call_id 580 __entry->call_id = call_id; 797 __entry->abort_code = abor 581 __entry->abort_code = abort_code; 798 __entry->error = error; 582 __entry->error = error; 799 __entry->seq = seq; 583 __entry->seq = seq; 800 ), 584 ), 801 585 802 TP_printk("c=%08x %08x:%08x s=%u a !! 586 TP_printk("%08x:%08x s=%u a=%d e=%d %s", 803 __entry->call_nr, << 804 __entry->cid, __entry->c 587 __entry->cid, __entry->call_id, __entry->seq, 805 __entry->abort_code, __e !! 588 __entry->abort_code, __entry->error, __entry->why) 806 __print_symbolic(__entry << 807 ); 589 ); 808 590 809 TRACE_EVENT(rxrpc_call_complete, !! 591 TRACE_EVENT(rxrpc_transmit, 810 TP_PROTO(struct rxrpc_call *call), !! 592 TP_PROTO(struct rxrpc_call *call, enum rxrpc_transmit_trace why), 811 << 812 TP_ARGS(call), << 813 << 814 TP_STRUCT__entry( << 815 __field(unsigned int, << 816 __field(enum rxrpc_call_co << 817 __field(int, << 818 __field(u32, << 819 ), << 820 << 821 TP_fast_assign( << 822 __entry->call = call->debu << 823 __entry->compl = call->com << 824 __entry->error = call->err << 825 __entry->abort_code = call << 826 ), << 827 << 828 TP_printk("c=%08x %s r=%d ac=%d", << 829 __entry->call, << 830 __print_symbolic(__entry << 831 __entry->error, << 832 __entry->abort_code) << 833 ); << 834 << 835 TRACE_EVENT(rxrpc_txqueue, << 836 TP_PROTO(struct rxrpc_call *call, << 837 593 838 TP_ARGS(call, why), 594 TP_ARGS(call, why), 839 595 840 TP_STRUCT__entry( 596 TP_STRUCT__entry( 841 __field(unsigned int, !! 597 __field(struct rxrpc_call *, call ) 842 __field(enum rxrpc_txqueue !! 598 __field(enum rxrpc_transmit_trace, why ) 843 __field(rxrpc_seq_t, !! 599 __field(rxrpc_seq_t, tx_hard_ack ) 844 __field(rxrpc_seq_t, !! 600 __field(rxrpc_seq_t, tx_top ) 845 __field(rxrpc_seq_t, !! 601 __field(int, tx_winsize ) 846 __field(rxrpc_seq_t, << 847 __field(int, << 848 ), 602 ), 849 603 850 TP_fast_assign( 604 TP_fast_assign( 851 __entry->call = call->debu !! 605 __entry->call = call; 852 __entry->why = why; 606 __entry->why = why; 853 __entry->acks_hard_ack = c !! 607 __entry->tx_hard_ack = call->tx_hard_ack; 854 __entry->tx_bottom = call- << 855 __entry->tx_top = call->tx 608 __entry->tx_top = call->tx_top; 856 __entry->tx_prepared = cal << 857 __entry->tx_winsize = call 609 __entry->tx_winsize = call->tx_winsize; 858 ), 610 ), 859 611 860 TP_printk("c=%08x %s f=%08x h=%08x !! 612 TP_printk("c=%p %s f=%08x n=%u/%u", 861 __entry->call, 613 __entry->call, 862 __print_symbolic(__entry !! 614 __print_symbolic(__entry->why, rxrpc_transmit_traces), 863 __entry->tx_bottom, !! 615 __entry->tx_hard_ack + 1, 864 __entry->acks_hard_ack, !! 616 __entry->tx_top - __entry->tx_hard_ack, 865 __entry->tx_top - __entr << 866 __entry->tx_top - __entr << 867 __entry->tx_prepared - _ << 868 __entry->tx_winsize) 617 __entry->tx_winsize) 869 ); 618 ); 870 619 871 TRACE_EVENT(rxrpc_rx_data, 620 TRACE_EVENT(rxrpc_rx_data, 872 TP_PROTO(unsigned int call, rxrpc_ !! 621 TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, 873 rxrpc_serial_t serial, u8 !! 622 rxrpc_serial_t serial, u8 flags, u8 anno), 874 623 875 TP_ARGS(call, seq, serial, flags), !! 624 TP_ARGS(call, seq, serial, flags, anno), 876 625 877 TP_STRUCT__entry( 626 TP_STRUCT__entry( 878 __field(unsigned int, !! 627 __field(struct rxrpc_call *, call ) 879 __field(rxrpc_seq_t, !! 628 __field(rxrpc_seq_t, seq ) 880 __field(rxrpc_serial_t, !! 629 __field(rxrpc_serial_t, serial ) 881 __field(u8, !! 630 __field(u8, flags ) >> 631 __field(u8, anno ) 882 ), 632 ), 883 633 884 TP_fast_assign( 634 TP_fast_assign( 885 __entry->call = call; 635 __entry->call = call; 886 __entry->seq = seq; 636 __entry->seq = seq; 887 __entry->serial = serial; 637 __entry->serial = serial; 888 __entry->flags = flags; 638 __entry->flags = flags; >> 639 __entry->anno = anno; 889 ), 640 ), 890 641 891 TP_printk("c=%08x DATA %08x q=%08x !! 642 TP_printk("c=%p DATA %08x q=%08x fl=%02x a=%02x", 892 __entry->call, 643 __entry->call, 893 __entry->serial, 644 __entry->serial, 894 __entry->seq, 645 __entry->seq, 895 __entry->flags) !! 646 __entry->flags, >> 647 __entry->anno) 896 ); 648 ); 897 649 898 TRACE_EVENT(rxrpc_rx_ack, 650 TRACE_EVENT(rxrpc_rx_ack, 899 TP_PROTO(struct rxrpc_call *call, 651 TP_PROTO(struct rxrpc_call *call, 900 rxrpc_serial_t serial, rx 652 rxrpc_serial_t serial, rxrpc_serial_t ack_serial, 901 rxrpc_seq_t first, rxrpc_ 653 rxrpc_seq_t first, rxrpc_seq_t prev, u8 reason, u8 n_acks), 902 654 903 TP_ARGS(call, serial, ack_serial, 655 TP_ARGS(call, serial, ack_serial, first, prev, reason, n_acks), 904 656 905 TP_STRUCT__entry( 657 TP_STRUCT__entry( 906 __field(unsigned int, !! 658 __field(struct rxrpc_call *, call ) 907 __field(rxrpc_serial_t, !! 659 __field(rxrpc_serial_t, serial ) 908 __field(rxrpc_serial_t, !! 660 __field(rxrpc_serial_t, ack_serial ) 909 __field(rxrpc_seq_t, !! 661 __field(rxrpc_seq_t, first ) 910 __field(rxrpc_seq_t, !! 662 __field(rxrpc_seq_t, prev ) 911 __field(u8, !! 663 __field(u8, reason ) 912 __field(u8, !! 664 __field(u8, n_acks ) 913 ), 665 ), 914 666 915 TP_fast_assign( 667 TP_fast_assign( 916 __entry->call = call->debu !! 668 __entry->call = call; 917 __entry->serial = serial; 669 __entry->serial = serial; 918 __entry->ack_serial = ack_ 670 __entry->ack_serial = ack_serial; 919 __entry->first = first; 671 __entry->first = first; 920 __entry->prev = prev; 672 __entry->prev = prev; 921 __entry->reason = reason; 673 __entry->reason = reason; 922 __entry->n_acks = n_acks; 674 __entry->n_acks = n_acks; 923 ), 675 ), 924 676 925 TP_printk("c=%08x %08x %s r=%08x f !! 677 TP_printk("c=%p %08x %s r=%08x f=%08x p=%08x n=%u", 926 __entry->call, 678 __entry->call, 927 __entry->serial, 679 __entry->serial, 928 __print_symbolic(__entry 680 __print_symbolic(__entry->reason, rxrpc_ack_names), 929 __entry->ack_serial, 681 __entry->ack_serial, 930 __entry->first, 682 __entry->first, 931 __entry->prev, 683 __entry->prev, 932 __entry->n_acks) 684 __entry->n_acks) 933 ); 685 ); 934 686 935 TRACE_EVENT(rxrpc_rx_abort, 687 TRACE_EVENT(rxrpc_rx_abort, 936 TP_PROTO(struct rxrpc_call *call, 688 TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t serial, 937 u32 abort_code), 689 u32 abort_code), 938 690 939 TP_ARGS(call, serial, abort_code), 691 TP_ARGS(call, serial, abort_code), 940 692 941 TP_STRUCT__entry( 693 TP_STRUCT__entry( 942 __field(unsigned int, !! 694 __field(struct rxrpc_call *, call ) 943 __field(rxrpc_serial_t, !! 695 __field(rxrpc_serial_t, serial ) 944 __field(u32, !! 696 __field(u32, abort_code ) 945 ), 697 ), 946 698 947 TP_fast_assign( 699 TP_fast_assign( 948 __entry->call = call->debu !! 700 __entry->call = call; 949 __entry->serial = serial; 701 __entry->serial = serial; 950 __entry->abort_code = abor 702 __entry->abort_code = abort_code; 951 ), 703 ), 952 704 953 TP_printk("c=%08x ABORT %08x ac=%d !! 705 TP_printk("c=%p ABORT %08x ac=%d", 954 __entry->call, 706 __entry->call, 955 __entry->serial, 707 __entry->serial, 956 __entry->abort_code) 708 __entry->abort_code) 957 ); 709 ); 958 710 959 TRACE_EVENT(rxrpc_rx_challenge, << 960 TP_PROTO(struct rxrpc_connection * << 961 u32 version, u32 nonce, u << 962 << 963 TP_ARGS(conn, serial, version, non << 964 << 965 TP_STRUCT__entry( << 966 __field(unsigned int, << 967 __field(rxrpc_serial_t, << 968 __field(u32, << 969 __field(u32, << 970 __field(u32, << 971 ), << 972 << 973 TP_fast_assign( << 974 __entry->conn = conn->debu << 975 __entry->serial = serial; << 976 __entry->version = version << 977 __entry->nonce = nonce; << 978 __entry->min_level = min_l << 979 ), << 980 << 981 TP_printk("C=%08x CHALLENGE %08x v << 982 __entry->conn, << 983 __entry->serial, << 984 __entry->version, << 985 __entry->nonce, << 986 __entry->min_level) << 987 ); << 988 << 989 TRACE_EVENT(rxrpc_rx_response, << 990 TP_PROTO(struct rxrpc_connection * << 991 u32 version, u32 kvno, u3 << 992 << 993 TP_ARGS(conn, serial, version, kvn << 994 << 995 TP_STRUCT__entry( << 996 __field(unsigned int, << 997 __field(rxrpc_serial_t, << 998 __field(u32, << 999 __field(u32, << 1000 __field(u32, << 1001 ), << 1002 << 1003 TP_fast_assign( << 1004 __entry->conn = conn->deb << 1005 __entry->serial = serial; << 1006 __entry->version = versio << 1007 __entry->kvno = kvno; << 1008 __entry->ticket_len = tic << 1009 ), << 1010 << 1011 TP_printk("C=%08x RESPONSE %08x v << 1012 __entry->conn, << 1013 __entry->serial, << 1014 __entry->version, << 1015 __entry->kvno, << 1016 __entry->ticket_len) << 1017 ); << 1018 << 1019 TRACE_EVENT(rxrpc_rx_rwind_change, 711 TRACE_EVENT(rxrpc_rx_rwind_change, 1020 TP_PROTO(struct rxrpc_call *call, 712 TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t serial, 1021 u32 rwind, bool wake), 713 u32 rwind, bool wake), 1022 714 1023 TP_ARGS(call, serial, rwind, wake 715 TP_ARGS(call, serial, rwind, wake), 1024 716 1025 TP_STRUCT__entry( 717 TP_STRUCT__entry( 1026 __field(unsigned int, !! 718 __field(struct rxrpc_call *, call ) 1027 __field(rxrpc_serial_t, !! 719 __field(rxrpc_serial_t, serial ) 1028 __field(u32, !! 720 __field(u32, rwind ) 1029 __field(bool, !! 721 __field(bool, wake ) 1030 ), 722 ), 1031 723 1032 TP_fast_assign( 724 TP_fast_assign( 1033 __entry->call = call->deb !! 725 __entry->call = call; 1034 __entry->serial = serial; 726 __entry->serial = serial; 1035 __entry->rwind = rwind; 727 __entry->rwind = rwind; 1036 __entry->wake = wake; 728 __entry->wake = wake; 1037 ), 729 ), 1038 730 1039 TP_printk("c=%08x %08x rw=%u%s", !! 731 TP_printk("c=%p %08x rw=%u%s", 1040 __entry->call, 732 __entry->call, 1041 __entry->serial, 733 __entry->serial, 1042 __entry->rwind, 734 __entry->rwind, 1043 __entry->wake ? " wake" 735 __entry->wake ? " wake" : "") 1044 ); 736 ); 1045 737 1046 TRACE_EVENT(rxrpc_tx_packet, << 1047 TP_PROTO(unsigned int call_id, st << 1048 enum rxrpc_tx_point wher << 1049 << 1050 TP_ARGS(call_id, whdr, where), << 1051 << 1052 TP_STRUCT__entry( << 1053 __field(unsigned int, << 1054 __field(enum rxrpc_tx_poi << 1055 __field_struct(struct rxr << 1056 ), << 1057 << 1058 TP_fast_assign( << 1059 __entry->call = call_id; << 1060 memcpy(&__entry->whdr, wh << 1061 __entry->where = where; << 1062 ), << 1063 << 1064 TP_printk("c=%08x %08x:%08x:%08x: << 1065 __entry->call, << 1066 ntohl(__entry->whdr.epo << 1067 ntohl(__entry->whdr.cid << 1068 ntohl(__entry->whdr.cal << 1069 ntohs(__entry->whdr.ser << 1070 ntohl(__entry->whdr.ser << 1071 ntohl(__entry->whdr.seq << 1072 __entry->whdr.type, __e << 1073 __entry->whdr.type <= 1 << 1074 __print_symbolic(__entr << 1075 __print_symbolic(__entr << 1076 ); << 1077 << 1078 TRACE_EVENT(rxrpc_tx_data, 738 TRACE_EVENT(rxrpc_tx_data, 1079 TP_PROTO(struct rxrpc_call *call, 739 TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, 1080 rxrpc_serial_t serial, u !! 740 rxrpc_serial_t serial, u8 flags, bool retrans, bool lose), 1081 741 1082 TP_ARGS(call, seq, serial, flags, !! 742 TP_ARGS(call, seq, serial, flags, retrans, lose), 1083 743 1084 TP_STRUCT__entry( 744 TP_STRUCT__entry( 1085 __field(unsigned int, !! 745 __field(struct rxrpc_call *, call ) 1086 __field(rxrpc_seq_t, !! 746 __field(rxrpc_seq_t, seq ) 1087 __field(rxrpc_serial_t, !! 747 __field(rxrpc_serial_t, serial ) 1088 __field(u32, !! 748 __field(u8, flags ) 1089 __field(u32, !! 749 __field(bool, retrans ) 1090 __field(u16, !! 750 __field(bool, lose ) 1091 __field(bool, << 1092 ), 751 ), 1093 752 1094 TP_fast_assign( 753 TP_fast_assign( 1095 __entry->call = call->deb !! 754 __entry->call = call; 1096 __entry->cid = call->cid; << 1097 __entry->call_id = call-> << 1098 __entry->seq = seq; 755 __entry->seq = seq; 1099 __entry->serial = serial; 756 __entry->serial = serial; 1100 __entry->flags = flags; 757 __entry->flags = flags; >> 758 __entry->retrans = retrans; 1101 __entry->lose = lose; 759 __entry->lose = lose; 1102 ), 760 ), 1103 761 1104 TP_printk("c=%08x DATA %08x:%08x !! 762 TP_printk("c=%p DATA %08x q=%08x fl=%02x%s%s", 1105 __entry->call, 763 __entry->call, 1106 __entry->cid, << 1107 __entry->call_id, << 1108 __entry->serial, 764 __entry->serial, 1109 __entry->seq, 765 __entry->seq, 1110 __entry->flags & RXRPC_ !! 766 __entry->flags, 1111 __entry->flags & RXRPC_ !! 767 __entry->retrans ? " *RETRANS*" : "", 1112 __entry->lose ? " *LOSE 768 __entry->lose ? " *LOSE*" : "") 1113 ); 769 ); 1114 770 1115 TRACE_EVENT(rxrpc_tx_ack, 771 TRACE_EVENT(rxrpc_tx_ack, 1116 TP_PROTO(unsigned int call, rxrpc !! 772 TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t serial, 1117 rxrpc_seq_t ack_first, r 773 rxrpc_seq_t ack_first, rxrpc_serial_t ack_serial, 1118 u8 reason, u8 n_acks, u1 !! 774 u8 reason, u8 n_acks), 1119 775 1120 TP_ARGS(call, serial, ack_first, !! 776 TP_ARGS(call, serial, ack_first, ack_serial, reason, n_acks), 1121 777 1122 TP_STRUCT__entry( 778 TP_STRUCT__entry( 1123 __field(unsigned int, !! 779 __field(struct rxrpc_call *, call ) 1124 __field(rxrpc_serial_t, !! 780 __field(rxrpc_serial_t, serial ) 1125 __field(rxrpc_seq_t, !! 781 __field(rxrpc_seq_t, ack_first ) 1126 __field(rxrpc_serial_t, !! 782 __field(rxrpc_serial_t, ack_serial ) 1127 __field(u8, !! 783 __field(u8, reason ) 1128 __field(u8, !! 784 __field(u8, n_acks ) 1129 __field(u16, << 1130 ), 785 ), 1131 786 1132 TP_fast_assign( 787 TP_fast_assign( 1133 __entry->call = call; 788 __entry->call = call; 1134 __entry->serial = serial; 789 __entry->serial = serial; 1135 __entry->ack_first = ack_ 790 __entry->ack_first = ack_first; 1136 __entry->ack_serial = ack 791 __entry->ack_serial = ack_serial; 1137 __entry->reason = reason; 792 __entry->reason = reason; 1138 __entry->n_acks = n_acks; 793 __entry->n_acks = n_acks; 1139 __entry->rwind = rwind; << 1140 ), 794 ), 1141 795 1142 TP_printk(" c=%08x ACK %08x %s f !! 796 TP_printk(" c=%p ACK %08x %s f=%08x r=%08x n=%u", 1143 __entry->call, 797 __entry->call, 1144 __entry->serial, 798 __entry->serial, 1145 __print_symbolic(__entr 799 __print_symbolic(__entry->reason, rxrpc_ack_names), 1146 __entry->ack_first, 800 __entry->ack_first, 1147 __entry->ack_serial, 801 __entry->ack_serial, 1148 __entry->n_acks, !! 802 __entry->n_acks) 1149 __entry->rwind) << 1150 ); 803 ); 1151 804 1152 TRACE_EVENT(rxrpc_receive, 805 TRACE_EVENT(rxrpc_receive, 1153 TP_PROTO(struct rxrpc_call *call, 806 TP_PROTO(struct rxrpc_call *call, enum rxrpc_receive_trace why, 1154 rxrpc_serial_t serial, r 807 rxrpc_serial_t serial, rxrpc_seq_t seq), 1155 808 1156 TP_ARGS(call, why, serial, seq), 809 TP_ARGS(call, why, serial, seq), 1157 810 1158 TP_STRUCT__entry( 811 TP_STRUCT__entry( 1159 __field(unsigned int, !! 812 __field(struct rxrpc_call *, call ) 1160 __field(enum rxrpc_receiv !! 813 __field(enum rxrpc_receive_trace, why ) 1161 __field(rxrpc_serial_t, !! 814 __field(rxrpc_serial_t, serial ) 1162 __field(rxrpc_seq_t, !! 815 __field(rxrpc_seq_t, seq ) 1163 __field(rxrpc_seq_t, !! 816 __field(rxrpc_seq_t, hard_ack ) 1164 __field(rxrpc_seq_t, !! 817 __field(rxrpc_seq_t, top ) 1165 ), 818 ), 1166 819 1167 TP_fast_assign( 820 TP_fast_assign( 1168 __entry->call = call->deb !! 821 __entry->call = call; 1169 __entry->why = why; 822 __entry->why = why; 1170 __entry->serial = serial; 823 __entry->serial = serial; 1171 __entry->seq = seq; 824 __entry->seq = seq; 1172 __entry->window = call->a !! 825 __entry->hard_ack = call->rx_hard_ack; 1173 __entry->wtop = call->ack !! 826 __entry->top = call->rx_top; 1174 ), 827 ), 1175 828 1176 TP_printk("c=%08x %s r=%08x q=%08 !! 829 TP_printk("c=%p %s r=%08x q=%08x w=%08x-%08x", 1177 __entry->call, 830 __entry->call, 1178 __print_symbolic(__entr 831 __print_symbolic(__entry->why, rxrpc_receive_traces), 1179 __entry->serial, 832 __entry->serial, 1180 __entry->seq, 833 __entry->seq, 1181 __entry->window, !! 834 __entry->hard_ack, 1182 __entry->wtop) !! 835 __entry->top) 1183 ); 836 ); 1184 837 1185 TRACE_EVENT(rxrpc_recvmsg, 838 TRACE_EVENT(rxrpc_recvmsg, 1186 TP_PROTO(unsigned int call_debug_ << 1187 int ret), << 1188 << 1189 TP_ARGS(call_debug_id, why, ret), << 1190 << 1191 TP_STRUCT__entry( << 1192 __field(unsigned int, << 1193 __field(enum rxrpc_recvms << 1194 __field(int, << 1195 ), << 1196 << 1197 TP_fast_assign( << 1198 __entry->call = call_debu << 1199 __entry->why = why; << 1200 __entry->ret = ret; << 1201 ), << 1202 << 1203 TP_printk("c=%08x %s ret=%d", << 1204 __entry->call, << 1205 __print_symbolic(__entr << 1206 __entry->ret) << 1207 ); << 1208 << 1209 TRACE_EVENT(rxrpc_recvdata, << 1210 TP_PROTO(struct rxrpc_call *call, 839 TP_PROTO(struct rxrpc_call *call, enum rxrpc_recvmsg_trace why, 1211 rxrpc_seq_t seq, unsigne 840 rxrpc_seq_t seq, unsigned int offset, unsigned int len, 1212 int ret), 841 int ret), 1213 842 1214 TP_ARGS(call, why, seq, offset, l 843 TP_ARGS(call, why, seq, offset, len, ret), 1215 844 1216 TP_STRUCT__entry( 845 TP_STRUCT__entry( 1217 __field(unsigned int, !! 846 __field(struct rxrpc_call *, call ) 1218 __field(enum rxrpc_recvms !! 847 __field(enum rxrpc_recvmsg_trace, why ) 1219 __field(rxrpc_seq_t, !! 848 __field(rxrpc_seq_t, seq ) 1220 __field(unsigned int, !! 849 __field(unsigned int, offset ) 1221 __field(unsigned int, !! 850 __field(unsigned int, len ) 1222 __field(int, !! 851 __field(int, ret ) 1223 ), 852 ), 1224 853 1225 TP_fast_assign( 854 TP_fast_assign( 1226 __entry->call = call ? ca !! 855 __entry->call = call; 1227 __entry->why = why; 856 __entry->why = why; 1228 __entry->seq = seq; 857 __entry->seq = seq; 1229 __entry->offset = offset; 858 __entry->offset = offset; 1230 __entry->len = len; 859 __entry->len = len; 1231 __entry->ret = ret; 860 __entry->ret = ret; 1232 ), 861 ), 1233 862 1234 TP_printk("c=%08x %s q=%08x o=%u !! 863 TP_printk("c=%p %s q=%08x o=%u l=%u ret=%d", 1235 __entry->call, 864 __entry->call, 1236 __print_symbolic(__entr 865 __print_symbolic(__entry->why, rxrpc_recvmsg_traces), 1237 __entry->seq, 866 __entry->seq, 1238 __entry->offset, 867 __entry->offset, 1239 __entry->len, 868 __entry->len, 1240 __entry->ret) 869 __entry->ret) 1241 ); 870 ); 1242 871 1243 TRACE_EVENT(rxrpc_rtt_tx, 872 TRACE_EVENT(rxrpc_rtt_tx, 1244 TP_PROTO(struct rxrpc_call *call, 873 TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_tx_trace why, 1245 int slot, rxrpc_serial_t !! 874 rxrpc_serial_t send_serial), 1246 875 1247 TP_ARGS(call, why, slot, send_ser !! 876 TP_ARGS(call, why, send_serial), 1248 877 1249 TP_STRUCT__entry( 878 TP_STRUCT__entry( 1250 __field(unsigned int, !! 879 __field(struct rxrpc_call *, call ) 1251 __field(enum rxrpc_rtt_tx !! 880 __field(enum rxrpc_rtt_tx_trace, why ) 1252 __field(int, !! 881 __field(rxrpc_serial_t, send_serial ) 1253 __field(rxrpc_serial_t, << 1254 ), 882 ), 1255 883 1256 TP_fast_assign( 884 TP_fast_assign( 1257 __entry->call = call->deb !! 885 __entry->call = call; 1258 __entry->why = why; 886 __entry->why = why; 1259 __entry->slot = slot; << 1260 __entry->send_serial = se 887 __entry->send_serial = send_serial; 1261 ), 888 ), 1262 889 1263 TP_printk("c=%08x [%d] %s sr=%08x !! 890 TP_printk("c=%p %s sr=%08x", 1264 __entry->call, 891 __entry->call, 1265 __entry->slot, << 1266 __print_symbolic(__entr 892 __print_symbolic(__entry->why, rxrpc_rtt_tx_traces), 1267 __entry->send_serial) 893 __entry->send_serial) 1268 ); 894 ); 1269 895 1270 TRACE_EVENT(rxrpc_rtt_rx, 896 TRACE_EVENT(rxrpc_rtt_rx, 1271 TP_PROTO(struct rxrpc_call *call, 897 TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_rx_trace why, 1272 int slot, << 1273 rxrpc_serial_t send_seri 898 rxrpc_serial_t send_serial, rxrpc_serial_t resp_serial, 1274 u32 rtt, u32 rto), !! 899 s64 rtt, u8 nr, s64 avg), 1275 900 1276 TP_ARGS(call, why, slot, send_ser !! 901 TP_ARGS(call, why, send_serial, resp_serial, rtt, nr, avg), 1277 902 1278 TP_STRUCT__entry( 903 TP_STRUCT__entry( 1279 __field(unsigned int, !! 904 __field(struct rxrpc_call *, call ) 1280 __field(enum rxrpc_rtt_rx !! 905 __field(enum rxrpc_rtt_rx_trace, why ) 1281 __field(int, !! 906 __field(u8, nr ) 1282 __field(rxrpc_serial_t, !! 907 __field(rxrpc_serial_t, send_serial ) 1283 __field(rxrpc_serial_t, !! 908 __field(rxrpc_serial_t, resp_serial ) 1284 __field(u32, !! 909 __field(s64, rtt ) 1285 __field(u32, !! 910 __field(u64, avg ) 1286 ), 911 ), 1287 912 1288 TP_fast_assign( 913 TP_fast_assign( 1289 __entry->call = call->deb !! 914 __entry->call = call; 1290 __entry->why = why; 915 __entry->why = why; 1291 __entry->slot = slot; << 1292 __entry->send_serial = se 916 __entry->send_serial = send_serial; 1293 __entry->resp_serial = re 917 __entry->resp_serial = resp_serial; 1294 __entry->rtt = rtt; 918 __entry->rtt = rtt; 1295 __entry->rto = rto; !! 919 __entry->nr = nr; >> 920 __entry->avg = avg; 1296 ), 921 ), 1297 922 1298 TP_printk("c=%08x [%d] %s sr=%08x !! 923 TP_printk("c=%p %s sr=%08x rr=%08x rtt=%lld nr=%u avg=%lld", 1299 __entry->call, 924 __entry->call, 1300 __entry->slot, << 1301 __print_symbolic(__entr 925 __print_symbolic(__entry->why, rxrpc_rtt_rx_traces), 1302 __entry->send_serial, 926 __entry->send_serial, 1303 __entry->resp_serial, 927 __entry->resp_serial, 1304 __entry->rtt, 928 __entry->rtt, 1305 __entry->rto) !! 929 __entry->nr, >> 930 __entry->avg) 1306 ); 931 ); 1307 932 1308 TRACE_EVENT(rxrpc_timer_set, !! 933 TRACE_EVENT(rxrpc_timer, 1309 TP_PROTO(struct rxrpc_call *call, !! 934 TP_PROTO(struct rxrpc_call *call, enum rxrpc_timer_trace why, 1310 enum rxrpc_timer_trace w !! 935 ktime_t now, unsigned long now_j), 1311 936 1312 TP_ARGS(call, delay, why), !! 937 TP_ARGS(call, why, now, now_j), 1313 938 1314 TP_STRUCT__entry( 939 TP_STRUCT__entry( 1315 __field(unsigned int, !! 940 __field(struct rxrpc_call *, call ) 1316 __field(enum rxrpc_timer_ !! 941 __field(enum rxrpc_timer_trace, why ) 1317 __field(ktime_t, !! 942 __field_struct(ktime_t, now ) >> 943 __field_struct(ktime_t, expire_at ) >> 944 __field_struct(ktime_t, ack_at ) >> 945 __field_struct(ktime_t, resend_at ) >> 946 __field(unsigned long, now_j ) >> 947 __field(unsigned long, timer ) 1318 ), 948 ), 1319 949 1320 TP_fast_assign( 950 TP_fast_assign( 1321 __entry->call !! 951 __entry->call = call; 1322 __entry->why !! 952 __entry->why = why; 1323 __entry->delay !! 953 __entry->now = now; 1324 ), !! 954 __entry->expire_at = call->expire_at; 1325 !! 955 __entry->ack_at = call->ack_at; 1326 TP_printk("c=%08x %s to=%lld", !! 956 __entry->resend_at = call->resend_at; 1327 __entry->call, !! 957 __entry->now_j = now_j; 1328 __print_symbolic(__entr !! 958 __entry->timer = call->timer.expires; 1329 ktime_to_us(__entry->de << 1330 ); << 1331 << 1332 TRACE_EVENT(rxrpc_timer_exp, << 1333 TP_PROTO(struct rxrpc_call *call, << 1334 enum rxrpc_timer_trace w << 1335 << 1336 TP_ARGS(call, delay, why), << 1337 << 1338 TP_STRUCT__entry( << 1339 __field(unsigned int, << 1340 __field(enum rxrpc_timer_ << 1341 __field(ktime_t, << 1342 ), << 1343 << 1344 TP_fast_assign( << 1345 __entry->call << 1346 __entry->why << 1347 __entry->delay << 1348 ), 959 ), 1349 960 1350 TP_printk("c=%08x %s to=%lld", !! 961 TP_printk("c=%p %s x=%lld a=%lld r=%lld t=%ld", 1351 __entry->call, 962 __entry->call, 1352 __print_symbolic(__entr 963 __print_symbolic(__entry->why, rxrpc_timer_traces), 1353 ktime_to_us(__entry->de !! 964 ktime_to_ns(ktime_sub(__entry->expire_at, __entry->now)), 1354 ); !! 965 ktime_to_ns(ktime_sub(__entry->ack_at, __entry->now)), 1355 !! 966 ktime_to_ns(ktime_sub(__entry->resend_at, __entry->now)), 1356 TRACE_EVENT(rxrpc_timer_can, !! 967 __entry->timer - __entry->now_j) 1357 TP_PROTO(struct rxrpc_call *call, << 1358 << 1359 TP_ARGS(call, why), << 1360 << 1361 TP_STRUCT__entry( << 1362 __field(unsigned int, << 1363 __field(enum rxrpc_timer_ << 1364 ), << 1365 << 1366 TP_fast_assign( << 1367 __entry->call << 1368 __entry->why << 1369 ), << 1370 << 1371 TP_printk("c=%08x %s", << 1372 __entry->call, << 1373 __print_symbolic(__entr << 1374 ); << 1375 << 1376 TRACE_EVENT(rxrpc_timer_restart, << 1377 TP_PROTO(struct rxrpc_call *call, << 1378 << 1379 TP_ARGS(call, delay, delayj), << 1380 << 1381 TP_STRUCT__entry( << 1382 __field(unsigned int, << 1383 __field(unsigned long, << 1384 __field(ktime_t, << 1385 ), << 1386 << 1387 TP_fast_assign( << 1388 __entry->call << 1389 __entry->delayj << 1390 __entry->delay << 1391 ), << 1392 << 1393 TP_printk("c=%08x to=%lld j=%ld", << 1394 __entry->call, << 1395 ktime_to_us(__entry->de << 1396 __entry->delayj) << 1397 ); << 1398 << 1399 TRACE_EVENT(rxrpc_timer_expired, << 1400 TP_PROTO(struct rxrpc_call *call) << 1401 << 1402 TP_ARGS(call), << 1403 << 1404 TP_STRUCT__entry( << 1405 __field(unsigned int, << 1406 ), << 1407 << 1408 TP_fast_assign( << 1409 __entry->call << 1410 ), << 1411 << 1412 TP_printk("c=%08x EXPIRED", << 1413 __entry->call) << 1414 ); 968 ); 1415 969 1416 TRACE_EVENT(rxrpc_rx_lose, 970 TRACE_EVENT(rxrpc_rx_lose, 1417 TP_PROTO(struct rxrpc_skb_priv *s 971 TP_PROTO(struct rxrpc_skb_priv *sp), 1418 972 1419 TP_ARGS(sp), 973 TP_ARGS(sp), 1420 974 1421 TP_STRUCT__entry( 975 TP_STRUCT__entry( 1422 __field_struct(struct rxr !! 976 __field_struct(struct rxrpc_host_header, hdr ) 1423 ), 977 ), 1424 978 1425 TP_fast_assign( 979 TP_fast_assign( 1426 memcpy(&__entry->hdr, &sp 980 memcpy(&__entry->hdr, &sp->hdr, sizeof(__entry->hdr)); 1427 ), 981 ), 1428 982 1429 TP_printk("%08x:%08x:%08x:%04x %0 983 TP_printk("%08x:%08x:%08x:%04x %08x %08x %02x %02x %s *LOSE*", 1430 __entry->hdr.epoch, __e 984 __entry->hdr.epoch, __entry->hdr.cid, 1431 __entry->hdr.callNumber 985 __entry->hdr.callNumber, __entry->hdr.serviceId, 1432 __entry->hdr.serial, __ 986 __entry->hdr.serial, __entry->hdr.seq, 1433 __entry->hdr.type, __en 987 __entry->hdr.type, __entry->hdr.flags, 1434 __entry->hdr.type <= 15 988 __entry->hdr.type <= 15 ? 1435 __print_symbolic(__entr 989 __print_symbolic(__entry->hdr.type, rxrpc_pkts) : "?UNK") 1436 ); 990 ); 1437 991 1438 TRACE_EVENT(rxrpc_propose_ack, 992 TRACE_EVENT(rxrpc_propose_ack, 1439 TP_PROTO(struct rxrpc_call *call, 993 TP_PROTO(struct rxrpc_call *call, enum rxrpc_propose_ack_trace why, 1440 u8 ack_reason, rxrpc_ser !! 994 u8 ack_reason, rxrpc_serial_t serial, bool immediate, 1441 !! 995 bool background, enum rxrpc_propose_ack_outcome outcome), 1442 TP_ARGS(call, why, ack_reason, se << 1443 << 1444 TP_STRUCT__entry( << 1445 __field(unsigned int, << 1446 __field(enum rxrpc_propos << 1447 __field(rxrpc_serial_t, << 1448 __field(u8, << 1449 ), << 1450 << 1451 TP_fast_assign( << 1452 __entry->call = cal << 1453 __entry->why = why << 1454 __entry->serial = ser << 1455 __entry->ack_reason = ack << 1456 ), << 1457 << 1458 TP_printk("c=%08x %s %s r=%08x", << 1459 __entry->call, << 1460 __print_symbolic(__entr << 1461 __print_symbolic(__entr << 1462 __entry->serial) << 1463 ); << 1464 << 1465 TRACE_EVENT(rxrpc_send_ack, << 1466 TP_PROTO(struct rxrpc_call *call, << 1467 u8 ack_reason, rxrpc_ser << 1468 << 1469 TP_ARGS(call, why, ack_reason, se << 1470 << 1471 TP_STRUCT__entry( << 1472 __field(unsigned int, << 1473 __field(enum rxrpc_propos << 1474 __field(rxrpc_serial_t, << 1475 __field(u8, << 1476 ), << 1477 << 1478 TP_fast_assign( << 1479 __entry->call = cal << 1480 __entry->why = why << 1481 __entry->serial = ser << 1482 __entry->ack_reason = ack << 1483 ), << 1484 << 1485 TP_printk("c=%08x %s %s r=%08x", << 1486 __entry->call, << 1487 __print_symbolic(__entr << 1488 __print_symbolic(__entr << 1489 __entry->serial) << 1490 ); << 1491 << 1492 TRACE_EVENT(rxrpc_drop_ack, << 1493 TP_PROTO(struct rxrpc_call *call, << 1494 u8 ack_reason, rxrpc_ser << 1495 996 1496 TP_ARGS(call, why, ack_reason, se !! 997 TP_ARGS(call, why, ack_reason, serial, immediate, background, >> 998 outcome), 1497 999 1498 TP_STRUCT__entry( 1000 TP_STRUCT__entry( 1499 __field(unsigned int, !! 1001 __field(struct rxrpc_call *, call ) 1500 __field(enum rxrpc_propos !! 1002 __field(enum rxrpc_propose_ack_trace, why ) 1501 __field(rxrpc_serial_t, !! 1003 __field(rxrpc_serial_t, serial ) 1502 __field(u8, !! 1004 __field(u8, ack_reason ) 1503 __field(bool, !! 1005 __field(bool, immediate ) >> 1006 __field(bool, background ) >> 1007 __field(enum rxrpc_propose_ack_outcome, outcome ) 1504 ), 1008 ), 1505 1009 1506 TP_fast_assign( 1010 TP_fast_assign( 1507 __entry->call = cal !! 1011 __entry->call = call; 1508 __entry->why = why 1012 __entry->why = why; 1509 __entry->serial = ser 1013 __entry->serial = serial; 1510 __entry->ack_reason = ack 1014 __entry->ack_reason = ack_reason; 1511 __entry->nobuf = nob !! 1015 __entry->immediate = immediate; >> 1016 __entry->background = background; >> 1017 __entry->outcome = outcome; 1512 ), 1018 ), 1513 1019 1514 TP_printk("c=%08x %s %s r=%08x nb !! 1020 TP_printk("c=%p %s %s r=%08x i=%u b=%u%s", 1515 __entry->call, 1021 __entry->call, 1516 __print_symbolic(__entr 1022 __print_symbolic(__entry->why, rxrpc_propose_ack_traces), 1517 __print_symbolic(__entr 1023 __print_symbolic(__entry->ack_reason, rxrpc_ack_names), 1518 __entry->serial, __entr !! 1024 __entry->serial, >> 1025 __entry->immediate, >> 1026 __entry->background, >> 1027 __print_symbolic(__entry->outcome, rxrpc_propose_ack_outcomes)) 1519 ); 1028 ); 1520 1029 1521 TRACE_EVENT(rxrpc_retransmit, 1030 TRACE_EVENT(rxrpc_retransmit, 1522 TP_PROTO(struct rxrpc_call *call, !! 1031 TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, u8 annotation, 1523 rxrpc_serial_t serial, k !! 1032 s64 expiry), 1524 1033 1525 TP_ARGS(call, seq, serial, expiry !! 1034 TP_ARGS(call, seq, annotation, expiry), 1526 1035 1527 TP_STRUCT__entry( 1036 TP_STRUCT__entry( 1528 __field(unsigned int, !! 1037 __field(struct rxrpc_call *, call ) 1529 __field(rxrpc_seq_t, !! 1038 __field(rxrpc_seq_t, seq ) 1530 __field(rxrpc_serial_t, !! 1039 __field(u8, annotation ) 1531 __field(ktime_t, !! 1040 __field(s64, expiry ) 1532 ), 1041 ), 1533 1042 1534 TP_fast_assign( 1043 TP_fast_assign( 1535 __entry->call = call->deb !! 1044 __entry->call = call; 1536 __entry->seq = seq; 1045 __entry->seq = seq; 1537 __entry->serial = serial; !! 1046 __entry->annotation = annotation; 1538 __entry->expiry = expiry; 1047 __entry->expiry = expiry; 1539 ), 1048 ), 1540 1049 1541 TP_printk("c=%08x q=%x r=%x xp=%l !! 1050 TP_printk("c=%p q=%x a=%02x xp=%lld", 1542 __entry->call, 1051 __entry->call, 1543 __entry->seq, 1052 __entry->seq, 1544 __entry->serial, !! 1053 __entry->annotation, 1545 ktime_to_us(__entry->ex !! 1054 __entry->expiry) 1546 ); 1055 ); 1547 1056 1548 TRACE_EVENT(rxrpc_congest, 1057 TRACE_EVENT(rxrpc_congest, 1549 TP_PROTO(struct rxrpc_call *call, 1058 TP_PROTO(struct rxrpc_call *call, struct rxrpc_ack_summary *summary, 1550 rxrpc_serial_t ack_seria 1059 rxrpc_serial_t ack_serial, enum rxrpc_congest_change change), 1551 1060 1552 TP_ARGS(call, summary, ack_serial 1061 TP_ARGS(call, summary, ack_serial, change), 1553 1062 1554 TP_STRUCT__entry( 1063 TP_STRUCT__entry( 1555 __field(unsigned int, !! 1064 __field(struct rxrpc_call *, call ) 1556 __field(enum rxrpc_conges !! 1065 __field(enum rxrpc_congest_change, change ) 1557 __field(rxrpc_seq_t, !! 1066 __field(rxrpc_seq_t, hard_ack ) 1558 __field(rxrpc_seq_t, !! 1067 __field(rxrpc_seq_t, top ) 1559 __field(rxrpc_seq_t, !! 1068 __field(rxrpc_seq_t, lowest_nak ) 1560 __field(rxrpc_serial_t, !! 1069 __field(rxrpc_serial_t, ack_serial ) 1561 __field_struct(struct rxr !! 1070 __field_struct(struct rxrpc_ack_summary, sum ) 1562 ), 1071 ), 1563 1072 1564 TP_fast_assign( 1073 TP_fast_assign( 1565 __entry->call = cal !! 1074 __entry->call = call; 1566 __entry->change = cha 1075 __entry->change = change; 1567 __entry->hard_ack = cal !! 1076 __entry->hard_ack = call->tx_hard_ack; 1568 __entry->top = cal 1077 __entry->top = call->tx_top; 1569 __entry->lowest_nak = cal 1078 __entry->lowest_nak = call->acks_lowest_nak; 1570 __entry->ack_serial = ack 1079 __entry->ack_serial = ack_serial; 1571 memcpy(&__entry->sum, sum 1080 memcpy(&__entry->sum, summary, sizeof(__entry->sum)); 1572 ), 1081 ), 1573 1082 1574 TP_printk("c=%08x r=%08x %s q=%08 !! 1083 TP_printk("c=%p %08x %s %08x %s cw=%u ss=%u nr=%u,%u nw=%u,%u r=%u b=%u u=%u d=%u l=%x%s%s%s", 1575 __entry->call, 1084 __entry->call, 1576 __entry->ack_serial, 1085 __entry->ack_serial, 1577 __print_symbolic(__entr 1086 __print_symbolic(__entry->sum.ack_reason, rxrpc_ack_names), 1578 __entry->hard_ack, 1087 __entry->hard_ack, 1579 __print_symbolic(__entr 1088 __print_symbolic(__entry->sum.mode, rxrpc_congest_modes), 1580 __entry->sum.cwnd, 1089 __entry->sum.cwnd, 1581 __entry->sum.ssthresh, 1090 __entry->sum.ssthresh, 1582 __entry->sum.nr_acks, _ !! 1091 __entry->sum.nr_acks, __entry->sum.nr_nacks, 1583 __entry->sum.nr_new_ack !! 1092 __entry->sum.nr_new_acks, __entry->sum.nr_new_nacks, 1584 __entry->sum.nr_new_nac !! 1093 __entry->sum.nr_rot_new_acks, 1585 __entry->top - __entry- 1094 __entry->top - __entry->hard_ack, 1586 __entry->sum.cumulative 1095 __entry->sum.cumulative_acks, 1587 __entry->sum.dup_acks, 1096 __entry->sum.dup_acks, 1588 __entry->lowest_nak, __ 1097 __entry->lowest_nak, __entry->sum.new_low_nack ? "!" : "", 1589 __print_symbolic(__entr 1098 __print_symbolic(__entry->change, rxrpc_congest_changes), 1590 __entry->sum.retrans_ti 1099 __entry->sum.retrans_timeo ? " rTxTo" : "") 1591 ); 1100 ); 1592 1101 1593 TRACE_EVENT(rxrpc_reset_cwnd, << 1594 TP_PROTO(struct rxrpc_call *call, << 1595 << 1596 TP_ARGS(call, now), << 1597 << 1598 TP_STRUCT__entry( << 1599 __field(unsigned int, << 1600 __field(enum rxrpc_conges << 1601 __field(unsigned short, << 1602 __field(unsigned short, << 1603 __field(rxrpc_seq_t, << 1604 __field(rxrpc_seq_t, << 1605 __field(ktime_t, << 1606 __field(bool, << 1607 ), << 1608 << 1609 TP_fast_assign( << 1610 __entry->call = cal << 1611 __entry->mode = cal << 1612 __entry->cwnd = cal << 1613 __entry->extra = cal << 1614 __entry->hard_ack = cal << 1615 __entry->prepared = cal << 1616 __entry->since_last_tx = << 1617 __entry->has_data = !li << 1618 ), << 1619 << 1620 TP_printk("c=%08x q=%08x %s cw=%u << 1621 __entry->call, << 1622 __entry->hard_ack, << 1623 __print_symbolic(__entr << 1624 __entry->cwnd, << 1625 __entry->extra, << 1626 __entry->prepared, << 1627 ktime_to_ns(__entry->si << 1628 __entry->has_data) << 1629 ); << 1630 << 1631 TRACE_EVENT(rxrpc_disconnect_call, 1102 TRACE_EVENT(rxrpc_disconnect_call, 1632 TP_PROTO(struct rxrpc_call *call) 1103 TP_PROTO(struct rxrpc_call *call), 1633 1104 1634 TP_ARGS(call), 1105 TP_ARGS(call), 1635 1106 1636 TP_STRUCT__entry( 1107 TP_STRUCT__entry( 1637 __field(unsigned int, !! 1108 __field(struct rxrpc_call *, call ) 1638 __field(u32, !! 1109 __field(u32, abort_code ) 1639 ), 1110 ), 1640 1111 1641 TP_fast_assign( 1112 TP_fast_assign( 1642 __entry->call = call->deb !! 1113 __entry->call = call; 1643 __entry->abort_code = cal 1114 __entry->abort_code = call->abort_code; 1644 ), 1115 ), 1645 1116 1646 TP_printk("c=%08x ab=%08x", !! 1117 TP_printk("c=%p ab=%08x", 1647 __entry->call, 1118 __entry->call, 1648 __entry->abort_code) 1119 __entry->abort_code) 1649 ); 1120 ); 1650 1121 1651 TRACE_EVENT(rxrpc_improper_term, 1122 TRACE_EVENT(rxrpc_improper_term, 1652 TP_PROTO(struct rxrpc_call *call) 1123 TP_PROTO(struct rxrpc_call *call), 1653 1124 1654 TP_ARGS(call), 1125 TP_ARGS(call), 1655 1126 1656 TP_STRUCT__entry( 1127 TP_STRUCT__entry( 1657 __field(unsigned int, !! 1128 __field(struct rxrpc_call *, call ) 1658 __field(u32, !! 1129 __field(u32, abort_code ) 1659 ), 1130 ), 1660 1131 1661 TP_fast_assign( 1132 TP_fast_assign( 1662 __entry->call = call->deb !! 1133 __entry->call = call; 1663 __entry->abort_code = cal 1134 __entry->abort_code = call->abort_code; 1664 ), 1135 ), 1665 1136 1666 TP_printk("c=%08x ab=%08x", !! 1137 TP_printk("c=%p ab=%08x", 1667 __entry->call, 1138 __entry->call, 1668 __entry->abort_code) 1139 __entry->abort_code) 1669 ); 1140 ); 1670 1141 1671 TRACE_EVENT(rxrpc_connect_call, !! 1142 TRACE_EVENT(rxrpc_rx_eproto, 1672 TP_PROTO(struct rxrpc_call *call) !! 1143 TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t serial, 1673 !! 1144 const char *why), 1674 TP_ARGS(call), << 1675 << 1676 TP_STRUCT__entry( << 1677 __field(unsigned int, << 1678 __field(unsigned long, << 1679 __field(u32, << 1680 __field(u32, << 1681 __field_struct(struct soc << 1682 ), << 1683 << 1684 TP_fast_assign( << 1685 __entry->call = call->deb << 1686 __entry->user_call_ID = c << 1687 __entry->cid = call->cid; << 1688 __entry->call_id = call-> << 1689 __entry->srx = call->dest << 1690 ), << 1691 << 1692 TP_printk("c=%08x u=%p %08x:%08x << 1693 __entry->call, << 1694 (void *)__entry->user_c << 1695 __entry->cid, << 1696 __entry->call_id, << 1697 &__entry->srx.transport << 1698 ); << 1699 << 1700 TRACE_EVENT(rxrpc_resend, << 1701 TP_PROTO(struct rxrpc_call *call, << 1702 << 1703 TP_ARGS(call, ack), << 1704 << 1705 TP_STRUCT__entry( << 1706 __field(unsigned int, << 1707 __field(rxrpc_seq_t, << 1708 __field(rxrpc_seq_t, << 1709 __field(rxrpc_serial_t, << 1710 ), << 1711 << 1712 TP_fast_assign( << 1713 struct rxrpc_skb_priv *sp << 1714 __entry->call = call->deb << 1715 __entry->seq = call->acks << 1716 __entry->transmitted = ca << 1717 __entry->ack_serial = sp << 1718 ), << 1719 << 1720 TP_printk("c=%08x r=%x q=%x tq=%x << 1721 __entry->call, << 1722 __entry->ack_serial, << 1723 __entry->seq, << 1724 __entry->transmitted) << 1725 ); << 1726 << 1727 TRACE_EVENT(rxrpc_rx_icmp, << 1728 TP_PROTO(struct rxrpc_peer *peer, << 1729 struct sockaddr_rxrpc *s << 1730 << 1731 TP_ARGS(peer, ee, srx), << 1732 << 1733 TP_STRUCT__entry( << 1734 __field(unsigned int, << 1735 __field_struct(struct soc << 1736 __field_struct(struct soc << 1737 ), << 1738 << 1739 TP_fast_assign( << 1740 __entry->peer = peer->deb << 1741 memcpy(&__entry->ee, ee, << 1742 memcpy(&__entry->srx, srx << 1743 ), << 1744 << 1745 TP_printk("P=%08x o=%u t=%u c=%u << 1746 __entry->peer, << 1747 __entry->ee.ee_origin, << 1748 __entry->ee.ee_type, << 1749 __entry->ee.ee_code, << 1750 __entry->ee.ee_info, << 1751 __entry->ee.ee_data, << 1752 __entry->ee.ee_errno, << 1753 &__entry->srx.transport << 1754 ); << 1755 << 1756 TRACE_EVENT(rxrpc_tx_fail, << 1757 TP_PROTO(unsigned int debug_id, r << 1758 enum rxrpc_tx_point wher << 1759 1145 1760 TP_ARGS(debug_id, serial, ret, wh !! 1146 TP_ARGS(call, serial, why), 1761 1147 1762 TP_STRUCT__entry( 1148 TP_STRUCT__entry( 1763 __field(unsigned int, !! 1149 __field(struct rxrpc_call *, call ) 1764 __field(rxrpc_serial_t, !! 1150 __field(rxrpc_serial_t, serial ) 1765 __field(int, !! 1151 __field(const char *, why ) 1766 __field(enum rxrpc_tx_poi << 1767 ), 1152 ), 1768 1153 1769 TP_fast_assign( 1154 TP_fast_assign( 1770 __entry->debug_id = debug !! 1155 __entry->call = call; 1771 __entry->serial = serial; 1156 __entry->serial = serial; 1772 __entry->ret = ret; !! 1157 __entry->why = why; 1773 __entry->where = where; << 1774 ), 1158 ), 1775 1159 1776 TP_printk("c=%08x r=%x ret=%d %s" !! 1160 TP_printk("c=%p EPROTO %08x %s", 1777 __entry->debug_id, !! 1161 __entry->call, 1778 __entry->serial, 1162 __entry->serial, 1779 __entry->ret, !! 1163 __entry->why) 1780 __print_symbolic(__entr << 1781 ); 1164 ); 1782 1165 1783 TRACE_EVENT(rxrpc_call_reset, !! 1166 TRACE_EVENT(rxrpc_connect_call, 1784 TP_PROTO(struct rxrpc_call *call) 1167 TP_PROTO(struct rxrpc_call *call), 1785 1168 1786 TP_ARGS(call), 1169 TP_ARGS(call), 1787 1170 1788 TP_STRUCT__entry( 1171 TP_STRUCT__entry( 1789 __field(unsigned int, !! 1172 __field(struct rxrpc_call *, call ) 1790 __field(u32, !! 1173 __field(unsigned long, user_call_ID ) 1791 __field(u32, !! 1174 __field(u32, cid ) 1792 __field(rxrpc_serial_t, !! 1175 __field(u32, call_id ) 1793 __field(rxrpc_serial_t, << 1794 __field(rxrpc_seq_t, << 1795 __field(rxrpc_seq_t, << 1796 ), 1176 ), 1797 1177 1798 TP_fast_assign( 1178 TP_fast_assign( 1799 __entry->debug_id = call- !! 1179 __entry->call = call; >> 1180 __entry->user_call_ID = call->user_call_ID; 1800 __entry->cid = call->cid; 1181 __entry->cid = call->cid; 1801 __entry->call_id = call-> 1182 __entry->call_id = call->call_id; 1802 __entry->call_serial = ca << 1803 __entry->conn_serial = ca << 1804 __entry->tx_seq = call->a << 1805 __entry->rx_seq = call->r << 1806 ), << 1807 << 1808 TP_printk("c=%08x %08x:%08x r=%08 << 1809 __entry->debug_id, << 1810 __entry->cid, __entry-> << 1811 __entry->call_serial, _ << 1812 __entry->tx_seq, __entr << 1813 ); << 1814 << 1815 TRACE_EVENT(rxrpc_notify_socket, << 1816 TP_PROTO(unsigned int debug_id, r << 1817 << 1818 TP_ARGS(debug_id, serial), << 1819 << 1820 TP_STRUCT__entry( << 1821 __field(unsigned int, << 1822 __field(rxrpc_serial_t, << 1823 ), << 1824 << 1825 TP_fast_assign( << 1826 __entry->debug_id = debug << 1827 __entry->serial = serial; << 1828 ), << 1829 << 1830 TP_printk("c=%08x r=%08x", << 1831 __entry->debug_id, << 1832 __entry->serial) << 1833 ); << 1834 << 1835 TRACE_EVENT(rxrpc_rx_discard_ack, << 1836 TP_PROTO(unsigned int debug_id, r << 1837 rxrpc_seq_t first_soft_a << 1838 rxrpc_seq_t prev_pkt, rx << 1839 << 1840 TP_ARGS(debug_id, serial, first_s << 1841 prev_pkt, call_ackr_prev) << 1842 << 1843 TP_STRUCT__entry( << 1844 __field(unsigned int, << 1845 __field(rxrpc_serial_t, << 1846 __field(rxrpc_seq_t, << 1847 __field(rxrpc_seq_t, << 1848 __field(rxrpc_seq_t, << 1849 __field(rxrpc_seq_t, << 1850 ), << 1851 << 1852 TP_fast_assign( << 1853 __entry->debug_id << 1854 __entry->serial << 1855 __entry->first_soft_ack << 1856 __entry->call_ackr_first << 1857 __entry->prev_pkt << 1858 __entry->call_ackr_prev << 1859 ), << 1860 << 1861 TP_printk("c=%08x r=%08x %08x<%08 << 1862 __entry->debug_id, << 1863 __entry->serial, << 1864 __entry->first_soft_ack << 1865 __entry->call_ackr_firs << 1866 __entry->prev_pkt, << 1867 __entry->call_ackr_prev << 1868 ); << 1869 << 1870 TRACE_EVENT(rxrpc_req_ack, << 1871 TP_PROTO(unsigned int call_debug_ << 1872 enum rxrpc_req_ack_trace << 1873 << 1874 TP_ARGS(call_debug_id, seq, why), << 1875 << 1876 TP_STRUCT__entry( << 1877 __field(unsigned int, << 1878 __field(rxrpc_seq_t, << 1879 __field(enum rxrpc_req_ac << 1880 ), << 1881 << 1882 TP_fast_assign( << 1883 __entry->call_debug_id = << 1884 __entry->seq = seq; << 1885 __entry->why = why; << 1886 ), << 1887 << 1888 TP_printk("c=%08x q=%08x REQ-%s", << 1889 __entry->call_debug_id, << 1890 __entry->seq, << 1891 __print_symbolic(__entr << 1892 ); << 1893 << 1894 TRACE_EVENT(rxrpc_txbuf, << 1895 TP_PROTO(unsigned int debug_id, << 1896 unsigned int call_debug_ << 1897 int ref, enum rxrpc_txbu << 1898 << 1899 TP_ARGS(debug_id, call_debug_id, << 1900 << 1901 TP_STRUCT__entry( << 1902 __field(unsigned int, << 1903 __field(unsigned int, << 1904 __field(rxrpc_seq_t, << 1905 __field(int, << 1906 __field(enum rxrpc_txbuf_ << 1907 ), << 1908 << 1909 TP_fast_assign( << 1910 __entry->debug_id = debug << 1911 __entry->call_debug_id = << 1912 __entry->seq = seq; << 1913 __entry->ref = ref; << 1914 __entry->what = what; << 1915 ), << 1916 << 1917 TP_printk("B=%08x c=%08x q=%08x % << 1918 __entry->debug_id, << 1919 __entry->call_debug_id, << 1920 __entry->seq, << 1921 __print_symbolic(__entr << 1922 __entry->ref) << 1923 ); << 1924 << 1925 TRACE_EVENT(rxrpc_poke_call, << 1926 TP_PROTO(struct rxrpc_call *call, << 1927 enum rxrpc_call_poke_tra << 1928 << 1929 TP_ARGS(call, busy, what), << 1930 << 1931 TP_STRUCT__entry( << 1932 __field(unsigned int, << 1933 __field(bool, << 1934 __field(enum rxrpc_call_p << 1935 ), << 1936 << 1937 TP_fast_assign( << 1938 __entry->call_debug_id = << 1939 __entry->busy = busy; << 1940 __entry->what = what; << 1941 ), 1183 ), 1942 1184 1943 TP_printk("c=%08x %s%s", !! 1185 TP_printk("c=%p u=%p %08x:%08x", 1944 __entry->call_debug_id, !! 1186 __entry->call, 1945 __print_symbolic(__entr !! 1187 (void *)__entry->user_call_ID, 1946 __entry->busy ? "!" : " !! 1188 __entry->cid, 1947 ); !! 1189 __entry->call_id) 1948 << 1949 TRACE_EVENT(rxrpc_call_poked, << 1950 TP_PROTO(struct rxrpc_call *call) << 1951 << 1952 TP_ARGS(call), << 1953 << 1954 TP_STRUCT__entry( << 1955 __field(unsigned int, << 1956 ), << 1957 << 1958 TP_fast_assign( << 1959 __entry->call_debug_id = << 1960 ), << 1961 << 1962 TP_printk("c=%08x", << 1963 __entry->call_debug_id) << 1964 ); << 1965 << 1966 TRACE_EVENT(rxrpc_sack, << 1967 TP_PROTO(struct rxrpc_call *call, << 1968 unsigned int sack, enum << 1969 << 1970 TP_ARGS(call, seq, sack, what), << 1971 << 1972 TP_STRUCT__entry( << 1973 __field(unsigned int, << 1974 __field(rxrpc_seq_t, << 1975 __field(unsigned int, << 1976 __field(enum rxrpc_sack_t << 1977 ), << 1978 << 1979 TP_fast_assign( << 1980 __entry->call_debug_id = << 1981 __entry->seq = seq; << 1982 __entry->sack = sack; << 1983 __entry->what = what; << 1984 ), << 1985 << 1986 TP_printk("c=%08x q=%08x %s k=%x" << 1987 __entry->call_debug_id, << 1988 __entry->seq, << 1989 __print_symbolic(__entr << 1990 __entry->sack) << 1991 ); 1190 ); 1992 1191 1993 #undef EM << 1994 #undef E_ << 1995 << 1996 #endif /* RXRPC_TRACE_ONLY_DEFINE_ENUMS */ << 1997 #endif /* _TRACE_RXRPC_H */ 1192 #endif /* _TRACE_RXRPC_H */ 1998 1193 1999 /* This part must be outside protection */ 1194 /* This part must be outside protection */ 2000 #include <trace/define_trace.h> 1195 #include <trace/define_trace.h> 2001 1196
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.