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 << 16 /* << 17 * Declare tracing information enums and their << 18 */ << 19 #define rxrpc_abort_reasons \ << 20 /* AFS errors */ << 21 EM(afs_abort_general_error, << 22 EM(afs_abort_interrupted, << 23 EM(afs_abort_oom, << 24 EM(afs_abort_op_not_supported, << 25 EM(afs_abort_probeuuid_negative, << 26 EM(afs_abort_send_data_error, << 27 EM(afs_abort_unmarshal_error, << 28 /* rxperf errors */ << 29 EM(rxperf_abort_general_error, << 30 EM(rxperf_abort_oom, << 31 EM(rxperf_abort_op_not_supported, << 32 EM(rxperf_abort_unmarshal_error, << 33 /* RxKAD security errors */ << 34 EM(rxkad_abort_1_short_check, << 35 EM(rxkad_abort_1_short_data, << 36 EM(rxkad_abort_1_short_encdata, << 37 EM(rxkad_abort_1_short_header, << 38 EM(rxkad_abort_2_short_check, << 39 EM(rxkad_abort_2_short_data, << 40 EM(rxkad_abort_2_short_header, << 41 EM(rxkad_abort_2_short_len, << 42 EM(rxkad_abort_bad_checksum, << 43 EM(rxkad_abort_chall_key_expired, << 44 EM(rxkad_abort_chall_level, << 45 EM(rxkad_abort_chall_no_key, << 46 EM(rxkad_abort_chall_short, << 47 EM(rxkad_abort_chall_version, << 48 EM(rxkad_abort_resp_bad_callid, << 49 EM(rxkad_abort_resp_bad_checksum, << 50 EM(rxkad_abort_resp_bad_param, << 51 EM(rxkad_abort_resp_call_ctr, << 52 EM(rxkad_abort_resp_call_state, << 53 EM(rxkad_abort_resp_key_expired, << 54 EM(rxkad_abort_resp_key_rejected, << 55 EM(rxkad_abort_resp_level, << 56 EM(rxkad_abort_resp_nokey, << 57 EM(rxkad_abort_resp_ooseq, << 58 EM(rxkad_abort_resp_short, << 59 EM(rxkad_abort_resp_short_tkt, << 60 EM(rxkad_abort_resp_tkt_aname, << 61 EM(rxkad_abort_resp_tkt_expired, << 62 EM(rxkad_abort_resp_tkt_future, << 63 EM(rxkad_abort_resp_tkt_inst, << 64 EM(rxkad_abort_resp_tkt_len, << 65 EM(rxkad_abort_resp_tkt_realm, << 66 EM(rxkad_abort_resp_tkt_short, << 67 EM(rxkad_abort_resp_tkt_sinst, << 68 EM(rxkad_abort_resp_tkt_sname, << 69 EM(rxkad_abort_resp_unknown_tkt, << 70 EM(rxkad_abort_resp_version, << 71 /* rxrpc errors */ << 72 EM(rxrpc_abort_call_improper_term, << 73 EM(rxrpc_abort_call_reset, << 74 EM(rxrpc_abort_call_sendmsg, << 75 EM(rxrpc_abort_call_sock_release, << 76 EM(rxrpc_abort_call_sock_release_tba, << 77 EM(rxrpc_abort_call_timeout, << 78 EM(rxrpc_abort_no_service_key, << 79 EM(rxrpc_abort_nomem, << 80 EM(rxrpc_abort_service_not_offered, << 81 EM(rxrpc_abort_shut_down, << 82 EM(rxrpc_abort_unsupported_security, << 83 EM(rxrpc_badmsg_bad_abort, << 84 EM(rxrpc_badmsg_bad_jumbo, << 85 EM(rxrpc_badmsg_short_ack, << 86 EM(rxrpc_badmsg_short_ack_trailer, << 87 EM(rxrpc_badmsg_short_hdr, << 88 EM(rxrpc_badmsg_unsupported_packet, << 89 EM(rxrpc_badmsg_zero_call, << 90 EM(rxrpc_badmsg_zero_seq, << 91 EM(rxrpc_badmsg_zero_service, << 92 EM(rxrpc_eproto_ackr_outside_window, << 93 EM(rxrpc_eproto_ackr_sack_overflow, << 94 EM(rxrpc_eproto_ackr_short_sack, << 95 EM(rxrpc_eproto_ackr_zero, << 96 EM(rxrpc_eproto_bad_upgrade, << 97 EM(rxrpc_eproto_data_after_last, << 98 EM(rxrpc_eproto_different_last, << 99 EM(rxrpc_eproto_early_reply, << 100 EM(rxrpc_eproto_improper_term, << 101 EM(rxrpc_eproto_no_client_call, << 102 EM(rxrpc_eproto_no_client_conn, << 103 EM(rxrpc_eproto_no_service_call, << 104 EM(rxrpc_eproto_reupgrade, << 105 EM(rxrpc_eproto_rxnull_challenge, << 106 EM(rxrpc_eproto_rxnull_response, << 107 EM(rxrpc_eproto_tx_rot_last, << 108 EM(rxrpc_eproto_unexpected_ack, << 109 EM(rxrpc_eproto_unexpected_ackall, << 110 EM(rxrpc_eproto_unexpected_implicit_en << 111 EM(rxrpc_eproto_unexpected_reply, << 112 EM(rxrpc_eproto_wrong_security, << 113 EM(rxrpc_recvmsg_excess_data, << 114 EM(rxrpc_recvmsg_short_data, << 115 E_(rxrpc_sendmsg_late_send, << 116 << 117 #define rxrpc_call_poke_traces \ << 118 EM(rxrpc_call_poke_abort, << 119 EM(rxrpc_call_poke_complete, << 120 EM(rxrpc_call_poke_error, << 121 EM(rxrpc_call_poke_idle, << 122 EM(rxrpc_call_poke_set_timeout, << 123 EM(rxrpc_call_poke_start, << 124 EM(rxrpc_call_poke_timer, << 125 E_(rxrpc_call_poke_timer_now, << 126 << 127 #define rxrpc_skb_traces \ << 128 EM(rxrpc_skb_eaten_by_unshare, << 129 EM(rxrpc_skb_eaten_by_unshare_nomem, << 130 EM(rxrpc_skb_get_conn_secured, << 131 EM(rxrpc_skb_get_conn_work, << 132 EM(rxrpc_skb_get_last_nack, << 133 EM(rxrpc_skb_get_local_work, << 134 EM(rxrpc_skb_get_reject_work, << 135 EM(rxrpc_skb_get_to_recvmsg, << 136 EM(rxrpc_skb_get_to_recvmsg_oos, << 137 EM(rxrpc_skb_new_encap_rcv, << 138 EM(rxrpc_skb_new_error_report, << 139 EM(rxrpc_skb_new_jumbo_subpacket, << 140 EM(rxrpc_skb_new_unshared, << 141 EM(rxrpc_skb_put_conn_secured, << 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 << 213 #define rxrpc_conn_traces \ << 214 EM(rxrpc_conn_free, << 215 EM(rxrpc_conn_get_activate_call, << 216 EM(rxrpc_conn_get_call_input, << 217 EM(rxrpc_conn_get_conn_input, << 218 EM(rxrpc_conn_get_idle, << 219 EM(rxrpc_conn_get_poke_abort, << 220 EM(rxrpc_conn_get_poke_timer, << 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 << 242 #define rxrpc_client_traces \ << 243 EM(rxrpc_client_activate_chans, << 244 EM(rxrpc_client_alloc, << 245 EM(rxrpc_client_chan_activate, << 246 EM(rxrpc_client_chan_disconnect, << 247 EM(rxrpc_client_chan_pass, << 248 EM(rxrpc_client_cleanup, << 249 EM(rxrpc_client_discard, << 250 EM(rxrpc_client_exposed, << 251 EM(rxrpc_client_replace, << 252 EM(rxrpc_client_queue_new_call, << 253 EM(rxrpc_client_to_active, << 254 E_(rxrpc_client_to_idle, << 255 << 256 #define rxrpc_call_traces \ << 257 EM(rxrpc_call_get_io_thread, << 258 EM(rxrpc_call_get_input, << 259 EM(rxrpc_call_get_kernel_service, << 260 EM(rxrpc_call_get_notify_socket, << 261 EM(rxrpc_call_get_poke, << 262 EM(rxrpc_call_get_recvmsg, << 263 EM(rxrpc_call_get_release_sock, << 264 EM(rxrpc_call_get_sendmsg, << 265 EM(rxrpc_call_get_userid, << 266 EM(rxrpc_call_new_client, << 267 EM(rxrpc_call_new_prealloc_service, << 268 EM(rxrpc_call_put_discard_prealloc, << 269 EM(rxrpc_call_put_discard_error, << 270 EM(rxrpc_call_put_io_thread, << 271 EM(rxrpc_call_put_input, << 272 EM(rxrpc_call_put_kernel, << 273 EM(rxrpc_call_put_poke, << 274 EM(rxrpc_call_put_recvmsg, << 275 EM(rxrpc_call_put_release_sock, << 276 EM(rxrpc_call_put_release_sock_tba, << 277 EM(rxrpc_call_put_sendmsg, << 278 EM(rxrpc_call_put_unnotify, << 279 EM(rxrpc_call_put_userid_exists, << 280 EM(rxrpc_call_put_userid, << 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 << 303 #define rxrpc_receive_traces \ << 304 EM(rxrpc_receive_end, << 305 EM(rxrpc_receive_front, << 306 EM(rxrpc_receive_incoming, << 307 EM(rxrpc_receive_queue, << 308 EM(rxrpc_receive_queue_last, << 309 EM(rxrpc_receive_queue_oos, << 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 << 316 #define rxrpc_recvmsg_traces \ << 317 EM(rxrpc_recvmsg_cont, << 318 EM(rxrpc_recvmsg_data_return, << 319 EM(rxrpc_recvmsg_dequeue, << 320 EM(rxrpc_recvmsg_enter, << 321 EM(rxrpc_recvmsg_full, << 322 EM(rxrpc_recvmsg_hole, << 323 EM(rxrpc_recvmsg_next, << 324 EM(rxrpc_recvmsg_requeue, << 325 EM(rxrpc_recvmsg_return, << 326 EM(rxrpc_recvmsg_terminal, << 327 EM(rxrpc_recvmsg_to_be_accepted, << 328 EM(rxrpc_recvmsg_unqueue, << 329 E_(rxrpc_recvmsg_wait, << 330 << 331 #define rxrpc_rtt_tx_traces \ << 332 EM(rxrpc_rtt_tx_cancel, << 333 EM(rxrpc_rtt_tx_data, << 334 EM(rxrpc_rtt_tx_no_slot, << 335 E_(rxrpc_rtt_tx_ping, << 336 << 337 #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, << 342 E_(rxrpc_rtt_rx_requested_ack, << 343 << 344 #define rxrpc_timer_traces \ << 345 EM(rxrpc_timer_trace_delayed_ack, << 346 EM(rxrpc_timer_trace_expect_rx, << 347 EM(rxrpc_timer_trace_hard, << 348 EM(rxrpc_timer_trace_idle, << 349 EM(rxrpc_timer_trace_keepalive, << 350 EM(rxrpc_timer_trace_lost_ack, << 351 EM(rxrpc_timer_trace_ping, << 352 EM(rxrpc_timer_trace_resend, << 353 EM(rxrpc_timer_trace_resend_reset, << 354 E_(rxrpc_timer_trace_resend_tx, << 355 << 356 #define rxrpc_propose_ack_traces \ << 357 EM(rxrpc_propose_ack_client_tx_end, << 358 EM(rxrpc_propose_ack_delayed_ack, << 359 EM(rxrpc_propose_ack_input_data, << 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 << 363 EM(rxrpc_propose_ack_ping_for_lost_rep << 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, << 367 EM(rxrpc_propose_ack_ping_for_rtt, << 368 EM(rxrpc_propose_ack_processing_op, << 369 EM(rxrpc_propose_ack_respond_to_ack, << 370 EM(rxrpc_propose_ack_respond_to_ping, << 371 EM(rxrpc_propose_ack_retry_tx, << 372 EM(rxrpc_propose_ack_rotate_rx, << 373 EM(rxrpc_propose_ack_rx_idle, << 374 E_(rxrpc_propose_ack_terminal_ack, << 375 << 376 #define rxrpc_congest_modes \ << 377 EM(RXRPC_CALL_CONGEST_AVOIDANCE, << 378 EM(RXRPC_CALL_FAST_RETRANSMIT, << 379 EM(RXRPC_CALL_PACKET_LOSS, << 380 E_(RXRPC_CALL_SLOW_START, << 381 << 382 #define rxrpc_congest_changes \ << 383 EM(rxrpc_cong_begin_retransmission, << 384 EM(rxrpc_cong_cleared_nacks, << 385 EM(rxrpc_cong_new_low_nack, << 386 EM(rxrpc_cong_no_change, << 387 EM(rxrpc_cong_progress, << 388 EM(rxrpc_cong_idle_reset, << 389 EM(rxrpc_cong_retransmit_again, << 390 EM(rxrpc_cong_rtt_window_end, << 391 E_(rxrpc_cong_saw_nack, << 392 << 393 #define rxrpc_pkts \ << 394 EM(0, << 395 EM(RXRPC_PACKET_TYPE_DATA, << 396 EM(RXRPC_PACKET_TYPE_ACK, << 397 EM(RXRPC_PACKET_TYPE_BUSY, << 398 EM(RXRPC_PACKET_TYPE_ABORT, << 399 EM(RXRPC_PACKET_TYPE_ACKALL, << 400 EM(RXRPC_PACKET_TYPE_CHALLENGE, << 401 EM(RXRPC_PACKET_TYPE_RESPONSE, << 402 EM(RXRPC_PACKET_TYPE_DEBUG, << 403 EM(9, << 404 EM(10, << 405 EM(11, << 406 EM(12, << 407 EM(RXRPC_PACKET_TYPE_VERSION, << 408 EM(14, << 409 E_(15, << 410 << 411 #define rxrpc_ack_names \ << 412 EM(0, << 413 EM(RXRPC_ACK_REQUESTED, << 414 EM(RXRPC_ACK_DUPLICATE, << 415 EM(RXRPC_ACK_OUT_OF_SEQUENCE, << 416 EM(RXRPC_ACK_EXCEEDS_WINDOW, << 417 EM(RXRPC_ACK_NOSPACE, << 418 EM(RXRPC_ACK_PING, << 419 EM(RXRPC_ACK_PING_RESPONSE, << 420 EM(RXRPC_ACK_DELAY, << 421 EM(RXRPC_ACK_IDLE, << 422 E_(RXRPC_ACK__INVALID, << 423 << 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 18 515 /* !! 19 TRACE_EVENT(rxrpc_conn, 516 * Export enum symbols via userspace. !! 20 TP_PROTO(struct rxrpc_connection *conn, enum rxrpc_conn_trace op, 517 */ !! 21 int usage, const void *where), 518 #undef EM << 519 #undef E_ << 520 << 521 #ifndef RXRPC_TRACE_ONLY_DEFINE_ENUMS << 522 << 523 #define EM(a, b) TRACE_DEFINE_ENUM(a); << 524 #define E_(a, b) TRACE_DEFINE_ENUM(a); << 525 << 526 rxrpc_abort_reasons; << 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; << 534 rxrpc_local_traces; << 535 rxrpc_propose_ack_traces; << 536 rxrpc_receive_traces; << 537 rxrpc_recvmsg_traces; << 538 rxrpc_req_ack_traces; << 539 rxrpc_rtt_rx_traces; << 540 rxrpc_rtt_tx_traces; << 541 rxrpc_sack_traces; << 542 rxrpc_skb_traces; << 543 rxrpc_timer_traces; << 544 rxrpc_tx_points; << 545 rxrpc_txbuf_traces; << 546 rxrpc_txqueue_traces; << 547 << 548 /* << 549 * Now redefine the EM() and E_() macros to ma << 550 * will be printed in the output. << 551 */ << 552 #undef EM << 553 #undef E_ << 554 #define EM(a, b) { a, b }, << 555 #define E_(a, b) { a, b } << 556 << 557 TRACE_EVENT(rxrpc_local, << 558 TP_PROTO(unsigned int local_debug_ << 559 int ref, int usage), << 560 22 561 TP_ARGS(local_debug_id, op, ref, u !! 23 TP_ARGS(conn, op, usage, where), 562 24 563 TP_STRUCT__entry( 25 TP_STRUCT__entry( 564 __field(unsigned int, !! 26 __field(struct rxrpc_connection *, conn ) 565 __field(int, !! 27 __field(int, op ) 566 __field(int, !! 28 __field(int, usage ) 567 __field(int, !! 29 __field(const void *, where ) 568 ), 30 ), 569 31 570 TP_fast_assign( 32 TP_fast_assign( 571 __entry->local = local_deb !! 33 __entry->conn = conn; 572 __entry->op = op; 34 __entry->op = op; 573 __entry->ref = ref; << 574 __entry->usage = usage; 35 __entry->usage = usage; >> 36 __entry->where = where; 575 ), 37 ), 576 38 577 TP_printk("L=%08x %s r=%d u=%d", !! 39 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, 40 __entry->conn, 649 __print_symbolic(__entry !! 41 rxrpc_conn_traces[__entry->op], 650 __entry->ref) !! 42 __entry->usage, >> 43 __entry->where) 651 ); 44 ); 652 45 653 TRACE_EVENT(rxrpc_client, 46 TRACE_EVENT(rxrpc_client, 654 TP_PROTO(struct rxrpc_connection * 47 TP_PROTO(struct rxrpc_connection *conn, int channel, 655 enum rxrpc_client_trace o 48 enum rxrpc_client_trace op), 656 49 657 TP_ARGS(conn, channel, op), 50 TP_ARGS(conn, channel, op), 658 51 659 TP_STRUCT__entry( 52 TP_STRUCT__entry( 660 __field(unsigned int, !! 53 __field(struct rxrpc_connection *, conn ) 661 __field(u32, !! 54 __field(u32, cid ) 662 __field(int, !! 55 __field(int, channel ) 663 __field(int, !! 56 __field(int, usage ) 664 __field(enum rxrpc_client_ !! 57 __field(enum rxrpc_client_trace, op ) >> 58 __field(enum rxrpc_conn_cache_state, cs ) 665 ), 59 ), 666 60 667 TP_fast_assign( 61 TP_fast_assign( 668 __entry->conn = conn ? con !! 62 __entry->conn = conn; 669 __entry->channel = channel 63 __entry->channel = channel; 670 __entry->usage = conn ? re !! 64 __entry->usage = atomic_read(&conn->usage); 671 __entry->op = op; 65 __entry->op = op; 672 __entry->cid = conn ? conn !! 66 __entry->cid = conn->proto.cid; >> 67 __entry->cs = conn->cache_state; 673 ), 68 ), 674 69 675 TP_printk("C=%08x h=%2d %s i=%08x !! 70 TP_printk("C=%p h=%2d %s %s i=%08x u=%d", 676 __entry->conn, 71 __entry->conn, 677 __entry->channel, 72 __entry->channel, 678 __print_symbolic(__entry !! 73 rxrpc_client_traces[__entry->op], >> 74 rxrpc_conn_cache_states[__entry->cs], 679 __entry->cid, 75 __entry->cid, 680 __entry->usage) 76 __entry->usage) 681 ); 77 ); 682 78 683 TRACE_EVENT(rxrpc_call, 79 TRACE_EVENT(rxrpc_call, 684 TP_PROTO(unsigned int call_debug_i !! 80 TP_PROTO(struct rxrpc_call *call, enum rxrpc_call_trace op, 685 enum rxrpc_call_trace why !! 81 int usage, const void *where, const void *aux), 686 82 687 TP_ARGS(call_debug_id, ref, aux, w !! 83 TP_ARGS(call, op, usage, where, aux), 688 84 689 TP_STRUCT__entry( 85 TP_STRUCT__entry( 690 __field(unsigned int, !! 86 __field(struct rxrpc_call *, call ) 691 __field(int, !! 87 __field(int, op ) 692 __field(int, !! 88 __field(int, usage ) 693 __field(unsigned long, !! 89 __field(const void *, where ) >> 90 __field(const void *, aux ) 694 ), 91 ), 695 92 696 TP_fast_assign( 93 TP_fast_assign( 697 __entry->call = call_debug !! 94 __entry->call = call; 698 __entry->ref = ref; !! 95 __entry->op = op; 699 __entry->why = why; !! 96 __entry->usage = usage; >> 97 __entry->where = where; 700 __entry->aux = aux; 98 __entry->aux = aux; 701 ), 99 ), 702 100 703 TP_printk("c=%08x %s r=%d a=%lx", !! 101 TP_printk("c=%p %s u=%d sp=%pSR a=%p", 704 __entry->call, 102 __entry->call, 705 __print_symbolic(__entry !! 103 rxrpc_call_traces[__entry->op], 706 __entry->ref, !! 104 __entry->usage, >> 105 __entry->where, 707 __entry->aux) 106 __entry->aux) 708 ); 107 ); 709 108 710 TRACE_EVENT(rxrpc_skb, 109 TRACE_EVENT(rxrpc_skb, 711 TP_PROTO(struct sk_buff *skb, int !! 110 TP_PROTO(struct sk_buff *skb, enum rxrpc_skb_trace op, 712 enum rxrpc_skb_trace why) !! 111 int usage, int mod_count, const void *where), 713 112 714 TP_ARGS(skb, usage, mod_count, why !! 113 TP_ARGS(skb, op, usage, mod_count, where), 715 114 716 TP_STRUCT__entry( 115 TP_STRUCT__entry( 717 __field(struct sk_buff *, !! 116 __field(struct sk_buff *, skb ) 718 __field(int, !! 117 __field(enum rxrpc_skb_trace, op ) 719 __field(int, !! 118 __field(int, usage ) 720 __field(enum rxrpc_skb_tra !! 119 __field(int, mod_count ) >> 120 __field(const void *, where ) 721 ), 121 ), 722 122 723 TP_fast_assign( 123 TP_fast_assign( 724 __entry->skb = skb; 124 __entry->skb = skb; >> 125 __entry->op = op; 725 __entry->usage = usage; 126 __entry->usage = usage; 726 __entry->mod_count = mod_c 127 __entry->mod_count = mod_count; 727 __entry->why = why; !! 128 __entry->where = where; 728 ), 129 ), 729 130 730 TP_printk("s=%p Rx %s u=%d m=%d", !! 131 TP_printk("s=%p %s u=%d m=%d p=%pSR", 731 __entry->skb, 132 __entry->skb, 732 __print_symbolic(__entry !! 133 rxrpc_skb_traces[__entry->op], 733 __entry->usage, 134 __entry->usage, 734 __entry->mod_count) !! 135 __entry->mod_count, >> 136 __entry->where) 735 ); 137 ); 736 138 737 TRACE_EVENT(rxrpc_rx_packet, 139 TRACE_EVENT(rxrpc_rx_packet, 738 TP_PROTO(struct rxrpc_skb_priv *sp 140 TP_PROTO(struct rxrpc_skb_priv *sp), 739 141 740 TP_ARGS(sp), 142 TP_ARGS(sp), 741 143 742 TP_STRUCT__entry( 144 TP_STRUCT__entry( 743 __field_struct(struct rxrp !! 145 __field_struct(struct rxrpc_host_header, hdr ) 744 ), 146 ), 745 147 746 TP_fast_assign( 148 TP_fast_assign( 747 memcpy(&__entry->hdr, &sp- 149 memcpy(&__entry->hdr, &sp->hdr, sizeof(__entry->hdr)); 748 ), 150 ), 749 151 750 TP_printk("%08x:%08x:%08x:%04x %08 152 TP_printk("%08x:%08x:%08x:%04x %08x %08x %02x %02x %s", 751 __entry->hdr.epoch, __en 153 __entry->hdr.epoch, __entry->hdr.cid, 752 __entry->hdr.callNumber, 154 __entry->hdr.callNumber, __entry->hdr.serviceId, 753 __entry->hdr.serial, __e 155 __entry->hdr.serial, __entry->hdr.seq, 754 __entry->hdr.securityInd !! 156 __entry->hdr.type, __entry->hdr.flags, 755 __print_symbolic(__entry !! 157 __entry->hdr.type <= 15 ? rxrpc_pkts[__entry->hdr.type] : "?UNK") 756 ); 158 ); 757 159 758 TRACE_EVENT(rxrpc_rx_done, 160 TRACE_EVENT(rxrpc_rx_done, 759 TP_PROTO(int result, int abort_cod 161 TP_PROTO(int result, int abort_code), 760 162 761 TP_ARGS(result, abort_code), 163 TP_ARGS(result, abort_code), 762 164 763 TP_STRUCT__entry( 165 TP_STRUCT__entry( 764 __field(int, result !! 166 __field(int, result ) 765 __field(int, abort_ !! 167 __field(int, abort_code ) 766 ), 168 ), 767 169 768 TP_fast_assign( 170 TP_fast_assign( 769 __entry->result = result; 171 __entry->result = result; 770 __entry->abort_code = abor 172 __entry->abort_code = abort_code; 771 ), 173 ), 772 174 773 TP_printk("r=%d a=%d", __entry->re 175 TP_printk("r=%d a=%d", __entry->result, __entry->abort_code) 774 ); 176 ); 775 177 776 TRACE_EVENT(rxrpc_abort, 178 TRACE_EVENT(rxrpc_abort, 777 TP_PROTO(unsigned int call_nr, enu !! 179 TP_PROTO(const char *why, u32 cid, u32 call_id, rxrpc_seq_t seq, 778 u32 cid, u32 call_id, rxr !! 180 int abort_code, int error), 779 181 780 TP_ARGS(call_nr, why, cid, call_id !! 182 TP_ARGS(why, cid, call_id, seq, abort_code, error), 781 183 782 TP_STRUCT__entry( 184 TP_STRUCT__entry( 783 __field(unsigned int, !! 185 __array(char, why, 4 ) 784 __field(enum rxrpc_abort_r !! 186 __field(u32, cid ) 785 __field(u32, !! 187 __field(u32, call_id ) 786 __field(u32, !! 188 __field(rxrpc_seq_t, seq ) 787 __field(rxrpc_seq_t, !! 189 __field(int, abort_code ) 788 __field(int, !! 190 __field(int, error ) 789 __field(int, << 790 ), 191 ), 791 192 792 TP_fast_assign( 193 TP_fast_assign( 793 __entry->call_nr = call_nr !! 194 memcpy(__entry->why, why, 4); 794 __entry->why = why; << 795 __entry->cid = cid; 195 __entry->cid = cid; 796 __entry->call_id = call_id 196 __entry->call_id = call_id; 797 __entry->abort_code = abor 197 __entry->abort_code = abort_code; 798 __entry->error = error; 198 __entry->error = error; 799 __entry->seq = seq; 199 __entry->seq = seq; 800 ), 200 ), 801 201 802 TP_printk("c=%08x %08x:%08x s=%u a !! 202 TP_printk("%08x:%08x s=%u a=%d e=%d %s", 803 __entry->call_nr, << 804 __entry->cid, __entry->c 203 __entry->cid, __entry->call_id, __entry->seq, 805 __entry->abort_code, __e !! 204 __entry->abort_code, __entry->error, __entry->why) 806 __print_symbolic(__entry << 807 ); << 808 << 809 TRACE_EVENT(rxrpc_call_complete, << 810 TP_PROTO(struct rxrpc_call *call), << 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 ); 205 ); 834 206 835 TRACE_EVENT(rxrpc_txqueue, !! 207 TRACE_EVENT(rxrpc_transmit, 836 TP_PROTO(struct rxrpc_call *call, !! 208 TP_PROTO(struct rxrpc_call *call, enum rxrpc_transmit_trace why), 837 209 838 TP_ARGS(call, why), 210 TP_ARGS(call, why), 839 211 840 TP_STRUCT__entry( 212 TP_STRUCT__entry( 841 __field(unsigned int, !! 213 __field(struct rxrpc_call *, call ) 842 __field(enum rxrpc_txqueue !! 214 __field(enum rxrpc_transmit_trace, why ) 843 __field(rxrpc_seq_t, !! 215 __field(rxrpc_seq_t, tx_hard_ack ) 844 __field(rxrpc_seq_t, !! 216 __field(rxrpc_seq_t, tx_top ) 845 __field(rxrpc_seq_t, << 846 __field(rxrpc_seq_t, << 847 __field(int, << 848 ), 217 ), 849 218 850 TP_fast_assign( 219 TP_fast_assign( 851 __entry->call = call->debu !! 220 __entry->call = call; 852 __entry->why = why; 221 __entry->why = why; 853 __entry->acks_hard_ack = c !! 222 __entry->tx_hard_ack = call->tx_hard_ack; 854 __entry->tx_bottom = call- << 855 __entry->tx_top = call->tx 223 __entry->tx_top = call->tx_top; 856 __entry->tx_prepared = cal << 857 __entry->tx_winsize = call << 858 ), 224 ), 859 225 860 TP_printk("c=%08x %s f=%08x h=%08x !! 226 TP_printk("c=%p %s f=%08x n=%u", 861 __entry->call, 227 __entry->call, 862 __print_symbolic(__entry !! 228 rxrpc_transmit_traces[__entry->why], 863 __entry->tx_bottom, !! 229 __entry->tx_hard_ack + 1, 864 __entry->acks_hard_ack, !! 230 __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) << 869 ); << 870 << 871 TRACE_EVENT(rxrpc_rx_data, << 872 TP_PROTO(unsigned int call, rxrpc_ << 873 rxrpc_serial_t serial, u8 << 874 << 875 TP_ARGS(call, seq, serial, flags), << 876 << 877 TP_STRUCT__entry( << 878 __field(unsigned int, << 879 __field(rxrpc_seq_t, << 880 __field(rxrpc_serial_t, << 881 __field(u8, << 882 ), << 883 << 884 TP_fast_assign( << 885 __entry->call = call; << 886 __entry->seq = seq; << 887 __entry->serial = serial; << 888 __entry->flags = flags; << 889 ), << 890 << 891 TP_printk("c=%08x DATA %08x q=%08x << 892 __entry->call, << 893 __entry->serial, << 894 __entry->seq, << 895 __entry->flags) << 896 ); 231 ); 897 232 898 TRACE_EVENT(rxrpc_rx_ack, 233 TRACE_EVENT(rxrpc_rx_ack, 899 TP_PROTO(struct rxrpc_call *call, !! 234 TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t first, u8 reason, u8 n_acks), 900 rxrpc_serial_t serial, rx << 901 rxrpc_seq_t first, rxrpc_ << 902 235 903 TP_ARGS(call, serial, ack_serial, !! 236 TP_ARGS(call, first, reason, n_acks), 904 237 905 TP_STRUCT__entry( 238 TP_STRUCT__entry( 906 __field(unsigned int, !! 239 __field(struct rxrpc_call *, call ) 907 __field(rxrpc_serial_t, !! 240 __field(rxrpc_seq_t, first ) 908 __field(rxrpc_serial_t, !! 241 __field(u8, reason ) 909 __field(rxrpc_seq_t, !! 242 __field(u8, n_acks ) 910 __field(rxrpc_seq_t, << 911 __field(u8, << 912 __field(u8, << 913 ), 243 ), 914 244 915 TP_fast_assign( 245 TP_fast_assign( 916 __entry->call = call->debu !! 246 __entry->call = call; 917 __entry->serial = serial; << 918 __entry->ack_serial = ack_ << 919 __entry->first = first; 247 __entry->first = first; 920 __entry->prev = prev; << 921 __entry->reason = reason; 248 __entry->reason = reason; 922 __entry->n_acks = n_acks; 249 __entry->n_acks = n_acks; 923 ), 250 ), 924 251 925 TP_printk("c=%08x %08x %s r=%08x f !! 252 TP_printk("c=%p %s f=%08x n=%u", 926 __entry->call, 253 __entry->call, 927 __entry->serial, !! 254 rxrpc_ack_names[__entry->reason], 928 __print_symbolic(__entry << 929 __entry->ack_serial, << 930 __entry->first, 255 __entry->first, 931 __entry->prev, << 932 __entry->n_acks) 256 __entry->n_acks) 933 ); 257 ); 934 258 935 TRACE_EVENT(rxrpc_rx_abort, << 936 TP_PROTO(struct rxrpc_call *call, << 937 u32 abort_code), << 938 << 939 TP_ARGS(call, serial, abort_code), << 940 << 941 TP_STRUCT__entry( << 942 __field(unsigned int, << 943 __field(rxrpc_serial_t, << 944 __field(u32, << 945 ), << 946 << 947 TP_fast_assign( << 948 __entry->call = call->debu << 949 __entry->serial = serial; << 950 __entry->abort_code = abor << 951 ), << 952 << 953 TP_printk("c=%08x ABORT %08x ac=%d << 954 __entry->call, << 955 __entry->serial, << 956 __entry->abort_code) << 957 ); << 958 << 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, << 1020 TP_PROTO(struct rxrpc_call *call, << 1021 u32 rwind, bool wake), << 1022 << 1023 TP_ARGS(call, serial, rwind, wake << 1024 << 1025 TP_STRUCT__entry( << 1026 __field(unsigned int, << 1027 __field(rxrpc_serial_t, << 1028 __field(u32, << 1029 __field(bool, << 1030 ), << 1031 << 1032 TP_fast_assign( << 1033 __entry->call = call->deb << 1034 __entry->serial = serial; << 1035 __entry->rwind = rwind; << 1036 __entry->wake = wake; << 1037 ), << 1038 << 1039 TP_printk("c=%08x %08x rw=%u%s", << 1040 __entry->call, << 1041 __entry->serial, << 1042 __entry->rwind, << 1043 __entry->wake ? " wake" << 1044 ); << 1045 << 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, 259 TRACE_EVENT(rxrpc_tx_data, 1079 TP_PROTO(struct rxrpc_call *call, 260 TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, 1080 rxrpc_serial_t serial, u !! 261 rxrpc_serial_t serial, u8 flags, bool retrans, bool lose), 1081 262 1082 TP_ARGS(call, seq, serial, flags, !! 263 TP_ARGS(call, seq, serial, flags, retrans, lose), 1083 264 1084 TP_STRUCT__entry( 265 TP_STRUCT__entry( 1085 __field(unsigned int, !! 266 __field(struct rxrpc_call *, call ) 1086 __field(rxrpc_seq_t, !! 267 __field(rxrpc_seq_t, seq ) 1087 __field(rxrpc_serial_t, !! 268 __field(rxrpc_serial_t, serial ) 1088 __field(u32, !! 269 __field(u8, flags ) 1089 __field(u32, !! 270 __field(bool, retrans ) 1090 __field(u16, !! 271 __field(bool, lose ) 1091 __field(bool, << 1092 ), 272 ), 1093 273 1094 TP_fast_assign( 274 TP_fast_assign( 1095 __entry->call = call->deb !! 275 __entry->call = call; 1096 __entry->cid = call->cid; << 1097 __entry->call_id = call-> << 1098 __entry->seq = seq; 276 __entry->seq = seq; 1099 __entry->serial = serial; 277 __entry->serial = serial; 1100 __entry->flags = flags; 278 __entry->flags = flags; >> 279 __entry->retrans = retrans; 1101 __entry->lose = lose; 280 __entry->lose = lose; 1102 ), 281 ), 1103 282 1104 TP_printk("c=%08x DATA %08x:%08x !! 283 TP_printk("c=%p DATA %08x q=%08x fl=%02x%s%s", 1105 __entry->call, 284 __entry->call, 1106 __entry->cid, << 1107 __entry->call_id, << 1108 __entry->serial, 285 __entry->serial, 1109 __entry->seq, 286 __entry->seq, 1110 __entry->flags & RXRPC_ !! 287 __entry->flags, 1111 __entry->flags & RXRPC_ !! 288 __entry->retrans ? " *RETRANS*" : "", 1112 __entry->lose ? " *LOSE 289 __entry->lose ? " *LOSE*" : "") 1113 ); 290 ); 1114 291 1115 TRACE_EVENT(rxrpc_tx_ack, 292 TRACE_EVENT(rxrpc_tx_ack, 1116 TP_PROTO(unsigned int call, rxrpc !! 293 TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t serial, 1117 rxrpc_seq_t ack_first, r 294 rxrpc_seq_t ack_first, rxrpc_serial_t ack_serial, 1118 u8 reason, u8 n_acks, u1 !! 295 u8 reason, u8 n_acks), 1119 296 1120 TP_ARGS(call, serial, ack_first, !! 297 TP_ARGS(call, serial, ack_first, ack_serial, reason, n_acks), 1121 298 1122 TP_STRUCT__entry( 299 TP_STRUCT__entry( 1123 __field(unsigned int, !! 300 __field(struct rxrpc_call *, call ) 1124 __field(rxrpc_serial_t, !! 301 __field(rxrpc_serial_t, serial ) 1125 __field(rxrpc_seq_t, !! 302 __field(rxrpc_seq_t, ack_first ) 1126 __field(rxrpc_serial_t, !! 303 __field(rxrpc_serial_t, ack_serial ) 1127 __field(u8, !! 304 __field(u8, reason ) 1128 __field(u8, !! 305 __field(u8, n_acks ) 1129 __field(u16, << 1130 ), 306 ), 1131 307 1132 TP_fast_assign( 308 TP_fast_assign( 1133 __entry->call = call; 309 __entry->call = call; 1134 __entry->serial = serial; 310 __entry->serial = serial; 1135 __entry->ack_first = ack_ 311 __entry->ack_first = ack_first; 1136 __entry->ack_serial = ack 312 __entry->ack_serial = ack_serial; 1137 __entry->reason = reason; 313 __entry->reason = reason; 1138 __entry->n_acks = n_acks; 314 __entry->n_acks = n_acks; 1139 __entry->rwind = rwind; << 1140 ), 315 ), 1141 316 1142 TP_printk(" c=%08x ACK %08x %s f !! 317 TP_printk(" c=%p ACK %08x %s f=%08x r=%08x n=%u", 1143 __entry->call, 318 __entry->call, 1144 __entry->serial, 319 __entry->serial, 1145 __print_symbolic(__entr !! 320 rxrpc_ack_names[__entry->reason], 1146 __entry->ack_first, 321 __entry->ack_first, 1147 __entry->ack_serial, 322 __entry->ack_serial, 1148 __entry->n_acks, !! 323 __entry->n_acks) 1149 __entry->rwind) << 1150 ); 324 ); 1151 325 1152 TRACE_EVENT(rxrpc_receive, 326 TRACE_EVENT(rxrpc_receive, 1153 TP_PROTO(struct rxrpc_call *call, 327 TP_PROTO(struct rxrpc_call *call, enum rxrpc_receive_trace why, 1154 rxrpc_serial_t serial, r 328 rxrpc_serial_t serial, rxrpc_seq_t seq), 1155 329 1156 TP_ARGS(call, why, serial, seq), 330 TP_ARGS(call, why, serial, seq), 1157 331 1158 TP_STRUCT__entry( 332 TP_STRUCT__entry( 1159 __field(unsigned int, !! 333 __field(struct rxrpc_call *, call ) 1160 __field(enum rxrpc_receiv !! 334 __field(enum rxrpc_receive_trace, why ) 1161 __field(rxrpc_serial_t, !! 335 __field(rxrpc_serial_t, serial ) 1162 __field(rxrpc_seq_t, !! 336 __field(rxrpc_seq_t, seq ) 1163 __field(rxrpc_seq_t, !! 337 __field(rxrpc_seq_t, hard_ack ) 1164 __field(rxrpc_seq_t, !! 338 __field(rxrpc_seq_t, top ) 1165 ), 339 ), 1166 340 1167 TP_fast_assign( 341 TP_fast_assign( 1168 __entry->call = call->deb !! 342 __entry->call = call; 1169 __entry->why = why; 343 __entry->why = why; 1170 __entry->serial = serial; 344 __entry->serial = serial; 1171 __entry->seq = seq; 345 __entry->seq = seq; 1172 __entry->window = call->a !! 346 __entry->hard_ack = call->rx_hard_ack; 1173 __entry->wtop = call->ack !! 347 __entry->top = call->rx_top; 1174 ), 348 ), 1175 349 1176 TP_printk("c=%08x %s r=%08x q=%08 !! 350 TP_printk("c=%p %s r=%08x q=%08x w=%08x-%08x", 1177 __entry->call, 351 __entry->call, 1178 __print_symbolic(__entr !! 352 rxrpc_receive_traces[__entry->why], 1179 __entry->serial, 353 __entry->serial, 1180 __entry->seq, 354 __entry->seq, 1181 __entry->window, !! 355 __entry->hard_ack, 1182 __entry->wtop) !! 356 __entry->top) 1183 ); 357 ); 1184 358 1185 TRACE_EVENT(rxrpc_recvmsg, 359 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, 360 TP_PROTO(struct rxrpc_call *call, enum rxrpc_recvmsg_trace why, 1211 rxrpc_seq_t seq, unsigne 361 rxrpc_seq_t seq, unsigned int offset, unsigned int len, 1212 int ret), 362 int ret), 1213 363 1214 TP_ARGS(call, why, seq, offset, l 364 TP_ARGS(call, why, seq, offset, len, ret), 1215 365 1216 TP_STRUCT__entry( 366 TP_STRUCT__entry( 1217 __field(unsigned int, !! 367 __field(struct rxrpc_call *, call ) 1218 __field(enum rxrpc_recvms !! 368 __field(enum rxrpc_recvmsg_trace, why ) 1219 __field(rxrpc_seq_t, !! 369 __field(rxrpc_seq_t, seq ) 1220 __field(unsigned int, !! 370 __field(unsigned int, offset ) 1221 __field(unsigned int, !! 371 __field(unsigned int, len ) 1222 __field(int, !! 372 __field(int, ret ) 1223 ), 373 ), 1224 374 1225 TP_fast_assign( 375 TP_fast_assign( 1226 __entry->call = call ? ca !! 376 __entry->call = call; 1227 __entry->why = why; 377 __entry->why = why; 1228 __entry->seq = seq; 378 __entry->seq = seq; 1229 __entry->offset = offset; 379 __entry->offset = offset; 1230 __entry->len = len; 380 __entry->len = len; 1231 __entry->ret = ret; 381 __entry->ret = ret; 1232 ), 382 ), 1233 383 1234 TP_printk("c=%08x %s q=%08x o=%u !! 384 TP_printk("c=%p %s q=%08x o=%u l=%u ret=%d", 1235 __entry->call, 385 __entry->call, 1236 __print_symbolic(__entr !! 386 rxrpc_recvmsg_traces[__entry->why], 1237 __entry->seq, 387 __entry->seq, 1238 __entry->offset, 388 __entry->offset, 1239 __entry->len, 389 __entry->len, 1240 __entry->ret) 390 __entry->ret) 1241 ); 391 ); 1242 392 1243 TRACE_EVENT(rxrpc_rtt_tx, 393 TRACE_EVENT(rxrpc_rtt_tx, 1244 TP_PROTO(struct rxrpc_call *call, 394 TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_tx_trace why, 1245 int slot, rxrpc_serial_t !! 395 rxrpc_serial_t send_serial), 1246 396 1247 TP_ARGS(call, why, slot, send_ser !! 397 TP_ARGS(call, why, send_serial), 1248 398 1249 TP_STRUCT__entry( 399 TP_STRUCT__entry( 1250 __field(unsigned int, !! 400 __field(struct rxrpc_call *, call ) 1251 __field(enum rxrpc_rtt_tx !! 401 __field(enum rxrpc_rtt_tx_trace, why ) 1252 __field(int, !! 402 __field(rxrpc_serial_t, send_serial ) 1253 __field(rxrpc_serial_t, << 1254 ), 403 ), 1255 404 1256 TP_fast_assign( 405 TP_fast_assign( 1257 __entry->call = call->deb !! 406 __entry->call = call; 1258 __entry->why = why; 407 __entry->why = why; 1259 __entry->slot = slot; << 1260 __entry->send_serial = se 408 __entry->send_serial = send_serial; 1261 ), 409 ), 1262 410 1263 TP_printk("c=%08x [%d] %s sr=%08x !! 411 TP_printk("c=%p %s sr=%08x", 1264 __entry->call, 412 __entry->call, 1265 __entry->slot, !! 413 rxrpc_rtt_tx_traces[__entry->why], 1266 __print_symbolic(__entr << 1267 __entry->send_serial) 414 __entry->send_serial) 1268 ); 415 ); 1269 416 1270 TRACE_EVENT(rxrpc_rtt_rx, 417 TRACE_EVENT(rxrpc_rtt_rx, 1271 TP_PROTO(struct rxrpc_call *call, 418 TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_rx_trace why, 1272 int slot, << 1273 rxrpc_serial_t send_seri 419 rxrpc_serial_t send_serial, rxrpc_serial_t resp_serial, 1274 u32 rtt, u32 rto), !! 420 s64 rtt, u8 nr, s64 avg), 1275 421 1276 TP_ARGS(call, why, slot, send_ser !! 422 TP_ARGS(call, why, send_serial, resp_serial, rtt, nr, avg), 1277 423 1278 TP_STRUCT__entry( 424 TP_STRUCT__entry( 1279 __field(unsigned int, !! 425 __field(struct rxrpc_call *, call ) 1280 __field(enum rxrpc_rtt_rx !! 426 __field(enum rxrpc_rtt_rx_trace, why ) 1281 __field(int, !! 427 __field(u8, nr ) 1282 __field(rxrpc_serial_t, !! 428 __field(rxrpc_serial_t, send_serial ) 1283 __field(rxrpc_serial_t, !! 429 __field(rxrpc_serial_t, resp_serial ) 1284 __field(u32, !! 430 __field(s64, rtt ) 1285 __field(u32, !! 431 __field(u64, avg ) 1286 ), 432 ), 1287 433 1288 TP_fast_assign( 434 TP_fast_assign( 1289 __entry->call = call->deb !! 435 __entry->call = call; 1290 __entry->why = why; 436 __entry->why = why; 1291 __entry->slot = slot; << 1292 __entry->send_serial = se 437 __entry->send_serial = send_serial; 1293 __entry->resp_serial = re 438 __entry->resp_serial = resp_serial; 1294 __entry->rtt = rtt; 439 __entry->rtt = rtt; 1295 __entry->rto = rto; !! 440 __entry->nr = nr; >> 441 __entry->avg = avg; 1296 ), 442 ), 1297 443 1298 TP_printk("c=%08x [%d] %s sr=%08x !! 444 TP_printk("c=%p %s sr=%08x rr=%08x rtt=%lld nr=%u avg=%lld", 1299 __entry->call, 445 __entry->call, 1300 __entry->slot, !! 446 rxrpc_rtt_rx_traces[__entry->why], 1301 __print_symbolic(__entr << 1302 __entry->send_serial, 447 __entry->send_serial, 1303 __entry->resp_serial, 448 __entry->resp_serial, 1304 __entry->rtt, 449 __entry->rtt, 1305 __entry->rto) !! 450 __entry->nr, >> 451 __entry->avg) 1306 ); 452 ); 1307 453 1308 TRACE_EVENT(rxrpc_timer_set, !! 454 TRACE_EVENT(rxrpc_timer, 1309 TP_PROTO(struct rxrpc_call *call, !! 455 TP_PROTO(struct rxrpc_call *call, enum rxrpc_timer_trace why, 1310 enum rxrpc_timer_trace w !! 456 ktime_t now, unsigned long now_j), 1311 457 1312 TP_ARGS(call, delay, why), !! 458 TP_ARGS(call, why, now, now_j), 1313 459 1314 TP_STRUCT__entry( 460 TP_STRUCT__entry( 1315 __field(unsigned int, !! 461 __field(struct rxrpc_call *, call ) 1316 __field(enum rxrpc_timer_ !! 462 __field(enum rxrpc_timer_trace, why ) 1317 __field(ktime_t, !! 463 __field_struct(ktime_t, now ) >> 464 __field_struct(ktime_t, expire_at ) >> 465 __field_struct(ktime_t, ack_at ) >> 466 __field_struct(ktime_t, resend_at ) >> 467 __field(unsigned long, now_j ) >> 468 __field(unsigned long, timer ) 1318 ), 469 ), 1319 470 1320 TP_fast_assign( 471 TP_fast_assign( 1321 __entry->call !! 472 __entry->call = call; 1322 __entry->why !! 473 __entry->why = why; 1323 __entry->delay !! 474 __entry->now = now; 1324 ), !! 475 __entry->expire_at = call->expire_at; 1325 !! 476 __entry->ack_at = call->ack_at; 1326 TP_printk("c=%08x %s to=%lld", !! 477 __entry->resend_at = call->resend_at; 1327 __entry->call, !! 478 __entry->now_j = now_j; 1328 __print_symbolic(__entr !! 479 __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 ), << 1349 << 1350 TP_printk("c=%08x %s to=%lld", << 1351 __entry->call, << 1352 __print_symbolic(__entr << 1353 ktime_to_us(__entry->de << 1354 ); << 1355 << 1356 TRACE_EVENT(rxrpc_timer_can, << 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 ), 480 ), 1411 481 1412 TP_printk("c=%08x EXPIRED", !! 482 TP_printk("c=%p %s x=%lld a=%lld r=%lld t=%ld", 1413 __entry->call) !! 483 __entry->call, >> 484 rxrpc_timer_traces[__entry->why], >> 485 ktime_to_ns(ktime_sub(__entry->expire_at, __entry->now)), >> 486 ktime_to_ns(ktime_sub(__entry->ack_at, __entry->now)), >> 487 ktime_to_ns(ktime_sub(__entry->resend_at, __entry->now)), >> 488 __entry->timer - __entry->now_j) 1414 ); 489 ); 1415 490 1416 TRACE_EVENT(rxrpc_rx_lose, 491 TRACE_EVENT(rxrpc_rx_lose, 1417 TP_PROTO(struct rxrpc_skb_priv *s 492 TP_PROTO(struct rxrpc_skb_priv *sp), 1418 493 1419 TP_ARGS(sp), 494 TP_ARGS(sp), 1420 495 1421 TP_STRUCT__entry( 496 TP_STRUCT__entry( 1422 __field_struct(struct rxr !! 497 __field_struct(struct rxrpc_host_header, hdr ) 1423 ), 498 ), 1424 499 1425 TP_fast_assign( 500 TP_fast_assign( 1426 memcpy(&__entry->hdr, &sp 501 memcpy(&__entry->hdr, &sp->hdr, sizeof(__entry->hdr)); 1427 ), 502 ), 1428 503 1429 TP_printk("%08x:%08x:%08x:%04x %0 504 TP_printk("%08x:%08x:%08x:%04x %08x %08x %02x %02x %s *LOSE*", 1430 __entry->hdr.epoch, __e 505 __entry->hdr.epoch, __entry->hdr.cid, 1431 __entry->hdr.callNumber 506 __entry->hdr.callNumber, __entry->hdr.serviceId, 1432 __entry->hdr.serial, __ 507 __entry->hdr.serial, __entry->hdr.seq, 1433 __entry->hdr.type, __en 508 __entry->hdr.type, __entry->hdr.flags, 1434 __entry->hdr.type <= 15 !! 509 __entry->hdr.type <= 15 ? rxrpc_pkts[__entry->hdr.type] : "?UNK") 1435 __print_symbolic(__entr << 1436 ); 510 ); 1437 511 1438 TRACE_EVENT(rxrpc_propose_ack, 512 TRACE_EVENT(rxrpc_propose_ack, 1439 TP_PROTO(struct rxrpc_call *call, 513 TP_PROTO(struct rxrpc_call *call, enum rxrpc_propose_ack_trace why, 1440 u8 ack_reason, rxrpc_ser !! 514 u8 ack_reason, rxrpc_serial_t serial, bool immediate, 1441 !! 515 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 516 1469 TP_ARGS(call, why, ack_reason, se !! 517 TP_ARGS(call, why, ack_reason, serial, immediate, background, >> 518 outcome), 1470 519 1471 TP_STRUCT__entry( 520 TP_STRUCT__entry( 1472 __field(unsigned int, !! 521 __field(struct rxrpc_call *, call ) 1473 __field(enum rxrpc_propos !! 522 __field(enum rxrpc_propose_ack_trace, why ) 1474 __field(rxrpc_serial_t, !! 523 __field(rxrpc_serial_t, serial ) 1475 __field(u8, !! 524 __field(u8, ack_reason ) >> 525 __field(bool, immediate ) >> 526 __field(bool, background ) >> 527 __field(enum rxrpc_propose_ack_outcome, outcome ) 1476 ), 528 ), 1477 529 1478 TP_fast_assign( 530 TP_fast_assign( 1479 __entry->call = cal !! 531 __entry->call = call; 1480 __entry->why = why 532 __entry->why = why; 1481 __entry->serial = ser 533 __entry->serial = serial; 1482 __entry->ack_reason = ack 534 __entry->ack_reason = ack_reason; >> 535 __entry->immediate = immediate; >> 536 __entry->background = background; >> 537 __entry->outcome = outcome; 1483 ), 538 ), 1484 539 1485 TP_printk("c=%08x %s %s r=%08x", !! 540 TP_printk("c=%p %s %s r=%08x i=%u b=%u%s", 1486 __entry->call, 541 __entry->call, 1487 __print_symbolic(__entr !! 542 rxrpc_propose_ack_traces[__entry->why], 1488 __print_symbolic(__entr !! 543 rxrpc_ack_names[__entry->ack_reason], 1489 __entry->serial) !! 544 __entry->serial, 1490 ); !! 545 __entry->immediate, 1491 !! 546 __entry->background, 1492 TRACE_EVENT(rxrpc_drop_ack, !! 547 rxrpc_propose_ack_outcomes[__entry->outcome]) 1493 TP_PROTO(struct rxrpc_call *call, << 1494 u8 ack_reason, rxrpc_ser << 1495 << 1496 TP_ARGS(call, why, ack_reason, se << 1497 << 1498 TP_STRUCT__entry( << 1499 __field(unsigned int, << 1500 __field(enum rxrpc_propos << 1501 __field(rxrpc_serial_t, << 1502 __field(u8, << 1503 __field(bool, << 1504 ), << 1505 << 1506 TP_fast_assign( << 1507 __entry->call = cal << 1508 __entry->why = why << 1509 __entry->serial = ser << 1510 __entry->ack_reason = ack << 1511 __entry->nobuf = nob << 1512 ), << 1513 << 1514 TP_printk("c=%08x %s %s r=%08x nb << 1515 __entry->call, << 1516 __print_symbolic(__entr << 1517 __print_symbolic(__entr << 1518 __entry->serial, __entr << 1519 ); 548 ); 1520 549 1521 TRACE_EVENT(rxrpc_retransmit, 550 TRACE_EVENT(rxrpc_retransmit, 1522 TP_PROTO(struct rxrpc_call *call, !! 551 TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, u8 annotation, 1523 rxrpc_serial_t serial, k !! 552 s64 expiry), 1524 553 1525 TP_ARGS(call, seq, serial, expiry !! 554 TP_ARGS(call, seq, annotation, expiry), 1526 555 1527 TP_STRUCT__entry( 556 TP_STRUCT__entry( 1528 __field(unsigned int, !! 557 __field(struct rxrpc_call *, call ) 1529 __field(rxrpc_seq_t, !! 558 __field(rxrpc_seq_t, seq ) 1530 __field(rxrpc_serial_t, !! 559 __field(u8, annotation ) 1531 __field(ktime_t, !! 560 __field(s64, expiry ) 1532 ), 561 ), 1533 562 1534 TP_fast_assign( 563 TP_fast_assign( 1535 __entry->call = call->deb !! 564 __entry->call = call; 1536 __entry->seq = seq; 565 __entry->seq = seq; 1537 __entry->serial = serial; !! 566 __entry->annotation = annotation; 1538 __entry->expiry = expiry; 567 __entry->expiry = expiry; 1539 ), 568 ), 1540 569 1541 TP_printk("c=%08x q=%x r=%x xp=%l !! 570 TP_printk("c=%p q=%x a=%02x xp=%lld", 1542 __entry->call, 571 __entry->call, 1543 __entry->seq, 572 __entry->seq, 1544 __entry->serial, !! 573 __entry->annotation, 1545 ktime_to_us(__entry->ex !! 574 __entry->expiry) 1546 ); 575 ); 1547 576 1548 TRACE_EVENT(rxrpc_congest, 577 TRACE_EVENT(rxrpc_congest, 1549 TP_PROTO(struct rxrpc_call *call, 578 TP_PROTO(struct rxrpc_call *call, struct rxrpc_ack_summary *summary, 1550 rxrpc_serial_t ack_seria 579 rxrpc_serial_t ack_serial, enum rxrpc_congest_change change), 1551 580 1552 TP_ARGS(call, summary, ack_serial 581 TP_ARGS(call, summary, ack_serial, change), 1553 582 1554 TP_STRUCT__entry( 583 TP_STRUCT__entry( 1555 __field(unsigned int, !! 584 __field(struct rxrpc_call *, call ) 1556 __field(enum rxrpc_conges !! 585 __field(enum rxrpc_congest_change, change ) 1557 __field(rxrpc_seq_t, !! 586 __field(rxrpc_seq_t, hard_ack ) 1558 __field(rxrpc_seq_t, !! 587 __field(rxrpc_seq_t, top ) 1559 __field(rxrpc_seq_t, !! 588 __field(rxrpc_seq_t, lowest_nak ) 1560 __field(rxrpc_serial_t, !! 589 __field(rxrpc_serial_t, ack_serial ) 1561 __field_struct(struct rxr !! 590 __field_struct(struct rxrpc_ack_summary, sum ) 1562 ), 591 ), 1563 592 1564 TP_fast_assign( 593 TP_fast_assign( 1565 __entry->call = cal !! 594 __entry->call = call; 1566 __entry->change = cha 595 __entry->change = change; 1567 __entry->hard_ack = cal !! 596 __entry->hard_ack = call->tx_hard_ack; 1568 __entry->top = cal 597 __entry->top = call->tx_top; 1569 __entry->lowest_nak = cal 598 __entry->lowest_nak = call->acks_lowest_nak; 1570 __entry->ack_serial = ack 599 __entry->ack_serial = ack_serial; 1571 memcpy(&__entry->sum, sum 600 memcpy(&__entry->sum, summary, sizeof(__entry->sum)); 1572 ), 601 ), 1573 602 1574 TP_printk("c=%08x r=%08x %s q=%08 !! 603 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, 604 __entry->call, 1576 __entry->ack_serial, 605 __entry->ack_serial, 1577 __print_symbolic(__entr !! 606 rxrpc_ack_names[__entry->sum.ack_reason], 1578 __entry->hard_ack, 607 __entry->hard_ack, 1579 __print_symbolic(__entr !! 608 rxrpc_congest_modes[__entry->sum.mode], 1580 __entry->sum.cwnd, 609 __entry->sum.cwnd, 1581 __entry->sum.ssthresh, 610 __entry->sum.ssthresh, 1582 __entry->sum.nr_acks, _ !! 611 __entry->sum.nr_acks, __entry->sum.nr_nacks, 1583 __entry->sum.nr_new_ack !! 612 __entry->sum.nr_new_acks, __entry->sum.nr_new_nacks, 1584 __entry->sum.nr_new_nac !! 613 __entry->sum.nr_rot_new_acks, 1585 __entry->top - __entry- 614 __entry->top - __entry->hard_ack, 1586 __entry->sum.cumulative 615 __entry->sum.cumulative_acks, 1587 __entry->sum.dup_acks, 616 __entry->sum.dup_acks, 1588 __entry->lowest_nak, __ 617 __entry->lowest_nak, __entry->sum.new_low_nack ? "!" : "", 1589 __print_symbolic(__entr !! 618 rxrpc_congest_changes[__entry->change], 1590 __entry->sum.retrans_ti 619 __entry->sum.retrans_timeo ? " rTxTo" : "") 1591 ); 620 ); 1592 621 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, << 1632 TP_PROTO(struct rxrpc_call *call) << 1633 << 1634 TP_ARGS(call), << 1635 << 1636 TP_STRUCT__entry( << 1637 __field(unsigned int, << 1638 __field(u32, << 1639 ), << 1640 << 1641 TP_fast_assign( << 1642 __entry->call = call->deb << 1643 __entry->abort_code = cal << 1644 ), << 1645 << 1646 TP_printk("c=%08x ab=%08x", << 1647 __entry->call, << 1648 __entry->abort_code) << 1649 ); << 1650 << 1651 TRACE_EVENT(rxrpc_improper_term, << 1652 TP_PROTO(struct rxrpc_call *call) << 1653 << 1654 TP_ARGS(call), << 1655 << 1656 TP_STRUCT__entry( << 1657 __field(unsigned int, << 1658 __field(u32, << 1659 ), << 1660 << 1661 TP_fast_assign( << 1662 __entry->call = call->deb << 1663 __entry->abort_code = cal << 1664 ), << 1665 << 1666 TP_printk("c=%08x ab=%08x", << 1667 __entry->call, << 1668 __entry->abort_code) << 1669 ); << 1670 << 1671 TRACE_EVENT(rxrpc_connect_call, << 1672 TP_PROTO(struct rxrpc_call *call) << 1673 << 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 << 1760 TP_ARGS(debug_id, serial, ret, wh << 1761 << 1762 TP_STRUCT__entry( << 1763 __field(unsigned int, << 1764 __field(rxrpc_serial_t, << 1765 __field(int, << 1766 __field(enum rxrpc_tx_poi << 1767 ), << 1768 << 1769 TP_fast_assign( << 1770 __entry->debug_id = debug << 1771 __entry->serial = serial; << 1772 __entry->ret = ret; << 1773 __entry->where = where; << 1774 ), << 1775 << 1776 TP_printk("c=%08x r=%x ret=%d %s" << 1777 __entry->debug_id, << 1778 __entry->serial, << 1779 __entry->ret, << 1780 __print_symbolic(__entr << 1781 ); << 1782 << 1783 TRACE_EVENT(rxrpc_call_reset, << 1784 TP_PROTO(struct rxrpc_call *call) << 1785 << 1786 TP_ARGS(call), << 1787 << 1788 TP_STRUCT__entry( << 1789 __field(unsigned int, << 1790 __field(u32, << 1791 __field(u32, << 1792 __field(rxrpc_serial_t, << 1793 __field(rxrpc_serial_t, << 1794 __field(rxrpc_seq_t, << 1795 __field(rxrpc_seq_t, << 1796 ), << 1797 << 1798 TP_fast_assign( << 1799 __entry->debug_id = call- << 1800 __entry->cid = call->cid; << 1801 __entry->call_id = call-> << 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 ), << 1942 << 1943 TP_printk("c=%08x %s%s", << 1944 __entry->call_debug_id, << 1945 __print_symbolic(__entr << 1946 __entry->busy ? "!" : " << 1947 ); << 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 ); << 1992 << 1993 #undef EM << 1994 #undef E_ << 1995 << 1996 #endif /* RXRPC_TRACE_ONLY_DEFINE_ENUMS */ << 1997 #endif /* _TRACE_RXRPC_H */ 622 #endif /* _TRACE_RXRPC_H */ 1998 623 1999 /* This part must be outside protection */ 624 /* This part must be outside protection */ 2000 #include <trace/define_trace.h> 625 #include <trace/define_trace.h> 2001 626
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.