Commit | Line | Data |
---|---|---|
b4d0d230 | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
df844fd4 DH |
2 | /* AF_RXRPC tracepoints |
3 | * | |
4 | * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved. | |
5 | * Written by David Howells (dhowells@redhat.com) | |
df844fd4 DH |
6 | */ |
7 | #undef TRACE_SYSTEM | |
8 | #define TRACE_SYSTEM rxrpc | |
9 | ||
10 | #if !defined(_TRACE_RXRPC_H) || defined(TRACE_HEADER_MULTI_READ) | |
11 | #define _TRACE_RXRPC_H | |
12 | ||
13 | #include <linux/tracepoint.h> | |
494337c9 | 14 | #include <linux/errqueue.h> |
df844fd4 | 15 | |
b54a134a DH |
16 | /* |
17 | * Declare tracing information enums and their string mappings for display. | |
18 | */ | |
57af281e DH |
19 | #define rxrpc_abort_reasons \ |
20 | /* AFS errors */ \ | |
21 | EM(afs_abort_general_error, "afs-error") \ | |
22 | EM(afs_abort_interrupted, "afs-intr") \ | |
23 | EM(afs_abort_oom, "afs-oom") \ | |
24 | EM(afs_abort_op_not_supported, "afs-op-notsupp") \ | |
25 | EM(afs_abort_probeuuid_negative, "afs-probeuuid-neg") \ | |
26 | EM(afs_abort_send_data_error, "afs-send-data") \ | |
27 | EM(afs_abort_unmarshal_error, "afs-unmarshal") \ | |
5800b1cf | 28 | EM(afs_abort_unsupported_sec_class, "afs-unsup-sec-class") \ |
57af281e DH |
29 | /* rxperf errors */ \ |
30 | EM(rxperf_abort_general_error, "rxperf-error") \ | |
31 | EM(rxperf_abort_oom, "rxperf-oom") \ | |
32 | EM(rxperf_abort_op_not_supported, "rxperf-op-notsupp") \ | |
33 | EM(rxperf_abort_unmarshal_error, "rxperf-unmarshal") \ | |
34 | /* RxKAD security errors */ \ | |
35 | EM(rxkad_abort_1_short_check, "rxkad1-short-check") \ | |
36 | EM(rxkad_abort_1_short_data, "rxkad1-short-data") \ | |
37 | EM(rxkad_abort_1_short_encdata, "rxkad1-short-encdata") \ | |
38 | EM(rxkad_abort_1_short_header, "rxkad1-short-hdr") \ | |
39 | EM(rxkad_abort_2_short_check, "rxkad2-short-check") \ | |
40 | EM(rxkad_abort_2_short_data, "rxkad2-short-data") \ | |
41 | EM(rxkad_abort_2_short_header, "rxkad2-short-hdr") \ | |
42 | EM(rxkad_abort_2_short_len, "rxkad2-short-len") \ | |
43 | EM(rxkad_abort_bad_checksum, "rxkad2-bad-cksum") \ | |
44 | EM(rxkad_abort_chall_key_expired, "rxkad-chall-key-exp") \ | |
45 | EM(rxkad_abort_chall_level, "rxkad-chall-level") \ | |
46 | EM(rxkad_abort_chall_no_key, "rxkad-chall-nokey") \ | |
47 | EM(rxkad_abort_chall_short, "rxkad-chall-short") \ | |
48 | EM(rxkad_abort_chall_version, "rxkad-chall-version") \ | |
49 | EM(rxkad_abort_resp_bad_callid, "rxkad-resp-bad-callid") \ | |
50 | EM(rxkad_abort_resp_bad_checksum, "rxkad-resp-bad-cksum") \ | |
51 | EM(rxkad_abort_resp_bad_param, "rxkad-resp-bad-param") \ | |
52 | EM(rxkad_abort_resp_call_ctr, "rxkad-resp-call-ctr") \ | |
53 | EM(rxkad_abort_resp_call_state, "rxkad-resp-call-state") \ | |
54 | EM(rxkad_abort_resp_key_expired, "rxkad-resp-key-exp") \ | |
55 | EM(rxkad_abort_resp_key_rejected, "rxkad-resp-key-rej") \ | |
56 | EM(rxkad_abort_resp_level, "rxkad-resp-level") \ | |
57 | EM(rxkad_abort_resp_nokey, "rxkad-resp-nokey") \ | |
58 | EM(rxkad_abort_resp_ooseq, "rxkad-resp-ooseq") \ | |
59 | EM(rxkad_abort_resp_short, "rxkad-resp-short") \ | |
60 | EM(rxkad_abort_resp_short_tkt, "rxkad-resp-short-tkt") \ | |
61 | EM(rxkad_abort_resp_tkt_aname, "rxkad-resp-tk-aname") \ | |
62 | EM(rxkad_abort_resp_tkt_expired, "rxkad-resp-tk-exp") \ | |
63 | EM(rxkad_abort_resp_tkt_future, "rxkad-resp-tk-future") \ | |
64 | EM(rxkad_abort_resp_tkt_inst, "rxkad-resp-tk-inst") \ | |
65 | EM(rxkad_abort_resp_tkt_len, "rxkad-resp-tk-len") \ | |
66 | EM(rxkad_abort_resp_tkt_realm, "rxkad-resp-tk-realm") \ | |
67 | EM(rxkad_abort_resp_tkt_short, "rxkad-resp-tk-short") \ | |
68 | EM(rxkad_abort_resp_tkt_sinst, "rxkad-resp-tk-sinst") \ | |
69 | EM(rxkad_abort_resp_tkt_sname, "rxkad-resp-tk-sname") \ | |
70 | EM(rxkad_abort_resp_unknown_tkt, "rxkad-resp-unknown-tkt") \ | |
71 | EM(rxkad_abort_resp_version, "rxkad-resp-version") \ | |
9d1d2b59 DH |
72 | /* RxGK security errors */ \ |
73 | EM(rxgk_abort_1_verify_mic_eproto, "rxgk1-vfy-mic-eproto") \ | |
74 | EM(rxgk_abort_2_decrypt_eproto, "rxgk2-dec-eproto") \ | |
75 | EM(rxgk_abort_2_short_data, "rxgk2-short-data") \ | |
76 | EM(rxgk_abort_2_short_encdata, "rxgk2-short-encdata") \ | |
77 | EM(rxgk_abort_2_short_header, "rxgk2-short-hdr") \ | |
78 | EM(rxgk_abort_bad_key_number, "rxgk-bad-key-num") \ | |
79 | EM(rxgk_abort_chall_key_expired, "rxgk-chall-key-exp") \ | |
80 | EM(rxgk_abort_chall_no_key, "rxgk-chall-nokey") \ | |
81 | EM(rxgk_abort_chall_short, "rxgk-chall-short") \ | |
82 | EM(rxgk_abort_resp_auth_dec, "rxgk-resp-auth-dec") \ | |
83 | EM(rxgk_abort_resp_bad_callid, "rxgk-resp-bad-callid") \ | |
84 | EM(rxgk_abort_resp_bad_nonce, "rxgk-resp-bad-nonce") \ | |
85 | EM(rxgk_abort_resp_bad_param, "rxgk-resp-bad-param") \ | |
86 | EM(rxgk_abort_resp_call_ctr, "rxgk-resp-call-ctr") \ | |
87 | EM(rxgk_abort_resp_call_state, "rxgk-resp-call-state") \ | |
88 | EM(rxgk_abort_resp_internal_error, "rxgk-resp-int-error") \ | |
89 | EM(rxgk_abort_resp_nopkg, "rxgk-resp-nopkg") \ | |
90 | EM(rxgk_abort_resp_short_applen, "rxgk-resp-short-applen") \ | |
91 | EM(rxgk_abort_resp_short_auth, "rxgk-resp-short-auth") \ | |
92 | EM(rxgk_abort_resp_short_call_list, "rxgk-resp-short-callls") \ | |
93 | EM(rxgk_abort_resp_short_packet, "rxgk-resp-short-packet") \ | |
94 | EM(rxgk_abort_resp_short_yfs_klen, "rxgk-resp-short-yfs-klen") \ | |
95 | EM(rxgk_abort_resp_short_yfs_key, "rxgk-resp-short-yfs-key") \ | |
96 | EM(rxgk_abort_resp_short_yfs_tkt, "rxgk-resp-short-yfs-tkt") \ | |
97 | EM(rxgk_abort_resp_tok_dec, "rxgk-resp-tok-dec") \ | |
98 | EM(rxgk_abort_resp_tok_internal_error, "rxgk-resp-tok-int-err") \ | |
99 | EM(rxgk_abort_resp_tok_keyerr, "rxgk-resp-tok-keyerr") \ | |
100 | EM(rxgk_abort_resp_tok_nokey, "rxgk-resp-tok-nokey") \ | |
101 | EM(rxgk_abort_resp_tok_nopkg, "rxgk-resp-tok-nopkg") \ | |
102 | EM(rxgk_abort_resp_tok_short, "rxgk-resp-tok-short") \ | |
103 | EM(rxgk_abort_resp_xdr_align, "rxgk-resp-xdr-align") \ | |
57af281e DH |
104 | /* rxrpc errors */ \ |
105 | EM(rxrpc_abort_call_improper_term, "call-improper-term") \ | |
106 | EM(rxrpc_abort_call_reset, "call-reset") \ | |
107 | EM(rxrpc_abort_call_sendmsg, "call-sendmsg") \ | |
108 | EM(rxrpc_abort_call_sock_release, "call-sock-rel") \ | |
109 | EM(rxrpc_abort_call_sock_release_tba, "call-sock-rel-tba") \ | |
110 | EM(rxrpc_abort_call_timeout, "call-timeout") \ | |
111 | EM(rxrpc_abort_no_service_key, "no-serv-key") \ | |
112 | EM(rxrpc_abort_nomem, "nomem") \ | |
5800b1cf | 113 | EM(rxrpc_abort_response_sendmsg, "resp-sendmsg") \ |
57af281e DH |
114 | EM(rxrpc_abort_service_not_offered, "serv-not-offered") \ |
115 | EM(rxrpc_abort_shut_down, "shut-down") \ | |
116 | EM(rxrpc_abort_unsupported_security, "unsup-sec") \ | |
117 | EM(rxrpc_badmsg_bad_abort, "bad-abort") \ | |
118 | EM(rxrpc_badmsg_bad_jumbo, "bad-jumbo") \ | |
119 | EM(rxrpc_badmsg_short_ack, "short-ack") \ | |
17469ae0 | 120 | EM(rxrpc_badmsg_short_ack_trailer, "short-ack-trailer") \ |
57af281e DH |
121 | EM(rxrpc_badmsg_short_hdr, "short-hdr") \ |
122 | EM(rxrpc_badmsg_unsupported_packet, "unsup-pkt") \ | |
123 | EM(rxrpc_badmsg_zero_call, "zero-call") \ | |
124 | EM(rxrpc_badmsg_zero_seq, "zero-seq") \ | |
125 | EM(rxrpc_badmsg_zero_service, "zero-service") \ | |
126 | EM(rxrpc_eproto_ackr_outside_window, "ackr-out-win") \ | |
127 | EM(rxrpc_eproto_ackr_sack_overflow, "ackr-sack-over") \ | |
128 | EM(rxrpc_eproto_ackr_short_sack, "ackr-short-sack") \ | |
129 | EM(rxrpc_eproto_ackr_zero, "ackr-zero") \ | |
130 | EM(rxrpc_eproto_bad_upgrade, "bad-upgrade") \ | |
131 | EM(rxrpc_eproto_data_after_last, "data-after-last") \ | |
132 | EM(rxrpc_eproto_different_last, "diff-last") \ | |
133 | EM(rxrpc_eproto_early_reply, "early-reply") \ | |
134 | EM(rxrpc_eproto_improper_term, "improper-term") \ | |
135 | EM(rxrpc_eproto_no_client_call, "no-cl-call") \ | |
136 | EM(rxrpc_eproto_no_client_conn, "no-cl-conn") \ | |
137 | EM(rxrpc_eproto_no_service_call, "no-sv-call") \ | |
138 | EM(rxrpc_eproto_reupgrade, "re-upgrade") \ | |
139 | EM(rxrpc_eproto_rxnull_challenge, "rxnull-chall") \ | |
140 | EM(rxrpc_eproto_rxnull_response, "rxnull-resp") \ | |
141 | EM(rxrpc_eproto_tx_rot_last, "tx-rot-last") \ | |
142 | EM(rxrpc_eproto_unexpected_ack, "unex-ack") \ | |
143 | EM(rxrpc_eproto_unexpected_ackall, "unex-ackall") \ | |
144 | EM(rxrpc_eproto_unexpected_implicit_end, "unex-impl-end") \ | |
145 | EM(rxrpc_eproto_unexpected_reply, "unex-reply") \ | |
146 | EM(rxrpc_eproto_wrong_security, "wrong-sec") \ | |
147 | EM(rxrpc_recvmsg_excess_data, "recvmsg-excess") \ | |
148 | EM(rxrpc_recvmsg_short_data, "recvmsg-short") \ | |
149 | E_(rxrpc_sendmsg_late_send, "sendmsg-late") | |
150 | ||
15f661dc | 151 | #define rxrpc_call_poke_traces \ |
a343b174 | 152 | EM(rxrpc_call_poke_abort, "Abort") \ |
03fc55ad | 153 | EM(rxrpc_call_poke_complete, "Compl") \ |
0e56ebde | 154 | EM(rxrpc_call_poke_conn_abort, "Conn-abort") \ |
15f661dc DH |
155 | EM(rxrpc_call_poke_error, "Error") \ |
156 | EM(rxrpc_call_poke_idle, "Idle") \ | |
9e3cccd1 | 157 | EM(rxrpc_call_poke_rx_packet, "Rx-packet") \ |
153f90a0 | 158 | EM(rxrpc_call_poke_set_timeout, "Set-timo") \ |
15f661dc DH |
159 | EM(rxrpc_call_poke_start, "Start") \ |
160 | EM(rxrpc_call_poke_timer, "Timer") \ | |
161 | E_(rxrpc_call_poke_timer_now, "Timer-now") | |
162 | ||
b54a134a | 163 | #define rxrpc_skb_traces \ |
9a36a6bc DH |
164 | EM(rxrpc_skb_eaten_by_unshare, "ETN unshare ") \ |
165 | EM(rxrpc_skb_eaten_by_unshare_nomem, "ETN unshar-nm") \ | |
9e3cccd1 | 166 | EM(rxrpc_skb_get_call_rx, "GET call-rx ") \ |
2953d3b8 | 167 | EM(rxrpc_skb_get_conn_secured, "GET conn-secd") \ |
9a36a6bc | 168 | EM(rxrpc_skb_get_conn_work, "GET conn-work") \ |
2d1faf7a | 169 | EM(rxrpc_skb_get_local_work, "GET locl-work") \ |
5800b1cf | 170 | EM(rxrpc_skb_get_post_oob, "GET post-oob ") \ |
2d1faf7a | 171 | EM(rxrpc_skb_get_reject_work, "GET rej-work ") \ |
9a36a6bc DH |
172 | EM(rxrpc_skb_get_to_recvmsg, "GET to-recv ") \ |
173 | EM(rxrpc_skb_get_to_recvmsg_oos, "GET to-recv-o") \ | |
174 | EM(rxrpc_skb_new_encap_rcv, "NEW encap-rcv") \ | |
175 | EM(rxrpc_skb_new_error_report, "NEW error-rpt") \ | |
176 | EM(rxrpc_skb_new_jumbo_subpacket, "NEW jumbo-sub") \ | |
5800b1cf DH |
177 | EM(rxrpc_skb_new_response_rxgk, "NEW resp-rxgk") \ |
178 | EM(rxrpc_skb_new_response_rxkad, "NEW resp-rxkd") \ | |
9a36a6bc | 179 | EM(rxrpc_skb_new_unshared, "NEW unshared ") \ |
9e3cccd1 | 180 | EM(rxrpc_skb_put_call_rx, "PUT call-rx ") \ |
5800b1cf | 181 | EM(rxrpc_skb_put_challenge, "PUT challenge") \ |
2953d3b8 | 182 | EM(rxrpc_skb_put_conn_secured, "PUT conn-secd") \ |
9a36a6bc DH |
183 | EM(rxrpc_skb_put_conn_work, "PUT conn-work") \ |
184 | EM(rxrpc_skb_put_error_report, "PUT error-rep") \ | |
185 | EM(rxrpc_skb_put_input, "PUT input ") \ | |
186 | EM(rxrpc_skb_put_jumbo_subpacket, "PUT jumbo-sub") \ | |
5800b1cf | 187 | EM(rxrpc_skb_put_oob, "PUT oob ") \ |
9a36a6bc | 188 | EM(rxrpc_skb_put_purge, "PUT purge ") \ |
5800b1cf DH |
189 | EM(rxrpc_skb_put_purge_oob, "PUT purge-oob") \ |
190 | EM(rxrpc_skb_put_response, "PUT response ") \ | |
9a36a6bc DH |
191 | EM(rxrpc_skb_put_rotate, "PUT rotate ") \ |
192 | EM(rxrpc_skb_put_unknown, "PUT unknown ") \ | |
193 | EM(rxrpc_skb_see_conn_work, "SEE conn-work") \ | |
5800b1cf | 194 | EM(rxrpc_skb_see_oob_challenge, "SEE oob-chall") \ |
9a36a6bc | 195 | EM(rxrpc_skb_see_recvmsg, "SEE recvmsg ") \ |
5800b1cf | 196 | EM(rxrpc_skb_see_recvmsg_oob, "SEE recvm-oob") \ |
9a36a6bc DH |
197 | EM(rxrpc_skb_see_reject, "SEE reject ") \ |
198 | EM(rxrpc_skb_see_rotate, "SEE rotate ") \ | |
199 | E_(rxrpc_skb_see_version, "SEE version ") | |
b54a134a | 200 | |
09d2bf59 | 201 | #define rxrpc_local_traces \ |
0fde882f | 202 | EM(rxrpc_local_free, "FREE ") \ |
f3441d41 | 203 | EM(rxrpc_local_get_call, "GET call ") \ |
0fde882f DH |
204 | EM(rxrpc_local_get_client_conn, "GET conn-cln") \ |
205 | EM(rxrpc_local_get_for_use, "GET for-use ") \ | |
206 | EM(rxrpc_local_get_peer, "GET peer ") \ | |
207 | EM(rxrpc_local_get_prealloc_conn, "GET conn-pre") \ | |
0fde882f | 208 | EM(rxrpc_local_new, "NEW ") \ |
0fde882f | 209 | EM(rxrpc_local_put_bind, "PUT bind ") \ |
f3441d41 | 210 | EM(rxrpc_local_put_call, "PUT call ") \ |
0fde882f DH |
211 | EM(rxrpc_local_put_for_use, "PUT for-use ") \ |
212 | EM(rxrpc_local_put_kill_conn, "PUT conn-kil") \ | |
213 | EM(rxrpc_local_put_peer, "PUT peer ") \ | |
8395406b | 214 | EM(rxrpc_local_put_prealloc_peer, "PUT peer-pre") \ |
0fde882f | 215 | EM(rxrpc_local_put_release_sock, "PUT rel-sock") \ |
0fde882f DH |
216 | EM(rxrpc_local_stop, "STOP ") \ |
217 | EM(rxrpc_local_stopped, "STOPPED ") \ | |
218 | EM(rxrpc_local_unuse_bind, "UNU bind ") \ | |
219 | EM(rxrpc_local_unuse_conn_work, "UNU conn-wrk") \ | |
220 | EM(rxrpc_local_unuse_peer_keepalive, "UNU peer-kpa") \ | |
221 | EM(rxrpc_local_unuse_release_sock, "UNU rel-sock") \ | |
0fde882f DH |
222 | EM(rxrpc_local_use_conn_work, "USE conn-wrk") \ |
223 | EM(rxrpc_local_use_lookup, "USE lookup ") \ | |
5e6ef4f1 | 224 | E_(rxrpc_local_use_peer_keepalive, "USE peer-kpa") |
09d2bf59 | 225 | |
1159d4b4 | 226 | #define rxrpc_peer_traces \ |
47c810a7 DH |
227 | EM(rxrpc_peer_free, "FREE ") \ |
228 | EM(rxrpc_peer_get_accept, "GET accept ") \ | |
72904d7b | 229 | EM(rxrpc_peer_get_application, "GET app ") \ |
47c810a7 | 230 | EM(rxrpc_peer_get_bundle, "GET bundle ") \ |
72904d7b | 231 | EM(rxrpc_peer_get_call, "GET call ") \ |
47c810a7 | 232 | EM(rxrpc_peer_get_client_conn, "GET cln-conn") \ |
5e6ef4f1 | 233 | EM(rxrpc_peer_get_input, "GET input ") \ |
47c810a7 DH |
234 | EM(rxrpc_peer_get_input_error, "GET inpt-err") \ |
235 | EM(rxrpc_peer_get_keepalive, "GET keepaliv") \ | |
236 | EM(rxrpc_peer_get_lookup_client, "GET look-cln") \ | |
237 | EM(rxrpc_peer_get_service_conn, "GET srv-conn") \ | |
238 | EM(rxrpc_peer_new_client, "NEW client ") \ | |
239 | EM(rxrpc_peer_new_prealloc, "NEW prealloc") \ | |
72904d7b | 240 | EM(rxrpc_peer_put_application, "PUT app ") \ |
47c810a7 DH |
241 | EM(rxrpc_peer_put_bundle, "PUT bundle ") \ |
242 | EM(rxrpc_peer_put_call, "PUT call ") \ | |
243 | EM(rxrpc_peer_put_conn, "PUT conn ") \ | |
5e6ef4f1 | 244 | EM(rxrpc_peer_put_input, "PUT input ") \ |
47c810a7 DH |
245 | EM(rxrpc_peer_put_input_error, "PUT inpt-err") \ |
246 | E_(rxrpc_peer_put_keepalive, "PUT keepaliv") | |
1159d4b4 | 247 | |
fa3492ab DH |
248 | #define rxrpc_bundle_traces \ |
249 | EM(rxrpc_bundle_free, "FREE ") \ | |
250 | EM(rxrpc_bundle_get_client_call, "GET clt-call") \ | |
251 | EM(rxrpc_bundle_get_client_conn, "GET clt-conn") \ | |
252 | EM(rxrpc_bundle_get_service_conn, "GET svc-conn") \ | |
1bab27af | 253 | EM(rxrpc_bundle_put_call, "PUT call ") \ |
fa3492ab DH |
254 | EM(rxrpc_bundle_put_conn, "PUT conn ") \ |
255 | EM(rxrpc_bundle_put_discard, "PUT discard ") \ | |
256 | E_(rxrpc_bundle_new, "NEW ") | |
257 | ||
b54a134a | 258 | #define rxrpc_conn_traces \ |
7fa25105 DH |
259 | EM(rxrpc_conn_free, "FREE ") \ |
260 | EM(rxrpc_conn_get_activate_call, "GET act-call") \ | |
261 | EM(rxrpc_conn_get_call_input, "GET inp-call") \ | |
5800b1cf | 262 | EM(rxrpc_conn_get_challenge_input, "GET inp-chal") \ |
7fa25105 DH |
263 | EM(rxrpc_conn_get_conn_input, "GET inp-conn") \ |
264 | EM(rxrpc_conn_get_idle, "GET idle ") \ | |
a00ce28b | 265 | EM(rxrpc_conn_get_poke_abort, "GET pk-abort") \ |
5800b1cf | 266 | EM(rxrpc_conn_get_poke_response, "GET response") \ |
4241a702 | 267 | EM(rxrpc_conn_get_poke_secured, "GET secured ") \ |
f2cce89a | 268 | EM(rxrpc_conn_get_poke_timer, "GET poke ") \ |
7fa25105 DH |
269 | EM(rxrpc_conn_get_service_conn, "GET svc-conn") \ |
270 | EM(rxrpc_conn_new_client, "NEW client ") \ | |
271 | EM(rxrpc_conn_new_service, "NEW service ") \ | |
7fa25105 DH |
272 | EM(rxrpc_conn_put_call, "PUT call ") \ |
273 | EM(rxrpc_conn_put_call_input, "PUT inp-call") \ | |
5800b1cf | 274 | EM(rxrpc_conn_put_challenge_input, "PUT inp-chal") \ |
7fa25105 | 275 | EM(rxrpc_conn_put_conn_input, "PUT inp-conn") \ |
7fa25105 DH |
276 | EM(rxrpc_conn_put_discard_idle, "PUT disc-idl") \ |
277 | EM(rxrpc_conn_put_local_dead, "PUT loc-dead") \ | |
278 | EM(rxrpc_conn_put_noreuse, "PUT noreuse ") \ | |
5800b1cf | 279 | EM(rxrpc_conn_put_oob, "PUT oob ") \ |
7fa25105 | 280 | EM(rxrpc_conn_put_poke, "PUT poke ") \ |
3cec055c | 281 | EM(rxrpc_conn_put_service_reaped, "PUT svc-reap") \ |
7fa25105 DH |
282 | EM(rxrpc_conn_put_unbundle, "PUT unbundle") \ |
283 | EM(rxrpc_conn_put_unidle, "PUT unidle ") \ | |
f2cce89a | 284 | EM(rxrpc_conn_put_work, "PUT work ") \ |
3cec055c | 285 | EM(rxrpc_conn_queue_challenge, "QUE chall ") \ |
a00ce28b | 286 | EM(rxrpc_conn_queue_retry_work, "QUE retry-wk") \ |
3cec055c | 287 | EM(rxrpc_conn_queue_rx_work, "QUE rx-work ") \ |
7fa25105 DH |
288 | EM(rxrpc_conn_see_new_service_conn, "SEE new-svc ") \ |
289 | EM(rxrpc_conn_see_reap_service, "SEE reap-svc") \ | |
290 | E_(rxrpc_conn_see_work, "SEE work ") | |
b54a134a DH |
291 | |
292 | #define rxrpc_client_traces \ | |
293 | EM(rxrpc_client_activate_chans, "Activa") \ | |
294 | EM(rxrpc_client_alloc, "Alloc ") \ | |
295 | EM(rxrpc_client_chan_activate, "ChActv") \ | |
296 | EM(rxrpc_client_chan_disconnect, "ChDisc") \ | |
297 | EM(rxrpc_client_chan_pass, "ChPass") \ | |
b54a134a | 298 | EM(rxrpc_client_cleanup, "Clean ") \ |
b54a134a | 299 | EM(rxrpc_client_discard, "Discar") \ |
b54a134a DH |
300 | EM(rxrpc_client_exposed, "Expose") \ |
301 | EM(rxrpc_client_replace, "Replac") \ | |
9d35d880 | 302 | EM(rxrpc_client_queue_new_call, "Q-Call") \ |
b54a134a | 303 | EM(rxrpc_client_to_active, "->Actv") \ |
245500d8 | 304 | E_(rxrpc_client_to_idle, "->Idle") |
b54a134a DH |
305 | |
306 | #define rxrpc_call_traces \ | |
5040011d | 307 | EM(rxrpc_call_get_io_thread, "GET iothread") \ |
cb0fc0c9 DH |
308 | EM(rxrpc_call_get_input, "GET input ") \ |
309 | EM(rxrpc_call_get_kernel_service, "GET krnl-srv") \ | |
310 | EM(rxrpc_call_get_notify_socket, "GET notify ") \ | |
15f661dc | 311 | EM(rxrpc_call_get_poke, "GET poke ") \ |
cb0fc0c9 DH |
312 | EM(rxrpc_call_get_recvmsg, "GET recvmsg ") \ |
313 | EM(rxrpc_call_get_release_sock, "GET rel-sock") \ | |
314 | EM(rxrpc_call_get_sendmsg, "GET sendmsg ") \ | |
cb0fc0c9 DH |
315 | EM(rxrpc_call_get_userid, "GET user-id ") \ |
316 | EM(rxrpc_call_new_client, "NEW client ") \ | |
317 | EM(rxrpc_call_new_prealloc_service, "NEW prealloc") \ | |
cb0fc0c9 | 318 | EM(rxrpc_call_put_discard_prealloc, "PUT disc-pre") \ |
f3441d41 | 319 | EM(rxrpc_call_put_discard_error, "PUT disc-err") \ |
5040011d | 320 | EM(rxrpc_call_put_io_thread, "PUT iothread") \ |
cb0fc0c9 DH |
321 | EM(rxrpc_call_put_input, "PUT input ") \ |
322 | EM(rxrpc_call_put_kernel, "PUT kernel ") \ | |
15f661dc | 323 | EM(rxrpc_call_put_poke, "PUT poke ") \ |
cb0fc0c9 DH |
324 | EM(rxrpc_call_put_recvmsg, "PUT recvmsg ") \ |
325 | EM(rxrpc_call_put_release_sock, "PUT rls-sock") \ | |
326 | EM(rxrpc_call_put_release_sock_tba, "PUT rls-sk-a") \ | |
cb0fc0c9 | 327 | EM(rxrpc_call_put_sendmsg, "PUT sendmsg ") \ |
cb0fc0c9 DH |
328 | EM(rxrpc_call_put_unnotify, "PUT unnotify") \ |
329 | EM(rxrpc_call_put_userid_exists, "PUT u-exists") \ | |
9d35d880 | 330 | EM(rxrpc_call_put_userid, "PUT user-id ") \ |
cb0fc0c9 DH |
331 | EM(rxrpc_call_see_accept, "SEE accept ") \ |
332 | EM(rxrpc_call_see_activate_client, "SEE act-clnt") \ | |
333 | EM(rxrpc_call_see_connect_failed, "SEE con-fail") \ | |
334 | EM(rxrpc_call_see_connected, "SEE connect ") \ | |
0e56ebde | 335 | EM(rxrpc_call_see_conn_abort, "SEE conn-abt") \ |
5040011d | 336 | EM(rxrpc_call_see_disconnected, "SEE disconn ") \ |
cb0fc0c9 DH |
337 | EM(rxrpc_call_see_distribute_error, "SEE dist-err") \ |
338 | EM(rxrpc_call_see_input, "SEE input ") \ | |
339 | EM(rxrpc_call_see_release, "SEE release ") \ | |
340 | EM(rxrpc_call_see_userid_exists, "SEE u-exists") \ | |
fc9de52d | 341 | EM(rxrpc_call_see_waiting_call, "SEE q-conn ") \ |
cb0fc0c9 | 342 | E_(rxrpc_call_see_zap, "SEE zap ") |
b54a134a | 343 | |
a4ea4c47 DH |
344 | #define rxrpc_txqueue_traces \ |
345 | EM(rxrpc_txqueue_await_reply, "AWR") \ | |
a4ea4c47 DH |
346 | EM(rxrpc_txqueue_end, "END") \ |
347 | EM(rxrpc_txqueue_queue, "QUE") \ | |
348 | EM(rxrpc_txqueue_queue_last, "QLS") \ | |
349 | EM(rxrpc_txqueue_rotate, "ROT") \ | |
350 | EM(rxrpc_txqueue_rotate_last, "RLS") \ | |
351 | E_(rxrpc_txqueue_wait, "WAI") | |
b54a134a | 352 | |
372d12d1 DH |
353 | #define rxrpc_txdata_traces \ |
354 | EM(rxrpc_txdata_inject_loss, " *INJ-LOSS*") \ | |
355 | EM(rxrpc_txdata_new_data, " ") \ | |
7c482665 DH |
356 | EM(rxrpc_txdata_retransmit, " *RETRANS*") \ |
357 | EM(rxrpc_txdata_tlp_new_data, " *TLP-NEW*") \ | |
358 | E_(rxrpc_txdata_tlp_retransmit, " *TLP-RETRANS*") | |
372d12d1 | 359 | |
b54a134a DH |
360 | #define rxrpc_receive_traces \ |
361 | EM(rxrpc_receive_end, "END") \ | |
362 | EM(rxrpc_receive_front, "FRN") \ | |
363 | EM(rxrpc_receive_incoming, "INC") \ | |
364 | EM(rxrpc_receive_queue, "QUE") \ | |
365 | EM(rxrpc_receive_queue_last, "QLS") \ | |
5d7edbc9 DH |
366 | EM(rxrpc_receive_queue_oos, "QUO") \ |
367 | EM(rxrpc_receive_queue_oos_last, "QOL") \ | |
368 | EM(rxrpc_receive_oos, "OOS") \ | |
369 | EM(rxrpc_receive_oos_last, "OSL") \ | |
370 | EM(rxrpc_receive_rotate, "ROT") \ | |
371 | E_(rxrpc_receive_rotate_last, "RLS") | |
b54a134a DH |
372 | |
373 | #define rxrpc_recvmsg_traces \ | |
374 | EM(rxrpc_recvmsg_cont, "CONT") \ | |
375 | EM(rxrpc_recvmsg_data_return, "DATA") \ | |
376 | EM(rxrpc_recvmsg_dequeue, "DEQU") \ | |
377 | EM(rxrpc_recvmsg_enter, "ENTR") \ | |
378 | EM(rxrpc_recvmsg_full, "FULL") \ | |
379 | EM(rxrpc_recvmsg_hole, "HOLE") \ | |
380 | EM(rxrpc_recvmsg_next, "NEXT") \ | |
5800b1cf | 381 | EM(rxrpc_recvmsg_oobq, "OOBQ") \ |
540b1c48 | 382 | EM(rxrpc_recvmsg_requeue, "REQU") \ |
b54a134a DH |
383 | EM(rxrpc_recvmsg_return, "RETN") \ |
384 | EM(rxrpc_recvmsg_terminal, "TERM") \ | |
385 | EM(rxrpc_recvmsg_to_be_accepted, "TBAC") \ | |
c0783818 | 386 | EM(rxrpc_recvmsg_unqueue, "UNQU") \ |
b54a134a DH |
387 | E_(rxrpc_recvmsg_wait, "WAIT") |
388 | ||
389 | #define rxrpc_rtt_tx_traces \ | |
4700c4d8 | 390 | EM(rxrpc_rtt_tx_cancel, "CNCE") \ |
b54a134a | 391 | EM(rxrpc_rtt_tx_data, "DATA") \ |
4700c4d8 | 392 | EM(rxrpc_rtt_tx_no_slot, "FULL") \ |
b54a134a DH |
393 | E_(rxrpc_rtt_tx_ping, "PING") |
394 | ||
395 | #define rxrpc_rtt_rx_traces \ | |
dcdff0d8 | 396 | EM(rxrpc_rtt_rx_data_ack, "DACK") \ |
4700c4d8 DH |
397 | EM(rxrpc_rtt_rx_obsolete, "OBSL") \ |
398 | EM(rxrpc_rtt_rx_lost, "LOST") \ | |
dcdff0d8 | 399 | E_(rxrpc_rtt_rx_ping_response, "PONG") |
b54a134a DH |
400 | |
401 | #define rxrpc_timer_traces \ | |
153f90a0 DH |
402 | EM(rxrpc_timer_trace_delayed_ack, "DelayAck ") \ |
403 | EM(rxrpc_timer_trace_expect_rx, "ExpectRx ") \ | |
404 | EM(rxrpc_timer_trace_hard, "HardLimit") \ | |
405 | EM(rxrpc_timer_trace_idle, "IdleLimit") \ | |
406 | EM(rxrpc_timer_trace_keepalive, "KeepAlive") \ | |
153f90a0 | 407 | EM(rxrpc_timer_trace_ping, "DelayPing") \ |
7c482665 DH |
408 | EM(rxrpc_timer_trace_rack_off, "RACK-OFF ") \ |
409 | EM(rxrpc_timer_trace_rack_zwp, "RACK-ZWP ") \ | |
410 | EM(rxrpc_timer_trace_rack_reo, "RACK-Reo ") \ | |
411 | EM(rxrpc_timer_trace_rack_tlp_pto, "TLP-PTO ") \ | |
412 | E_(rxrpc_timer_trace_rack_rto, "RTO ") | |
b54a134a DH |
413 | |
414 | #define rxrpc_propose_ack_traces \ | |
415 | EM(rxrpc_propose_ack_client_tx_end, "ClTxEnd") \ | |
12a66e77 | 416 | EM(rxrpc_propose_ack_delayed_ack, "DlydAck") \ |
b54a134a | 417 | EM(rxrpc_propose_ack_input_data, "DataIn ") \ |
530403d9 | 418 | EM(rxrpc_propose_ack_input_data_hole, "DataInH") \ |
415f44e4 | 419 | EM(rxrpc_propose_ack_ping_for_keepalive, "KeepAlv") \ |
b54a134a DH |
420 | EM(rxrpc_propose_ack_ping_for_lost_ack, "LostAck") \ |
421 | EM(rxrpc_propose_ack_ping_for_lost_reply, "LostRpl") \ | |
12a66e77 | 422 | EM(rxrpc_propose_ack_ping_for_0_retrans, "0-Retrn") \ |
eeaedc54 | 423 | EM(rxrpc_propose_ack_ping_for_mtu_probe, "MTUProb") \ |
84e28aa5 | 424 | EM(rxrpc_propose_ack_ping_for_old_rtt, "OldRtt ") \ |
b54a134a | 425 | EM(rxrpc_propose_ack_ping_for_params, "Params ") \ |
84e28aa5 | 426 | EM(rxrpc_propose_ack_ping_for_rtt, "Rtt ") \ |
b54a134a DH |
427 | EM(rxrpc_propose_ack_processing_op, "ProcOp ") \ |
428 | EM(rxrpc_propose_ack_respond_to_ack, "Rsp2Ack") \ | |
429 | EM(rxrpc_propose_ack_respond_to_ping, "Rsp2Png") \ | |
b5099340 | 430 | EM(rxrpc_propose_ack_retransmit, "Retrans") \ |
b54a134a DH |
431 | EM(rxrpc_propose_ack_retry_tx, "RetryTx") \ |
432 | EM(rxrpc_propose_ack_rotate_rx, "RxAck ") \ | |
5e6ef4f1 | 433 | EM(rxrpc_propose_ack_rx_idle, "RxIdle ") \ |
b54a134a DH |
434 | E_(rxrpc_propose_ack_terminal_ack, "ClTerm ") |
435 | ||
f7dd0dc9 DH |
436 | #define rxrpc_ca_states \ |
437 | EM(RXRPC_CA_CONGEST_AVOIDANCE, "CongAvoid") \ | |
438 | EM(RXRPC_CA_FAST_RETRANSMIT, "FastReTx ") \ | |
439 | EM(RXRPC_CA_PACKET_LOSS, "PktLoss ") \ | |
440 | E_(RXRPC_CA_SLOW_START, "SlowStart") | |
b54a134a DH |
441 | |
442 | #define rxrpc_congest_changes \ | |
443 | EM(rxrpc_cong_begin_retransmission, " Retrans") \ | |
444 | EM(rxrpc_cong_cleared_nacks, " Cleared") \ | |
445 | EM(rxrpc_cong_new_low_nack, " NewLowN") \ | |
aadf9dce | 446 | EM(rxrpc_cong_no_change, " -") \ |
b54a134a | 447 | EM(rxrpc_cong_progress, " Progres") \ |
1fc4fa2a | 448 | EM(rxrpc_cong_idle_reset, " IdleRes") \ |
b54a134a DH |
449 | EM(rxrpc_cong_retransmit_again, " ReTxAgn") \ |
450 | EM(rxrpc_cong_rtt_window_end, " RttWinE") \ | |
451 | E_(rxrpc_cong_saw_nack, " SawNack") | |
452 | ||
453 | #define rxrpc_pkts \ | |
454 | EM(0, "?00") \ | |
455 | EM(RXRPC_PACKET_TYPE_DATA, "DATA") \ | |
456 | EM(RXRPC_PACKET_TYPE_ACK, "ACK") \ | |
457 | EM(RXRPC_PACKET_TYPE_BUSY, "BUSY") \ | |
458 | EM(RXRPC_PACKET_TYPE_ABORT, "ABORT") \ | |
459 | EM(RXRPC_PACKET_TYPE_ACKALL, "ACKALL") \ | |
460 | EM(RXRPC_PACKET_TYPE_CHALLENGE, "CHALL") \ | |
461 | EM(RXRPC_PACKET_TYPE_RESPONSE, "RESP") \ | |
462 | EM(RXRPC_PACKET_TYPE_DEBUG, "DEBUG") \ | |
463 | EM(9, "?09") \ | |
464 | EM(10, "?10") \ | |
465 | EM(11, "?11") \ | |
466 | EM(12, "?12") \ | |
467 | EM(RXRPC_PACKET_TYPE_VERSION, "VERSION") \ | |
468 | EM(14, "?14") \ | |
469 | E_(15, "?15") | |
470 | ||
471 | #define rxrpc_ack_names \ | |
472 | EM(0, "-0-") \ | |
473 | EM(RXRPC_ACK_REQUESTED, "REQ") \ | |
474 | EM(RXRPC_ACK_DUPLICATE, "DUP") \ | |
475 | EM(RXRPC_ACK_OUT_OF_SEQUENCE, "OOS") \ | |
476 | EM(RXRPC_ACK_EXCEEDS_WINDOW, "WIN") \ | |
477 | EM(RXRPC_ACK_NOSPACE, "MEM") \ | |
478 | EM(RXRPC_ACK_PING, "PNG") \ | |
479 | EM(RXRPC_ACK_PING_RESPONSE, "PNR") \ | |
480 | EM(RXRPC_ACK_DELAY, "DLY") \ | |
481 | EM(RXRPC_ACK_IDLE, "IDL") \ | |
482 | E_(RXRPC_ACK__INVALID, "-?-") | |
483 | ||
f21e9348 DH |
484 | #define rxrpc_sack_traces \ |
485 | EM(rxrpc_sack_advance, "ADV") \ | |
486 | EM(rxrpc_sack_fill, "FIL") \ | |
487 | EM(rxrpc_sack_nack, "NAK") \ | |
488 | EM(rxrpc_sack_none, "---") \ | |
489 | E_(rxrpc_sack_oos, "OOS") | |
490 | ||
1bae5d22 DH |
491 | #define rxrpc_completions \ |
492 | EM(RXRPC_CALL_SUCCEEDED, "Succeeded") \ | |
493 | EM(RXRPC_CALL_REMOTELY_ABORTED, "RemoteAbort") \ | |
494 | EM(RXRPC_CALL_LOCALLY_ABORTED, "LocalAbort") \ | |
495 | EM(RXRPC_CALL_LOCAL_ERROR, "LocalError") \ | |
496 | E_(RXRPC_CALL_NETWORK_ERROR, "NetError") | |
497 | ||
4764c0da DH |
498 | #define rxrpc_tx_points \ |
499 | EM(rxrpc_tx_point_call_abort, "CallAbort") \ | |
500 | EM(rxrpc_tx_point_call_ack, "CallAck") \ | |
501 | EM(rxrpc_tx_point_call_data_frag, "CallDataFrag") \ | |
502 | EM(rxrpc_tx_point_call_data_nofrag, "CallDataNofrag") \ | |
503 | EM(rxrpc_tx_point_call_final_resend, "CallFinalResend") \ | |
504 | EM(rxrpc_tx_point_conn_abort, "ConnAbort") \ | |
505 | EM(rxrpc_tx_point_reject, "Reject") \ | |
9d1d2b59 | 506 | EM(rxrpc_tx_point_rxgk_challenge, "RxGKChall") \ |
4764c0da | 507 | EM(rxrpc_tx_point_rxkad_challenge, "RxkadChall") \ |
5800b1cf | 508 | EM(rxrpc_tx_point_response, "Response") \ |
4764c0da DH |
509 | EM(rxrpc_tx_point_version_keepalive, "VerKeepalive") \ |
510 | E_(rxrpc_tx_point_version_reply, "VerReply") | |
6b47fe1d | 511 | |
4d843be5 DH |
512 | #define rxrpc_req_ack_traces \ |
513 | EM(rxrpc_reqack_ack_lost, "ACK-LOST ") \ | |
8b5823ea | 514 | EM(rxrpc_reqack_app_stall, "APP-STALL ") \ |
4d843be5 DH |
515 | EM(rxrpc_reqack_more_rtt, "MORE-RTT ") \ |
516 | EM(rxrpc_reqack_no_srv_last, "NO-SRVLAST") \ | |
517 | EM(rxrpc_reqack_old_rtt, "OLD-RTT ") \ | |
518 | EM(rxrpc_reqack_retrans, "RETRANS ") \ | |
519 | EM(rxrpc_reqack_slow_start, "SLOW-START") \ | |
520 | E_(rxrpc_reqack_small_txwin, "SMALL-TXWN") | |
f7fa5242 | 521 | /* ---- Must update size of stat_why_req_ack[] if more are added! */ |
4d843be5 | 522 | |
02a19356 | 523 | #define rxrpc_txbuf_traces \ |
02a19356 | 524 | EM(rxrpc_txbuf_alloc_data, "ALLOC DATA ") \ |
9d1d2b59 | 525 | EM(rxrpc_txbuf_alloc_response, "ALLOC RESP ") \ |
02a19356 | 526 | EM(rxrpc_txbuf_free, "FREE ") \ |
a4ea4c47 | 527 | EM(rxrpc_txbuf_get_buffer, "GET BUFFER ") \ |
02a19356 DH |
528 | EM(rxrpc_txbuf_get_trans, "GET TRANS ") \ |
529 | EM(rxrpc_txbuf_get_retrans, "GET RETRANS") \ | |
530 | EM(rxrpc_txbuf_put_cleaned, "PUT CLEANED") \ | |
72f0c6fb | 531 | EM(rxrpc_txbuf_put_nomem, "PUT NOMEM ") \ |
02a19356 | 532 | EM(rxrpc_txbuf_put_rotated, "PUT ROTATED") \ |
9d1d2b59 | 533 | EM(rxrpc_txbuf_put_response_tx, "PUT RESP TX") \ |
02a19356 | 534 | EM(rxrpc_txbuf_put_send_aborted, "PUT SEND-X ") \ |
a4ea4c47 | 535 | EM(rxrpc_txbuf_put_trans, "PUT TRANS ") \ |
7c482665 | 536 | EM(rxrpc_txbuf_see_lost, "SEE LOST ") \ |
3feda9d6 | 537 | EM(rxrpc_txbuf_see_out_of_step, "OUT-OF-STEP") \ |
7c482665 | 538 | E_(rxrpc_txbuf_see_send_more, "SEE SEND+ ") |
02a19356 | 539 | |
b341a026 DH |
540 | #define rxrpc_tq_traces \ |
541 | EM(rxrpc_tq_alloc, "ALLOC") \ | |
542 | EM(rxrpc_tq_cleaned, "CLEAN") \ | |
543 | EM(rxrpc_tq_decant, "DCNT ") \ | |
544 | EM(rxrpc_tq_decant_advance, "DCNT>") \ | |
545 | EM(rxrpc_tq_queue, "QUEUE") \ | |
546 | EM(rxrpc_tq_queue_dup, "QUE!!") \ | |
547 | EM(rxrpc_tq_rotate, "ROT ") \ | |
548 | EM(rxrpc_tq_rotate_and_free, "ROT-F") \ | |
549 | EM(rxrpc_tq_rotate_and_keep, "ROT-K") \ | |
550 | EM(rxrpc_tq_transmit, "XMIT ") \ | |
551 | E_(rxrpc_tq_transmit_advance, "XMIT>") | |
552 | ||
eeaedc54 DH |
553 | #define rxrpc_pmtud_reduce_traces \ |
554 | EM(rxrpc_pmtud_reduce_ack, "Ack ") \ | |
555 | EM(rxrpc_pmtud_reduce_icmp, "Icmp ") \ | |
556 | E_(rxrpc_pmtud_reduce_route, "Route") | |
557 | ||
9b052c6b DH |
558 | #define rxrpc_rotate_traces \ |
559 | EM(rxrpc_rotate_trace_hack, "hard-ack") \ | |
560 | EM(rxrpc_rotate_trace_sack, "soft-ack") \ | |
561 | E_(rxrpc_rotate_trace_snak, "soft-nack") | |
562 | ||
7c482665 DH |
563 | #define rxrpc_rack_timer_modes \ |
564 | EM(RXRPC_CALL_RACKTIMER_OFF, "---") \ | |
565 | EM(RXRPC_CALL_RACKTIMER_RACK_REORDER, "REO") \ | |
566 | EM(RXRPC_CALL_RACKTIMER_TLP_PTO, "TLP") \ | |
567 | E_(RXRPC_CALL_RACKTIMER_RTO, "RTO") | |
568 | ||
569 | #define rxrpc_tlp_probe_traces \ | |
570 | EM(rxrpc_tlp_probe_trace_busy, "busy") \ | |
571 | EM(rxrpc_tlp_probe_trace_transmit_new, "transmit-new") \ | |
572 | E_(rxrpc_tlp_probe_trace_retransmit, "retransmit") | |
573 | ||
574 | #define rxrpc_tlp_ack_traces \ | |
575 | EM(rxrpc_tlp_ack_trace_acked, "acked") \ | |
576 | EM(rxrpc_tlp_ack_trace_dup_acked, "dup-acked") \ | |
577 | EM(rxrpc_tlp_ack_trace_hard_beyond, "hard-beyond") \ | |
578 | EM(rxrpc_tlp_ack_trace_incomplete, "incomplete") \ | |
579 | E_(rxrpc_tlp_ack_trace_new_data, "new-data") | |
580 | ||
dc9fd093 DH |
581 | /* |
582 | * Generate enums for tracing information. | |
583 | */ | |
584 | #ifndef __NETFS_DECLARE_TRACE_ENUMS_ONCE_ONLY | |
585 | #define __NETFS_DECLARE_TRACE_ENUMS_ONCE_ONLY | |
586 | ||
587 | #undef EM | |
588 | #undef E_ | |
589 | #define EM(a, b) a, | |
590 | #define E_(a, b) a | |
591 | ||
57af281e | 592 | enum rxrpc_abort_reason { rxrpc_abort_reasons } __mode(byte); |
fa3492ab | 593 | enum rxrpc_bundle_trace { rxrpc_bundle_traces } __mode(byte); |
15f661dc | 594 | enum rxrpc_call_poke_trace { rxrpc_call_poke_traces } __mode(byte); |
dc9fd093 DH |
595 | enum rxrpc_call_trace { rxrpc_call_traces } __mode(byte); |
596 | enum rxrpc_client_trace { rxrpc_client_traces } __mode(byte); | |
597 | enum rxrpc_congest_change { rxrpc_congest_changes } __mode(byte); | |
598 | enum rxrpc_conn_trace { rxrpc_conn_traces } __mode(byte); | |
599 | enum rxrpc_local_trace { rxrpc_local_traces } __mode(byte); | |
600 | enum rxrpc_peer_trace { rxrpc_peer_traces } __mode(byte); | |
eeaedc54 | 601 | enum rxrpc_pmtud_reduce_trace { rxrpc_pmtud_reduce_traces } __mode(byte); |
dc9fd093 DH |
602 | enum rxrpc_propose_ack_outcome { rxrpc_propose_ack_outcomes } __mode(byte); |
603 | enum rxrpc_propose_ack_trace { rxrpc_propose_ack_traces } __mode(byte); | |
604 | enum rxrpc_receive_trace { rxrpc_receive_traces } __mode(byte); | |
605 | enum rxrpc_recvmsg_trace { rxrpc_recvmsg_traces } __mode(byte); | |
4d843be5 | 606 | enum rxrpc_req_ack_trace { rxrpc_req_ack_traces } __mode(byte); |
9b052c6b | 607 | enum rxrpc_rotate_trace { rxrpc_rotate_traces } __mode(byte); |
dc9fd093 DH |
608 | enum rxrpc_rtt_rx_trace { rxrpc_rtt_rx_traces } __mode(byte); |
609 | enum rxrpc_rtt_tx_trace { rxrpc_rtt_tx_traces } __mode(byte); | |
f21e9348 | 610 | enum rxrpc_sack_trace { rxrpc_sack_traces } __mode(byte); |
dc9fd093 DH |
611 | enum rxrpc_skb_trace { rxrpc_skb_traces } __mode(byte); |
612 | enum rxrpc_timer_trace { rxrpc_timer_traces } __mode(byte); | |
7c482665 DH |
613 | enum rxrpc_tlp_ack_trace { rxrpc_tlp_ack_traces } __mode(byte); |
614 | enum rxrpc_tlp_probe_trace { rxrpc_tlp_probe_traces } __mode(byte); | |
b341a026 | 615 | enum rxrpc_tq_trace { rxrpc_tq_traces } __mode(byte); |
dc9fd093 | 616 | enum rxrpc_tx_point { rxrpc_tx_points } __mode(byte); |
02a19356 | 617 | enum rxrpc_txbuf_trace { rxrpc_txbuf_traces } __mode(byte); |
372d12d1 | 618 | enum rxrpc_txdata_trace { rxrpc_txdata_traces } __mode(byte); |
a4ea4c47 | 619 | enum rxrpc_txqueue_trace { rxrpc_txqueue_traces } __mode(byte); |
dc9fd093 DH |
620 | |
621 | #endif /* end __RXRPC_DECLARE_TRACE_ENUMS_ONCE_ONLY */ | |
622 | ||
b54a134a DH |
623 | /* |
624 | * Export enum symbols via userspace. | |
625 | */ | |
626 | #undef EM | |
627 | #undef E_ | |
57af281e DH |
628 | |
629 | #ifndef RXRPC_TRACE_ONLY_DEFINE_ENUMS | |
630 | ||
b54a134a DH |
631 | #define EM(a, b) TRACE_DEFINE_ENUM(a); |
632 | #define E_(a, b) TRACE_DEFINE_ENUM(a); | |
633 | ||
57af281e | 634 | rxrpc_abort_reasons; |
fa3492ab | 635 | rxrpc_bundle_traces; |
f7dd0dc9 | 636 | rxrpc_ca_states; |
15f661dc | 637 | rxrpc_call_poke_traces; |
b54a134a | 638 | rxrpc_call_traces; |
dc9fd093 DH |
639 | rxrpc_client_traces; |
640 | rxrpc_congest_changes; | |
dc9fd093 DH |
641 | rxrpc_conn_traces; |
642 | rxrpc_local_traces; | |
eeaedc54 | 643 | rxrpc_pmtud_reduce_traces; |
dc9fd093 | 644 | rxrpc_propose_ack_traces; |
7c482665 | 645 | rxrpc_rack_timer_modes; |
b54a134a DH |
646 | rxrpc_receive_traces; |
647 | rxrpc_recvmsg_traces; | |
4d843be5 | 648 | rxrpc_req_ack_traces; |
9b052c6b | 649 | rxrpc_rotate_traces; |
b54a134a | 650 | rxrpc_rtt_rx_traces; |
dc9fd093 | 651 | rxrpc_rtt_tx_traces; |
f21e9348 | 652 | rxrpc_sack_traces; |
dc9fd093 | 653 | rxrpc_skb_traces; |
b54a134a | 654 | rxrpc_timer_traces; |
7c482665 DH |
655 | rxrpc_tlp_ack_traces; |
656 | rxrpc_tlp_probe_traces; | |
b341a026 | 657 | rxrpc_tq_traces; |
4764c0da | 658 | rxrpc_tx_points; |
02a19356 | 659 | rxrpc_txbuf_traces; |
372d12d1 | 660 | rxrpc_txdata_traces; |
a4ea4c47 | 661 | rxrpc_txqueue_traces; |
b54a134a DH |
662 | |
663 | /* | |
664 | * Now redefine the EM() and E_() macros to map the enums to the strings that | |
665 | * will be printed in the output. | |
666 | */ | |
667 | #undef EM | |
668 | #undef E_ | |
669 | #define EM(a, b) { a, b }, | |
670 | #define E_(a, b) { a, b } | |
671 | ||
09d2bf59 | 672 | TRACE_EVENT(rxrpc_local, |
06d9532f | 673 | TP_PROTO(unsigned int local_debug_id, enum rxrpc_local_trace op, |
0fde882f | 674 | int ref, int usage), |
09d2bf59 | 675 | |
0fde882f | 676 | TP_ARGS(local_debug_id, op, ref, usage), |
09d2bf59 DH |
677 | |
678 | TP_STRUCT__entry( | |
371e68ba DH |
679 | __field(unsigned int, local) |
680 | __field(int, op) | |
681 | __field(int, ref) | |
682 | __field(int, usage) | |
09d2bf59 DH |
683 | ), |
684 | ||
685 | TP_fast_assign( | |
06d9532f | 686 | __entry->local = local_debug_id; |
09d2bf59 | 687 | __entry->op = op; |
0fde882f | 688 | __entry->ref = ref; |
09d2bf59 | 689 | __entry->usage = usage; |
09d2bf59 DH |
690 | ), |
691 | ||
0fde882f | 692 | TP_printk("L=%08x %s r=%d u=%d", |
09d2bf59 DH |
693 | __entry->local, |
694 | __print_symbolic(__entry->op, rxrpc_local_traces), | |
0fde882f DH |
695 | __entry->ref, |
696 | __entry->usage) | |
09d2bf59 DH |
697 | ); |
698 | ||
7c482665 DH |
699 | TRACE_EVENT(rxrpc_iothread_rx, |
700 | TP_PROTO(struct rxrpc_local *local, unsigned int nr_rx), | |
701 | TP_ARGS(local, nr_rx), | |
702 | TP_STRUCT__entry( | |
703 | __field(unsigned int, local) | |
704 | __field(unsigned int, nr_rx) | |
705 | ), | |
706 | TP_fast_assign( | |
707 | __entry->local = local->debug_id; | |
708 | __entry->nr_rx = nr_rx; | |
709 | ), | |
710 | TP_printk("L=%08x nrx=%u", __entry->local, __entry->nr_rx) | |
711 | ); | |
712 | ||
1159d4b4 | 713 | TRACE_EVENT(rxrpc_peer, |
47c810a7 | 714 | TP_PROTO(unsigned int peer_debug_id, int ref, enum rxrpc_peer_trace why), |
1159d4b4 | 715 | |
47c810a7 | 716 | TP_ARGS(peer_debug_id, ref, why), |
1159d4b4 DH |
717 | |
718 | TP_STRUCT__entry( | |
371e68ba DH |
719 | __field(unsigned int, peer) |
720 | __field(int, ref) | |
721 | __field(enum rxrpc_peer_trace, why) | |
1159d4b4 DH |
722 | ), |
723 | ||
724 | TP_fast_assign( | |
55f6c98e | 725 | __entry->peer = peer_debug_id; |
47c810a7 DH |
726 | __entry->ref = ref; |
727 | __entry->why = why; | |
1159d4b4 DH |
728 | ), |
729 | ||
47c810a7 | 730 | TP_printk("P=%08x %s r=%d", |
1159d4b4 | 731 | __entry->peer, |
47c810a7 DH |
732 | __print_symbolic(__entry->why, rxrpc_peer_traces), |
733 | __entry->ref) | |
1159d4b4 DH |
734 | ); |
735 | ||
fa3492ab DH |
736 | TRACE_EVENT(rxrpc_bundle, |
737 | TP_PROTO(unsigned int bundle_debug_id, int ref, enum rxrpc_bundle_trace why), | |
738 | ||
739 | TP_ARGS(bundle_debug_id, ref, why), | |
740 | ||
741 | TP_STRUCT__entry( | |
371e68ba DH |
742 | __field(unsigned int, bundle) |
743 | __field(int, ref) | |
744 | __field(int, why) | |
fa3492ab DH |
745 | ), |
746 | ||
747 | TP_fast_assign( | |
748 | __entry->bundle = bundle_debug_id; | |
749 | __entry->ref = ref; | |
750 | __entry->why = why; | |
751 | ), | |
752 | ||
753 | TP_printk("CB=%08x %s r=%d", | |
754 | __entry->bundle, | |
755 | __print_symbolic(__entry->why, rxrpc_bundle_traces), | |
756 | __entry->ref) | |
757 | ); | |
758 | ||
363deeab | 759 | TRACE_EVENT(rxrpc_conn, |
7fa25105 | 760 | TP_PROTO(unsigned int conn_debug_id, int ref, enum rxrpc_conn_trace why), |
363deeab | 761 | |
7fa25105 | 762 | TP_ARGS(conn_debug_id, ref, why), |
363deeab DH |
763 | |
764 | TP_STRUCT__entry( | |
371e68ba DH |
765 | __field(unsigned int, conn) |
766 | __field(int, ref) | |
767 | __field(int, why) | |
363deeab DH |
768 | ), |
769 | ||
770 | TP_fast_assign( | |
4c1295dc | 771 | __entry->conn = conn_debug_id; |
7fa25105 DH |
772 | __entry->ref = ref; |
773 | __entry->why = why; | |
363deeab DH |
774 | ), |
775 | ||
7fa25105 | 776 | TP_printk("C=%08x %s r=%d", |
363deeab | 777 | __entry->conn, |
7fa25105 DH |
778 | __print_symbolic(__entry->why, rxrpc_conn_traces), |
779 | __entry->ref) | |
363deeab DH |
780 | ); |
781 | ||
782 | TRACE_EVENT(rxrpc_client, | |
783 | TP_PROTO(struct rxrpc_connection *conn, int channel, | |
784 | enum rxrpc_client_trace op), | |
785 | ||
786 | TP_ARGS(conn, channel, op), | |
787 | ||
788 | TP_STRUCT__entry( | |
371e68ba DH |
789 | __field(unsigned int, conn) |
790 | __field(u32, cid) | |
791 | __field(int, channel) | |
792 | __field(int, usage) | |
793 | __field(enum rxrpc_client_trace, op) | |
363deeab DH |
794 | ), |
795 | ||
796 | TP_fast_assign( | |
245500d8 | 797 | __entry->conn = conn ? conn->debug_id : 0; |
363deeab | 798 | __entry->channel = channel; |
a0575429 | 799 | __entry->usage = conn ? refcount_read(&conn->ref) : -2; |
363deeab | 800 | __entry->op = op; |
96a9c425 | 801 | __entry->cid = conn ? conn->proto.cid : 0; |
363deeab DH |
802 | ), |
803 | ||
245500d8 | 804 | TP_printk("C=%08x h=%2d %s i=%08x u=%d", |
363deeab DH |
805 | __entry->conn, |
806 | __entry->channel, | |
b54a134a | 807 | __print_symbolic(__entry->op, rxrpc_client_traces), |
363deeab DH |
808 | __entry->cid, |
809 | __entry->usage) | |
810 | ); | |
811 | ||
e34d4234 | 812 | TRACE_EVENT(rxrpc_call, |
cb0fc0c9 DH |
813 | TP_PROTO(unsigned int call_debug_id, int ref, unsigned long aux, |
814 | enum rxrpc_call_trace why), | |
e34d4234 | 815 | |
cb0fc0c9 | 816 | TP_ARGS(call_debug_id, ref, aux, why), |
e34d4234 DH |
817 | |
818 | TP_STRUCT__entry( | |
828bebc8 DH |
819 | __field(unsigned int, call) |
820 | __field(int, ref) | |
821 | __field(int, why) | |
822 | __field(unsigned long, aux) | |
e34d4234 DH |
823 | ), |
824 | ||
825 | TP_fast_assign( | |
48c9e0ec | 826 | __entry->call = call_debug_id; |
cb0fc0c9 DH |
827 | __entry->ref = ref; |
828 | __entry->why = why; | |
e34d4234 DH |
829 | __entry->aux = aux; |
830 | ), | |
831 | ||
cb0fc0c9 | 832 | TP_printk("c=%08x %s r=%d a=%lx", |
e34d4234 | 833 | __entry->call, |
cb0fc0c9 DH |
834 | __print_symbolic(__entry->why, rxrpc_call_traces), |
835 | __entry->ref, | |
e34d4234 DH |
836 | __entry->aux) |
837 | ); | |
838 | ||
df844fd4 | 839 | TRACE_EVENT(rxrpc_skb, |
9a36a6bc DH |
840 | TP_PROTO(struct sk_buff *skb, int usage, int mod_count, |
841 | enum rxrpc_skb_trace why), | |
df844fd4 | 842 | |
9a36a6bc | 843 | TP_ARGS(skb, usage, mod_count, why), |
df844fd4 DH |
844 | |
845 | TP_STRUCT__entry( | |
371e68ba DH |
846 | __field(struct sk_buff *, skb) |
847 | __field(int, usage) | |
848 | __field(int, mod_count) | |
849 | __field(enum rxrpc_skb_trace, why) | |
df844fd4 DH |
850 | ), |
851 | ||
852 | TP_fast_assign( | |
853 | __entry->skb = skb; | |
df844fd4 DH |
854 | __entry->usage = usage; |
855 | __entry->mod_count = mod_count; | |
9a36a6bc | 856 | __entry->why = why; |
df844fd4 DH |
857 | ), |
858 | ||
9a36a6bc | 859 | TP_printk("s=%p Rx %s u=%d m=%d", |
df844fd4 | 860 | __entry->skb, |
9a36a6bc | 861 | __print_symbolic(__entry->why, rxrpc_skb_traces), |
df844fd4 | 862 | __entry->usage, |
9a36a6bc | 863 | __entry->mod_count) |
df844fd4 DH |
864 | ); |
865 | ||
49e19ec7 DH |
866 | TRACE_EVENT(rxrpc_rx_packet, |
867 | TP_PROTO(struct rxrpc_skb_priv *sp), | |
868 | ||
869 | TP_ARGS(sp), | |
870 | ||
871 | TP_STRUCT__entry( | |
371e68ba | 872 | __field_struct(struct rxrpc_host_header, hdr) |
49e19ec7 DH |
873 | ), |
874 | ||
875 | TP_fast_assign( | |
876 | memcpy(&__entry->hdr, &sp->hdr, sizeof(__entry->hdr)); | |
877 | ), | |
878 | ||
a3868bfc | 879 | TP_printk("%08x:%08x:%08x:%04x %08x %08x %02x %02x %s", |
49e19ec7 DH |
880 | __entry->hdr.epoch, __entry->hdr.cid, |
881 | __entry->hdr.callNumber, __entry->hdr.serviceId, | |
882 | __entry->hdr.serial, __entry->hdr.seq, | |
83836eb4 DH |
883 | __entry->hdr.securityIndex, __entry->hdr.flags, |
884 | __print_symbolic(__entry->hdr.type, rxrpc_pkts)) | |
49e19ec7 DH |
885 | ); |
886 | ||
887 | TRACE_EVENT(rxrpc_rx_done, | |
888 | TP_PROTO(int result, int abort_code), | |
889 | ||
890 | TP_ARGS(result, abort_code), | |
891 | ||
892 | TP_STRUCT__entry( | |
828bebc8 DH |
893 | __field(int, result) |
894 | __field(int, abort_code) | |
49e19ec7 DH |
895 | ), |
896 | ||
897 | TP_fast_assign( | |
898 | __entry->result = result; | |
899 | __entry->abort_code = abort_code; | |
900 | ), | |
901 | ||
902 | TP_printk("r=%d a=%d", __entry->result, __entry->abort_code) | |
903 | ); | |
904 | ||
8b9a7bd4 DH |
905 | TRACE_EVENT(rxrpc_abort_call, |
906 | TP_PROTO(const struct rxrpc_call *call, int abort_code), | |
907 | ||
908 | TP_ARGS(call, abort_code), | |
909 | ||
910 | TP_STRUCT__entry( | |
911 | __field(unsigned int, call_nr) | |
912 | __field(enum rxrpc_abort_reason, why) | |
913 | __field(int, abort_code) | |
914 | __field(int, error) | |
915 | ), | |
916 | ||
917 | TP_fast_assign( | |
918 | __entry->call_nr = call->debug_id; | |
919 | __entry->why = call->send_abort_why; | |
920 | __entry->abort_code = abort_code; | |
921 | __entry->error = call->send_abort_err; | |
922 | ), | |
923 | ||
924 | TP_printk("c=%08x a=%d e=%d %s", | |
925 | __entry->call_nr, | |
926 | __entry->abort_code, __entry->error, | |
927 | __print_symbolic(__entry->why, rxrpc_abort_reasons)) | |
928 | ); | |
929 | ||
5a42976d | 930 | TRACE_EVENT(rxrpc_abort, |
57af281e DH |
931 | TP_PROTO(unsigned int call_nr, enum rxrpc_abort_reason why, |
932 | u32 cid, u32 call_id, rxrpc_seq_t seq, int abort_code, int error), | |
5a42976d | 933 | |
a25e21f0 | 934 | TP_ARGS(call_nr, why, cid, call_id, seq, abort_code, error), |
5a42976d DH |
935 | |
936 | TP_STRUCT__entry( | |
371e68ba DH |
937 | __field(unsigned int, call_nr) |
938 | __field(enum rxrpc_abort_reason, why) | |
939 | __field(u32, cid) | |
940 | __field(u32, call_id) | |
941 | __field(rxrpc_seq_t, seq) | |
942 | __field(int, abort_code) | |
943 | __field(int, error) | |
5a42976d DH |
944 | ), |
945 | ||
946 | TP_fast_assign( | |
a25e21f0 | 947 | __entry->call_nr = call_nr; |
57af281e | 948 | __entry->why = why; |
5a42976d DH |
949 | __entry->cid = cid; |
950 | __entry->call_id = call_id; | |
951 | __entry->abort_code = abort_code; | |
952 | __entry->error = error; | |
953 | __entry->seq = seq; | |
954 | ), | |
955 | ||
a25e21f0 DH |
956 | TP_printk("c=%08x %08x:%08x s=%u a=%d e=%d %s", |
957 | __entry->call_nr, | |
5a42976d | 958 | __entry->cid, __entry->call_id, __entry->seq, |
57af281e DH |
959 | __entry->abort_code, __entry->error, |
960 | __print_symbolic(__entry->why, rxrpc_abort_reasons)) | |
5a42976d DH |
961 | ); |
962 | ||
1bae5d22 DH |
963 | TRACE_EVENT(rxrpc_call_complete, |
964 | TP_PROTO(struct rxrpc_call *call), | |
965 | ||
966 | TP_ARGS(call), | |
967 | ||
968 | TP_STRUCT__entry( | |
371e68ba DH |
969 | __field(unsigned int, call) |
970 | __field(enum rxrpc_call_completion, compl) | |
971 | __field(int, error) | |
972 | __field(u32, abort_code) | |
1bae5d22 DH |
973 | ), |
974 | ||
975 | TP_fast_assign( | |
976 | __entry->call = call->debug_id; | |
977 | __entry->compl = call->completion; | |
978 | __entry->error = call->error; | |
979 | __entry->abort_code = call->abort_code; | |
980 | ), | |
981 | ||
982 | TP_printk("c=%08x %s r=%d ac=%d", | |
983 | __entry->call, | |
984 | __print_symbolic(__entry->compl, rxrpc_completions), | |
985 | __entry->error, | |
986 | __entry->abort_code) | |
987 | ); | |
988 | ||
a4ea4c47 DH |
989 | TRACE_EVENT(rxrpc_txqueue, |
990 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_txqueue_trace why), | |
a124fe3e DH |
991 | |
992 | TP_ARGS(call, why), | |
993 | ||
994 | TP_STRUCT__entry( | |
371e68ba DH |
995 | __field(unsigned int, call) |
996 | __field(enum rxrpc_txqueue_trace, why) | |
371e68ba | 997 | __field(rxrpc_seq_t, tx_bottom) |
203457e1 | 998 | __field(rxrpc_seq_t, acks_hard_ack) |
371e68ba | 999 | __field(rxrpc_seq_t, tx_top) |
b341a026 | 1000 | __field(rxrpc_seq_t, send_top) |
371e68ba | 1001 | __field(int, tx_winsize) |
a124fe3e DH |
1002 | ), |
1003 | ||
1004 | TP_fast_assign( | |
a25e21f0 | 1005 | __entry->call = call->debug_id; |
a124fe3e | 1006 | __entry->why = why; |
a4ea4c47 | 1007 | __entry->tx_bottom = call->tx_bottom; |
203457e1 | 1008 | __entry->acks_hard_ack = call->acks_hard_ack; |
a124fe3e | 1009 | __entry->tx_top = call->tx_top; |
b341a026 | 1010 | __entry->send_top = call->send_top; |
b1d9f7fd | 1011 | __entry->tx_winsize = call->tx_winsize; |
a124fe3e DH |
1012 | ), |
1013 | ||
203457e1 | 1014 | TP_printk("c=%08x %s b=%08x h=%08x n=%u/%u/%u/%u", |
a124fe3e | 1015 | __entry->call, |
a4ea4c47 DH |
1016 | __print_symbolic(__entry->why, rxrpc_txqueue_traces), |
1017 | __entry->tx_bottom, | |
203457e1 DH |
1018 | __entry->acks_hard_ack, |
1019 | __entry->acks_hard_ack - __entry->tx_bottom, | |
1020 | __entry->tx_top - __entry->acks_hard_ack, | |
b341a026 | 1021 | __entry->send_top - __entry->tx_top, |
b1d9f7fd DH |
1022 | __entry->tx_winsize) |
1023 | ); | |
1024 | ||
149d002b | 1025 | TRACE_EVENT(rxrpc_transmit, |
b341a026 | 1026 | TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t send_top, int space), |
149d002b | 1027 | |
b341a026 | 1028 | TP_ARGS(call, send_top, space), |
149d002b DH |
1029 | |
1030 | TP_STRUCT__entry( | |
1031 | __field(unsigned int, call) | |
1032 | __field(rxrpc_seq_t, seq) | |
1033 | __field(u16, space) | |
1034 | __field(u16, tx_winsize) | |
1035 | __field(u16, cong_cwnd) | |
1036 | __field(u16, cong_extra) | |
1037 | __field(u16, in_flight) | |
1038 | __field(u16, prepared) | |
1039 | __field(u16, pmtud_jumbo) | |
1040 | ), | |
1041 | ||
1042 | TP_fast_assign( | |
1043 | __entry->call = call->debug_id; | |
b341a026 | 1044 | __entry->seq = call->tx_top + 1; |
149d002b DH |
1045 | __entry->space = space; |
1046 | __entry->tx_winsize = call->tx_winsize; | |
1047 | __entry->cong_cwnd = call->cong_cwnd; | |
1048 | __entry->cong_extra = call->cong_extra; | |
b341a026 | 1049 | __entry->prepared = send_top - call->tx_bottom; |
692c4caa | 1050 | __entry->in_flight = call->tx_top - call->tx_bottom; |
149d002b DH |
1051 | __entry->pmtud_jumbo = call->peer->pmtud_jumbo; |
1052 | ), | |
1053 | ||
1054 | TP_printk("c=%08x q=%08x sp=%u tw=%u cw=%u+%u pr=%u if=%u pj=%u", | |
1055 | __entry->call, | |
1056 | __entry->seq, | |
1057 | __entry->space, | |
1058 | __entry->tx_winsize, | |
1059 | __entry->cong_cwnd, | |
1060 | __entry->cong_extra, | |
1061 | __entry->prepared, | |
1062 | __entry->in_flight, | |
1063 | __entry->pmtud_jumbo) | |
1064 | ); | |
1065 | ||
b341a026 DH |
1066 | TRACE_EVENT(rxrpc_tx_rotate, |
1067 | TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, rxrpc_seq_t to), | |
1068 | ||
1069 | TP_ARGS(call, seq, to), | |
1070 | ||
1071 | TP_STRUCT__entry( | |
1072 | __field(unsigned int, call) | |
1073 | __field(rxrpc_seq_t, seq) | |
1074 | __field(rxrpc_seq_t, to) | |
1075 | __field(rxrpc_seq_t, top) | |
1076 | ), | |
1077 | ||
1078 | TP_fast_assign( | |
1079 | __entry->call = call->debug_id; | |
1080 | __entry->seq = seq; | |
1081 | __entry->to = to; | |
1082 | __entry->top = call->tx_top; | |
1083 | ), | |
1084 | ||
1085 | TP_printk("c=%08x q=%08x-%08x-%08x", | |
1086 | __entry->call, | |
1087 | __entry->seq, | |
1088 | __entry->to, | |
1089 | __entry->top) | |
1090 | ); | |
1091 | ||
b1d9f7fd | 1092 | TRACE_EVENT(rxrpc_rx_data, |
4764c0da | 1093 | TP_PROTO(unsigned int call, rxrpc_seq_t seq, |
d4d02d8b | 1094 | rxrpc_serial_t serial, u8 flags), |
b1d9f7fd | 1095 | |
d4d02d8b | 1096 | TP_ARGS(call, seq, serial, flags), |
b1d9f7fd DH |
1097 | |
1098 | TP_STRUCT__entry( | |
828bebc8 DH |
1099 | __field(unsigned int, call) |
1100 | __field(rxrpc_seq_t, seq) | |
1101 | __field(rxrpc_serial_t, serial) | |
1102 | __field(u8, flags) | |
b1d9f7fd DH |
1103 | ), |
1104 | ||
1105 | TP_fast_assign( | |
4764c0da | 1106 | __entry->call = call; |
b1d9f7fd DH |
1107 | __entry->seq = seq; |
1108 | __entry->serial = serial; | |
1109 | __entry->flags = flags; | |
b1d9f7fd DH |
1110 | ), |
1111 | ||
d4d02d8b | 1112 | TP_printk("c=%08x DATA %08x q=%08x fl=%02x", |
b1d9f7fd DH |
1113 | __entry->call, |
1114 | __entry->serial, | |
1115 | __entry->seq, | |
d4d02d8b | 1116 | __entry->flags) |
a124fe3e DH |
1117 | ); |
1118 | ||
ec71eb9a | 1119 | TRACE_EVENT(rxrpc_rx_ack, |
203457e1 | 1120 | TP_PROTO(struct rxrpc_call *call, struct rxrpc_skb_priv *sp), |
ec71eb9a | 1121 | |
203457e1 | 1122 | TP_ARGS(call, sp), |
ec71eb9a DH |
1123 | |
1124 | TP_STRUCT__entry( | |
828bebc8 DH |
1125 | __field(unsigned int, call) |
1126 | __field(rxrpc_serial_t, serial) | |
1127 | __field(rxrpc_serial_t, ack_serial) | |
1128 | __field(rxrpc_seq_t, first) | |
1129 | __field(rxrpc_seq_t, prev) | |
1130 | __field(u8, reason) | |
1131 | __field(u8, n_acks) | |
a3d7f46d | 1132 | __field(u8, user_status) |
ec71eb9a DH |
1133 | ), |
1134 | ||
1135 | TP_fast_assign( | |
203457e1 DH |
1136 | __entry->call = call->debug_id; |
1137 | __entry->serial = sp->hdr.serial; | |
a3d7f46d | 1138 | __entry->user_status = sp->hdr.userStatus; |
203457e1 DH |
1139 | __entry->ack_serial = sp->ack.acked_serial; |
1140 | __entry->first = sp->ack.first_ack; | |
1141 | __entry->prev = sp->ack.prev_ack; | |
1142 | __entry->reason = sp->ack.reason; | |
1143 | __entry->n_acks = sp->ack.nr_acks; | |
ec71eb9a DH |
1144 | ), |
1145 | ||
a3d7f46d | 1146 | TP_printk("c=%08x %08x %s r=%08x us=%02x f=%08x p=%08x n=%u", |
ec71eb9a | 1147 | __entry->call, |
b1d9f7fd | 1148 | __entry->serial, |
b54a134a | 1149 | __print_symbolic(__entry->reason, rxrpc_ack_names), |
b1d9f7fd | 1150 | __entry->ack_serial, |
a3d7f46d | 1151 | __entry->user_status, |
ec71eb9a | 1152 | __entry->first, |
b1d9f7fd | 1153 | __entry->prev, |
ec71eb9a DH |
1154 | __entry->n_acks) |
1155 | ); | |
1156 | ||
005ede28 DH |
1157 | TRACE_EVENT(rxrpc_rx_abort, |
1158 | TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t serial, | |
1159 | u32 abort_code), | |
1160 | ||
1161 | TP_ARGS(call, serial, abort_code), | |
1162 | ||
1163 | TP_STRUCT__entry( | |
828bebc8 DH |
1164 | __field(unsigned int, call) |
1165 | __field(rxrpc_serial_t, serial) | |
1166 | __field(u32, abort_code) | |
005ede28 DH |
1167 | ), |
1168 | ||
1169 | TP_fast_assign( | |
a25e21f0 | 1170 | __entry->call = call->debug_id; |
005ede28 DH |
1171 | __entry->serial = serial; |
1172 | __entry->abort_code = abort_code; | |
1173 | ), | |
1174 | ||
a25e21f0 | 1175 | TP_printk("c=%08x ABORT %08x ac=%d", |
005ede28 DH |
1176 | __entry->call, |
1177 | __entry->serial, | |
1178 | __entry->abort_code) | |
1179 | ); | |
1180 | ||
0e56ebde DH |
1181 | TRACE_EVENT(rxrpc_rx_conn_abort, |
1182 | TP_PROTO(const struct rxrpc_connection *conn, const struct sk_buff *skb), | |
1183 | ||
1184 | TP_ARGS(conn, skb), | |
1185 | ||
1186 | TP_STRUCT__entry( | |
1187 | __field(unsigned int, conn) | |
1188 | __field(rxrpc_serial_t, serial) | |
1189 | __field(u32, abort_code) | |
1190 | ), | |
1191 | ||
1192 | TP_fast_assign( | |
1193 | __entry->conn = conn->debug_id; | |
1194 | __entry->serial = rxrpc_skb(skb)->hdr.serial; | |
1195 | __entry->abort_code = skb->priority; | |
1196 | ), | |
1197 | ||
1198 | TP_printk("C=%08x ABORT %08x ac=%d", | |
1199 | __entry->conn, | |
1200 | __entry->serial, | |
1201 | __entry->abort_code) | |
1202 | ); | |
1203 | ||
fba69957 DH |
1204 | TRACE_EVENT(rxrpc_tx_challenge, |
1205 | TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial, | |
1206 | u32 version, u32 nonce), | |
1207 | ||
1208 | TP_ARGS(conn, serial, version, nonce), | |
1209 | ||
1210 | TP_STRUCT__entry( | |
1211 | __field(unsigned int, conn) | |
1212 | __field(rxrpc_serial_t, serial) | |
1213 | __field(u32, version) | |
1214 | __field(u32, nonce) | |
1215 | __field(u16, service_id) | |
1216 | __field(u8, security_ix) | |
1217 | ), | |
1218 | ||
1219 | TP_fast_assign( | |
1220 | __entry->conn = conn->debug_id; | |
1221 | __entry->serial = serial; | |
1222 | __entry->version = version; | |
1223 | __entry->nonce = nonce; | |
1224 | __entry->service_id = conn->service_id; | |
1225 | __entry->security_ix = conn->security_ix; | |
1226 | ), | |
1227 | ||
1228 | TP_printk("C=%08x CHALLENGE r=%08x sv=%u+%u v=%x n=%x", | |
1229 | __entry->conn, | |
1230 | __entry->serial, | |
1231 | __entry->service_id, | |
1232 | __entry->security_ix, | |
1233 | __entry->version, | |
1234 | __entry->nonce) | |
1235 | ); | |
1236 | ||
2ebdb26e DH |
1237 | TRACE_EVENT(rxrpc_rx_challenge, |
1238 | TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial, | |
1239 | u32 version, u32 nonce, u32 min_level), | |
1240 | ||
1241 | TP_ARGS(conn, serial, version, nonce, min_level), | |
1242 | ||
1243 | TP_STRUCT__entry( | |
828bebc8 DH |
1244 | __field(unsigned int, conn) |
1245 | __field(rxrpc_serial_t, serial) | |
1246 | __field(u32, version) | |
1247 | __field(u32, nonce) | |
1248 | __field(u32, min_level) | |
fba69957 | 1249 | __field(u16, service_id) |
9d1d2b59 | 1250 | __field(u8, security_ix) |
2ebdb26e DH |
1251 | ), |
1252 | ||
1253 | TP_fast_assign( | |
1254 | __entry->conn = conn->debug_id; | |
1255 | __entry->serial = serial; | |
1256 | __entry->version = version; | |
1257 | __entry->nonce = nonce; | |
1258 | __entry->min_level = min_level; | |
fba69957 | 1259 | __entry->service_id = conn->service_id; |
9d1d2b59 | 1260 | __entry->security_ix = conn->security_ix; |
2ebdb26e DH |
1261 | ), |
1262 | ||
fba69957 | 1263 | TP_printk("C=%08x CHALLENGE r=%08x sv=%u+%u v=%x n=%x ml=%x", |
2ebdb26e DH |
1264 | __entry->conn, |
1265 | __entry->serial, | |
fba69957 | 1266 | __entry->service_id, |
9d1d2b59 | 1267 | __entry->security_ix, |
2ebdb26e DH |
1268 | __entry->version, |
1269 | __entry->nonce, | |
1270 | __entry->min_level) | |
1271 | ); | |
1272 | ||
fba69957 DH |
1273 | TRACE_EVENT(rxrpc_tx_response, |
1274 | TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial, | |
1275 | struct rxrpc_skb_priv *rsp), | |
1276 | ||
1277 | TP_ARGS(conn, serial, rsp), | |
1278 | ||
1279 | TP_STRUCT__entry( | |
1280 | __field(unsigned int, conn) | |
1281 | __field(rxrpc_serial_t, serial) | |
1282 | __field(rxrpc_serial_t, challenge) | |
1283 | __field(u32, version) | |
1284 | __field(u32, kvno) | |
1285 | __field(u16, ticket_len) | |
1286 | __field(u16, appdata_len) | |
1287 | __field(u16, service_id) | |
1288 | __field(u8, security_ix) | |
1289 | ), | |
1290 | ||
1291 | TP_fast_assign( | |
1292 | __entry->conn = conn->debug_id; | |
1293 | __entry->serial = serial; | |
1294 | __entry->challenge = rsp->resp.challenge_serial; | |
1295 | __entry->version = rsp->resp.version; | |
1296 | __entry->kvno = rsp->resp.kvno; | |
1297 | __entry->ticket_len = rsp->resp.ticket_len; | |
1298 | __entry->service_id = conn->service_id; | |
1299 | __entry->security_ix = conn->security_ix; | |
1300 | ), | |
1301 | ||
1302 | TP_printk("C=%08x RESPONSE r=%08x cr=%08x sv=%u+%u v=%x kv=%x tl=%u", | |
1303 | __entry->conn, | |
1304 | __entry->serial, | |
1305 | __entry->challenge, | |
1306 | __entry->service_id, | |
1307 | __entry->security_ix, | |
1308 | __entry->version, | |
1309 | __entry->kvno, | |
1310 | __entry->ticket_len) | |
1311 | ); | |
1312 | ||
2ebdb26e DH |
1313 | TRACE_EVENT(rxrpc_rx_response, |
1314 | TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial, | |
1315 | u32 version, u32 kvno, u32 ticket_len), | |
1316 | ||
1317 | TP_ARGS(conn, serial, version, kvno, ticket_len), | |
1318 | ||
1319 | TP_STRUCT__entry( | |
828bebc8 DH |
1320 | __field(unsigned int, conn) |
1321 | __field(rxrpc_serial_t, serial) | |
1322 | __field(u32, version) | |
1323 | __field(u32, kvno) | |
1324 | __field(u32, ticket_len) | |
9d1d2b59 | 1325 | __field(u8, security_ix) |
2ebdb26e DH |
1326 | ), |
1327 | ||
1328 | TP_fast_assign( | |
1329 | __entry->conn = conn->debug_id; | |
1330 | __entry->serial = serial; | |
1331 | __entry->version = version; | |
1332 | __entry->kvno = kvno; | |
1333 | __entry->ticket_len = ticket_len; | |
9d1d2b59 | 1334 | __entry->security_ix = conn->security_ix; |
2ebdb26e DH |
1335 | ), |
1336 | ||
9d1d2b59 | 1337 | TP_printk("C=%08x RESPONSE r=%08x sx=%u v=%x kvno=%x tl=%x", |
2ebdb26e DH |
1338 | __entry->conn, |
1339 | __entry->serial, | |
9d1d2b59 | 1340 | __entry->security_ix, |
2ebdb26e DH |
1341 | __entry->version, |
1342 | __entry->kvno, | |
1343 | __entry->ticket_len) | |
1344 | ); | |
1345 | ||
740586d2 DH |
1346 | TRACE_EVENT(rxrpc_rx_rwind_change, |
1347 | TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t serial, | |
1348 | u32 rwind, bool wake), | |
1349 | ||
1350 | TP_ARGS(call, serial, rwind, wake), | |
1351 | ||
1352 | TP_STRUCT__entry( | |
828bebc8 DH |
1353 | __field(unsigned int, call) |
1354 | __field(rxrpc_serial_t, serial) | |
1355 | __field(u32, rwind) | |
1356 | __field(bool, wake) | |
740586d2 DH |
1357 | ), |
1358 | ||
1359 | TP_fast_assign( | |
a25e21f0 | 1360 | __entry->call = call->debug_id; |
740586d2 DH |
1361 | __entry->serial = serial; |
1362 | __entry->rwind = rwind; | |
1363 | __entry->wake = wake; | |
1364 | ), | |
1365 | ||
a25e21f0 | 1366 | TP_printk("c=%08x %08x rw=%u%s", |
740586d2 DH |
1367 | __entry->call, |
1368 | __entry->serial, | |
1369 | __entry->rwind, | |
1370 | __entry->wake ? " wake" : "") | |
1371 | ); | |
1372 | ||
4764c0da DH |
1373 | TRACE_EVENT(rxrpc_tx_packet, |
1374 | TP_PROTO(unsigned int call_id, struct rxrpc_wire_header *whdr, | |
1375 | enum rxrpc_tx_point where), | |
1376 | ||
1377 | TP_ARGS(call_id, whdr, where), | |
1378 | ||
1379 | TP_STRUCT__entry( | |
371e68ba DH |
1380 | __field(unsigned int, call) |
1381 | __field(enum rxrpc_tx_point, where) | |
1382 | __field_struct(struct rxrpc_wire_header, whdr) | |
4764c0da DH |
1383 | ), |
1384 | ||
1385 | TP_fast_assign( | |
1386 | __entry->call = call_id; | |
1387 | memcpy(&__entry->whdr, whdr, sizeof(__entry->whdr)); | |
4e2abd3c | 1388 | __entry->where = where; |
4764c0da DH |
1389 | ), |
1390 | ||
1391 | TP_printk("c=%08x %08x:%08x:%08x:%04x %08x %08x %02x %02x %s %s", | |
1392 | __entry->call, | |
1393 | ntohl(__entry->whdr.epoch), | |
1394 | ntohl(__entry->whdr.cid), | |
1395 | ntohl(__entry->whdr.callNumber), | |
1396 | ntohs(__entry->whdr.serviceId), | |
1397 | ntohl(__entry->whdr.serial), | |
1398 | ntohl(__entry->whdr.seq), | |
1399 | __entry->whdr.type, __entry->whdr.flags, | |
1400 | __entry->whdr.type <= 15 ? | |
1401 | __print_symbolic(__entry->whdr.type, rxrpc_pkts) : "?UNK", | |
1402 | __print_symbolic(__entry->where, rxrpc_tx_points)) | |
1403 | ); | |
1404 | ||
be832aec DH |
1405 | TRACE_EVENT(rxrpc_tx_data, |
1406 | TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, | |
372d12d1 DH |
1407 | rxrpc_serial_t serial, unsigned int flags, |
1408 | enum rxrpc_txdata_trace trace), | |
be832aec | 1409 | |
372d12d1 | 1410 | TP_ARGS(call, seq, serial, flags, trace), |
be832aec DH |
1411 | |
1412 | TP_STRUCT__entry( | |
828bebc8 DH |
1413 | __field(unsigned int, call) |
1414 | __field(rxrpc_seq_t, seq) | |
1415 | __field(rxrpc_serial_t, serial) | |
1416 | __field(u32, cid) | |
1417 | __field(u32, call_id) | |
12bdff73 | 1418 | __field(u16, flags) |
372d12d1 | 1419 | __field(enum rxrpc_txdata_trace, trace) |
be832aec DH |
1420 | ), |
1421 | ||
1422 | TP_fast_assign( | |
a25e21f0 | 1423 | __entry->call = call->debug_id; |
4764c0da DH |
1424 | __entry->cid = call->cid; |
1425 | __entry->call_id = call->call_id; | |
be832aec DH |
1426 | __entry->seq = seq; |
1427 | __entry->serial = serial; | |
1428 | __entry->flags = flags; | |
372d12d1 | 1429 | __entry->trace = trace; |
be832aec DH |
1430 | ), |
1431 | ||
372d12d1 | 1432 | TP_printk("c=%08x DATA %08x:%08x %08x q=%08x fl=%02x%s", |
be832aec | 1433 | __entry->call, |
4764c0da DH |
1434 | __entry->cid, |
1435 | __entry->call_id, | |
be832aec DH |
1436 | __entry->serial, |
1437 | __entry->seq, | |
12bdff73 | 1438 | __entry->flags & RXRPC_TXBUF_WIRE_FLAGS, |
372d12d1 | 1439 | __print_symbolic(__entry->trace, rxrpc_txdata_traces)) |
be832aec DH |
1440 | ); |
1441 | ||
f3639df2 | 1442 | TRACE_EVENT(rxrpc_tx_ack, |
4764c0da | 1443 | TP_PROTO(unsigned int call, rxrpc_serial_t serial, |
be832aec | 1444 | rxrpc_seq_t ack_first, rxrpc_serial_t ack_serial, |
b5099340 DH |
1445 | u8 reason, u8 n_acks, u16 rwind, |
1446 | enum rxrpc_propose_ack_trace trace), | |
f3639df2 | 1447 | |
b5099340 | 1448 | TP_ARGS(call, serial, ack_first, ack_serial, reason, n_acks, rwind, trace), |
f3639df2 DH |
1449 | |
1450 | TP_STRUCT__entry( | |
828bebc8 DH |
1451 | __field(unsigned int, call) |
1452 | __field(rxrpc_serial_t, serial) | |
1453 | __field(rxrpc_seq_t, ack_first) | |
1454 | __field(rxrpc_serial_t, ack_serial) | |
1455 | __field(u8, reason) | |
1456 | __field(u8, n_acks) | |
f789bff2 | 1457 | __field(u16, rwind) |
b5099340 | 1458 | __field(enum rxrpc_propose_ack_trace, trace) |
f3639df2 DH |
1459 | ), |
1460 | ||
1461 | TP_fast_assign( | |
4764c0da | 1462 | __entry->call = call; |
f3639df2 | 1463 | __entry->serial = serial; |
be832aec DH |
1464 | __entry->ack_first = ack_first; |
1465 | __entry->ack_serial = ack_serial; | |
f3639df2 DH |
1466 | __entry->reason = reason; |
1467 | __entry->n_acks = n_acks; | |
f789bff2 | 1468 | __entry->rwind = rwind; |
b5099340 | 1469 | __entry->trace = trace; |
f3639df2 DH |
1470 | ), |
1471 | ||
b5099340 | 1472 | TP_printk(" c=%08x ACK %08x %s f=%08x r=%08x n=%u rw=%u %s", |
f3639df2 | 1473 | __entry->call, |
f3639df2 | 1474 | __entry->serial, |
b54a134a | 1475 | __print_symbolic(__entry->reason, rxrpc_ack_names), |
be832aec DH |
1476 | __entry->ack_first, |
1477 | __entry->ack_serial, | |
f789bff2 | 1478 | __entry->n_acks, |
b5099340 DH |
1479 | __entry->rwind, |
1480 | __print_symbolic(__entry->trace, rxrpc_propose_ack_traces)) | |
f3639df2 DH |
1481 | ); |
1482 | ||
58dc63c9 DH |
1483 | TRACE_EVENT(rxrpc_receive, |
1484 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_receive_trace why, | |
1485 | rxrpc_serial_t serial, rxrpc_seq_t seq), | |
1486 | ||
1487 | TP_ARGS(call, why, serial, seq), | |
1488 | ||
1489 | TP_STRUCT__entry( | |
371e68ba DH |
1490 | __field(unsigned int, call) |
1491 | __field(enum rxrpc_receive_trace, why) | |
1492 | __field(rxrpc_serial_t, serial) | |
1493 | __field(rxrpc_seq_t, seq) | |
5bbf9533 DH |
1494 | __field(rxrpc_seq_t, window) |
1495 | __field(rxrpc_seq_t, wtop) | |
58dc63c9 DH |
1496 | ), |
1497 | ||
1498 | TP_fast_assign( | |
a25e21f0 | 1499 | __entry->call = call->debug_id; |
58dc63c9 DH |
1500 | __entry->why = why; |
1501 | __entry->serial = serial; | |
1502 | __entry->seq = seq; | |
5bbf9533 DH |
1503 | __entry->window = call->ackr_window; |
1504 | __entry->wtop = call->ackr_wtop; | |
58dc63c9 DH |
1505 | ), |
1506 | ||
a25e21f0 | 1507 | TP_printk("c=%08x %s r=%08x q=%08x w=%08x-%08x", |
58dc63c9 | 1508 | __entry->call, |
b54a134a | 1509 | __print_symbolic(__entry->why, rxrpc_receive_traces), |
58dc63c9 DH |
1510 | __entry->serial, |
1511 | __entry->seq, | |
5bbf9533 DH |
1512 | __entry->window, |
1513 | __entry->wtop) | |
58dc63c9 DH |
1514 | ); |
1515 | ||
84997905 | 1516 | TRACE_EVENT(rxrpc_recvmsg, |
0e50d999 | 1517 | TP_PROTO(unsigned int call_debug_id, enum rxrpc_recvmsg_trace why, |
faf92e8d DH |
1518 | int ret), |
1519 | ||
0e50d999 | 1520 | TP_ARGS(call_debug_id, why, ret), |
faf92e8d DH |
1521 | |
1522 | TP_STRUCT__entry( | |
371e68ba DH |
1523 | __field(unsigned int, call) |
1524 | __field(enum rxrpc_recvmsg_trace, why) | |
1525 | __field(int, ret) | |
faf92e8d DH |
1526 | ), |
1527 | ||
1528 | TP_fast_assign( | |
0e50d999 | 1529 | __entry->call = call_debug_id; |
faf92e8d DH |
1530 | __entry->why = why; |
1531 | __entry->ret = ret; | |
1532 | ), | |
1533 | ||
1534 | TP_printk("c=%08x %s ret=%d", | |
1535 | __entry->call, | |
1536 | __print_symbolic(__entry->why, rxrpc_recvmsg_traces), | |
1537 | __entry->ret) | |
1538 | ); | |
1539 | ||
1540 | TRACE_EVENT(rxrpc_recvdata, | |
84997905 DH |
1541 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_recvmsg_trace why, |
1542 | rxrpc_seq_t seq, unsigned int offset, unsigned int len, | |
1543 | int ret), | |
1544 | ||
1545 | TP_ARGS(call, why, seq, offset, len, ret), | |
1546 | ||
1547 | TP_STRUCT__entry( | |
371e68ba DH |
1548 | __field(unsigned int, call) |
1549 | __field(enum rxrpc_recvmsg_trace, why) | |
1550 | __field(rxrpc_seq_t, seq) | |
1551 | __field(unsigned int, offset) | |
1552 | __field(unsigned int, len) | |
1553 | __field(int, ret) | |
84997905 DH |
1554 | ), |
1555 | ||
1556 | TP_fast_assign( | |
db9b2e0a | 1557 | __entry->call = call ? call->debug_id : 0; |
84997905 DH |
1558 | __entry->why = why; |
1559 | __entry->seq = seq; | |
1560 | __entry->offset = offset; | |
1561 | __entry->len = len; | |
1562 | __entry->ret = ret; | |
1563 | ), | |
1564 | ||
a25e21f0 | 1565 | TP_printk("c=%08x %s q=%08x o=%u l=%u ret=%d", |
84997905 | 1566 | __entry->call, |
b54a134a | 1567 | __print_symbolic(__entry->why, rxrpc_recvmsg_traces), |
84997905 DH |
1568 | __entry->seq, |
1569 | __entry->offset, | |
1570 | __entry->len, | |
1571 | __entry->ret) | |
1572 | ); | |
1573 | ||
cf1a6474 DH |
1574 | TRACE_EVENT(rxrpc_rtt_tx, |
1575 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_tx_trace why, | |
4700c4d8 | 1576 | int slot, rxrpc_serial_t send_serial), |
cf1a6474 | 1577 | |
4700c4d8 | 1578 | TP_ARGS(call, why, slot, send_serial), |
cf1a6474 DH |
1579 | |
1580 | TP_STRUCT__entry( | |
371e68ba DH |
1581 | __field(unsigned int, call) |
1582 | __field(enum rxrpc_rtt_tx_trace, why) | |
1583 | __field(int, slot) | |
1584 | __field(rxrpc_serial_t, send_serial) | |
cf1a6474 DH |
1585 | ), |
1586 | ||
1587 | TP_fast_assign( | |
a25e21f0 | 1588 | __entry->call = call->debug_id; |
cf1a6474 | 1589 | __entry->why = why; |
4700c4d8 | 1590 | __entry->slot = slot; |
cf1a6474 DH |
1591 | __entry->send_serial = send_serial; |
1592 | ), | |
1593 | ||
4700c4d8 | 1594 | TP_printk("c=%08x [%d] %s sr=%08x", |
cf1a6474 | 1595 | __entry->call, |
4700c4d8 | 1596 | __entry->slot, |
b54a134a | 1597 | __print_symbolic(__entry->why, rxrpc_rtt_tx_traces), |
cf1a6474 DH |
1598 | __entry->send_serial) |
1599 | ); | |
1600 | ||
1601 | TRACE_EVENT(rxrpc_rtt_rx, | |
1602 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_rx_trace why, | |
4700c4d8 | 1603 | int slot, |
cf1a6474 | 1604 | rxrpc_serial_t send_serial, rxrpc_serial_t resp_serial, |
93dfca65 | 1605 | u32 rtt, u32 srtt, u32 rto), |
cf1a6474 | 1606 | |
93dfca65 | 1607 | TP_ARGS(call, why, slot, send_serial, resp_serial, rtt, srtt, rto), |
cf1a6474 DH |
1608 | |
1609 | TP_STRUCT__entry( | |
371e68ba DH |
1610 | __field(unsigned int, call) |
1611 | __field(enum rxrpc_rtt_rx_trace, why) | |
1612 | __field(int, slot) | |
1613 | __field(rxrpc_serial_t, send_serial) | |
1614 | __field(rxrpc_serial_t, resp_serial) | |
1615 | __field(u32, rtt) | |
93dfca65 | 1616 | __field(u32, srtt) |
371e68ba | 1617 | __field(u32, rto) |
93dfca65 | 1618 | __field(u32, min_rtt) |
cf1a6474 DH |
1619 | ), |
1620 | ||
1621 | TP_fast_assign( | |
a25e21f0 | 1622 | __entry->call = call->debug_id; |
cf1a6474 | 1623 | __entry->why = why; |
4700c4d8 | 1624 | __entry->slot = slot; |
cf1a6474 DH |
1625 | __entry->send_serial = send_serial; |
1626 | __entry->resp_serial = resp_serial; | |
1627 | __entry->rtt = rtt; | |
93dfca65 | 1628 | __entry->srtt = srtt; |
c410bf01 | 1629 | __entry->rto = rto; |
b40ef2b8 | 1630 | __entry->min_rtt = minmax_get(&call->min_rtt) |
cf1a6474 DH |
1631 | ), |
1632 | ||
93dfca65 | 1633 | TP_printk("c=%08x [%d] %s sr=%08x rr=%08x rtt=%u srtt=%u rto=%u min=%u", |
cf1a6474 | 1634 | __entry->call, |
4700c4d8 | 1635 | __entry->slot, |
b54a134a | 1636 | __print_symbolic(__entry->why, rxrpc_rtt_rx_traces), |
cf1a6474 DH |
1637 | __entry->send_serial, |
1638 | __entry->resp_serial, | |
1639 | __entry->rtt, | |
93dfca65 DH |
1640 | __entry->srtt / 8, |
1641 | __entry->rto, | |
1642 | __entry->min_rtt) | |
cf1a6474 DH |
1643 | ); |
1644 | ||
153f90a0 DH |
1645 | TRACE_EVENT(rxrpc_timer_set, |
1646 | TP_PROTO(struct rxrpc_call *call, ktime_t delay, | |
1647 | enum rxrpc_timer_trace why), | |
fc7ab6d2 | 1648 | |
153f90a0 | 1649 | TP_ARGS(call, delay, why), |
fc7ab6d2 DH |
1650 | |
1651 | TP_STRUCT__entry( | |
828bebc8 DH |
1652 | __field(unsigned int, call) |
1653 | __field(enum rxrpc_timer_trace, why) | |
153f90a0 | 1654 | __field(ktime_t, delay) |
fc7ab6d2 DH |
1655 | ), |
1656 | ||
1657 | TP_fast_assign( | |
a25e21f0 | 1658 | __entry->call = call->debug_id; |
a158bdd3 | 1659 | __entry->why = why; |
153f90a0 | 1660 | __entry->delay = delay; |
fc7ab6d2 DH |
1661 | ), |
1662 | ||
153f90a0 | 1663 | TP_printk("c=%08x %s to=%lld", |
fc7ab6d2 | 1664 | __entry->call, |
b54a134a | 1665 | __print_symbolic(__entry->why, rxrpc_timer_traces), |
153f90a0 DH |
1666 | ktime_to_us(__entry->delay)) |
1667 | ); | |
1668 | ||
1669 | TRACE_EVENT(rxrpc_timer_exp, | |
1670 | TP_PROTO(struct rxrpc_call *call, ktime_t delay, | |
1671 | enum rxrpc_timer_trace why), | |
1672 | ||
1673 | TP_ARGS(call, delay, why), | |
1674 | ||
1675 | TP_STRUCT__entry( | |
1676 | __field(unsigned int, call) | |
1677 | __field(enum rxrpc_timer_trace, why) | |
1678 | __field(ktime_t, delay) | |
1679 | ), | |
1680 | ||
1681 | TP_fast_assign( | |
1682 | __entry->call = call->debug_id; | |
1683 | __entry->why = why; | |
1684 | __entry->delay = delay; | |
1685 | ), | |
1686 | ||
1687 | TP_printk("c=%08x %s to=%lld", | |
1688 | __entry->call, | |
1689 | __print_symbolic(__entry->why, rxrpc_timer_traces), | |
1690 | ktime_to_us(__entry->delay)) | |
1691 | ); | |
1692 | ||
1693 | TRACE_EVENT(rxrpc_timer_can, | |
1694 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_timer_trace why), | |
1695 | ||
1696 | TP_ARGS(call, why), | |
1697 | ||
1698 | TP_STRUCT__entry( | |
1699 | __field(unsigned int, call) | |
1700 | __field(enum rxrpc_timer_trace, why) | |
1701 | ), | |
1702 | ||
1703 | TP_fast_assign( | |
1704 | __entry->call = call->debug_id; | |
1705 | __entry->why = why; | |
1706 | ), | |
1707 | ||
1708 | TP_printk("c=%08x %s", | |
1709 | __entry->call, | |
1710 | __print_symbolic(__entry->why, rxrpc_timer_traces)) | |
1711 | ); | |
1712 | ||
1713 | TRACE_EVENT(rxrpc_timer_restart, | |
1714 | TP_PROTO(struct rxrpc_call *call, ktime_t delay, unsigned long delayj), | |
1715 | ||
1716 | TP_ARGS(call, delay, delayj), | |
1717 | ||
1718 | TP_STRUCT__entry( | |
1719 | __field(unsigned int, call) | |
1720 | __field(unsigned long, delayj) | |
1721 | __field(ktime_t, delay) | |
1722 | ), | |
1723 | ||
1724 | TP_fast_assign( | |
1725 | __entry->call = call->debug_id; | |
1726 | __entry->delayj = delayj; | |
1727 | __entry->delay = delay; | |
1728 | ), | |
1729 | ||
1730 | TP_printk("c=%08x to=%lld j=%ld", | |
1731 | __entry->call, | |
1732 | ktime_to_us(__entry->delay), | |
1733 | __entry->delayj) | |
fc7ab6d2 DH |
1734 | ); |
1735 | ||
334dfbfc | 1736 | TRACE_EVENT(rxrpc_timer_expired, |
153f90a0 | 1737 | TP_PROTO(struct rxrpc_call *call), |
334dfbfc | 1738 | |
153f90a0 | 1739 | TP_ARGS(call), |
334dfbfc DH |
1740 | |
1741 | TP_STRUCT__entry( | |
828bebc8 | 1742 | __field(unsigned int, call) |
334dfbfc DH |
1743 | ), |
1744 | ||
1745 | TP_fast_assign( | |
1746 | __entry->call = call->debug_id; | |
334dfbfc DH |
1747 | ), |
1748 | ||
153f90a0 DH |
1749 | TP_printk("c=%08x EXPIRED", |
1750 | __entry->call) | |
334dfbfc DH |
1751 | ); |
1752 | ||
89b475ab DH |
1753 | TRACE_EVENT(rxrpc_rx_lose, |
1754 | TP_PROTO(struct rxrpc_skb_priv *sp), | |
1755 | ||
1756 | TP_ARGS(sp), | |
1757 | ||
1758 | TP_STRUCT__entry( | |
371e68ba | 1759 | __field_struct(struct rxrpc_host_header, hdr) |
89b475ab DH |
1760 | ), |
1761 | ||
1762 | TP_fast_assign( | |
1763 | memcpy(&__entry->hdr, &sp->hdr, sizeof(__entry->hdr)); | |
1764 | ), | |
1765 | ||
1766 | TP_printk("%08x:%08x:%08x:%04x %08x %08x %02x %02x %s *LOSE*", | |
1767 | __entry->hdr.epoch, __entry->hdr.cid, | |
1768 | __entry->hdr.callNumber, __entry->hdr.serviceId, | |
1769 | __entry->hdr.serial, __entry->hdr.seq, | |
1770 | __entry->hdr.type, __entry->hdr.flags, | |
b54a134a DH |
1771 | __entry->hdr.type <= 15 ? |
1772 | __print_symbolic(__entry->hdr.type, rxrpc_pkts) : "?UNK") | |
89b475ab DH |
1773 | ); |
1774 | ||
9c7ad434 DH |
1775 | TRACE_EVENT(rxrpc_propose_ack, |
1776 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_propose_ack_trace why, | |
530403d9 | 1777 | u8 ack_reason, rxrpc_serial_t serial), |
9c7ad434 | 1778 | |
530403d9 | 1779 | TP_ARGS(call, why, ack_reason, serial), |
9c7ad434 DH |
1780 | |
1781 | TP_STRUCT__entry( | |
371e68ba DH |
1782 | __field(unsigned int, call) |
1783 | __field(enum rxrpc_propose_ack_trace, why) | |
1784 | __field(rxrpc_serial_t, serial) | |
1785 | __field(u8, ack_reason) | |
9c7ad434 DH |
1786 | ), |
1787 | ||
1788 | TP_fast_assign( | |
a25e21f0 | 1789 | __entry->call = call->debug_id; |
9c7ad434 DH |
1790 | __entry->why = why; |
1791 | __entry->serial = serial; | |
1792 | __entry->ack_reason = ack_reason; | |
9c7ad434 DH |
1793 | ), |
1794 | ||
530403d9 | 1795 | TP_printk("c=%08x %s %s r=%08x", |
9c7ad434 | 1796 | __entry->call, |
b54a134a DH |
1797 | __print_symbolic(__entry->why, rxrpc_propose_ack_traces), |
1798 | __print_symbolic(__entry->ack_reason, rxrpc_ack_names), | |
530403d9 | 1799 | __entry->serial) |
9c7ad434 DH |
1800 | ); |
1801 | ||
72f0c6fb DH |
1802 | TRACE_EVENT(rxrpc_send_ack, |
1803 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_propose_ack_trace why, | |
1804 | u8 ack_reason, rxrpc_serial_t serial), | |
1805 | ||
1806 | TP_ARGS(call, why, ack_reason, serial), | |
1807 | ||
1808 | TP_STRUCT__entry( | |
371e68ba DH |
1809 | __field(unsigned int, call) |
1810 | __field(enum rxrpc_propose_ack_trace, why) | |
1811 | __field(rxrpc_serial_t, serial) | |
1812 | __field(u8, ack_reason) | |
72f0c6fb DH |
1813 | ), |
1814 | ||
1815 | TP_fast_assign( | |
1816 | __entry->call = call->debug_id; | |
1817 | __entry->why = why; | |
1818 | __entry->serial = serial; | |
1819 | __entry->ack_reason = ack_reason; | |
1820 | ), | |
1821 | ||
1822 | TP_printk("c=%08x %s %s r=%08x", | |
1823 | __entry->call, | |
1824 | __print_symbolic(__entry->why, rxrpc_propose_ack_traces), | |
1825 | __print_symbolic(__entry->ack_reason, rxrpc_ack_names), | |
1826 | __entry->serial) | |
1827 | ); | |
1828 | ||
530403d9 DH |
1829 | TRACE_EVENT(rxrpc_drop_ack, |
1830 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_propose_ack_trace why, | |
1831 | u8 ack_reason, rxrpc_serial_t serial, bool nobuf), | |
1832 | ||
1833 | TP_ARGS(call, why, ack_reason, serial, nobuf), | |
1834 | ||
1835 | TP_STRUCT__entry( | |
371e68ba DH |
1836 | __field(unsigned int, call) |
1837 | __field(enum rxrpc_propose_ack_trace, why) | |
1838 | __field(rxrpc_serial_t, serial) | |
1839 | __field(u8, ack_reason) | |
1840 | __field(bool, nobuf) | |
530403d9 DH |
1841 | ), |
1842 | ||
1843 | TP_fast_assign( | |
1844 | __entry->call = call->debug_id; | |
1845 | __entry->why = why; | |
1846 | __entry->serial = serial; | |
1847 | __entry->ack_reason = ack_reason; | |
1848 | __entry->nobuf = nobuf; | |
1849 | ), | |
1850 | ||
1851 | TP_printk("c=%08x %s %s r=%08x nbf=%u", | |
1852 | __entry->call, | |
1853 | __print_symbolic(__entry->why, rxrpc_propose_ack_traces), | |
1854 | __print_symbolic(__entry->ack_reason, rxrpc_ack_names), | |
1855 | __entry->serial, __entry->nobuf) | |
1856 | ); | |
1857 | ||
c6672e3f | 1858 | TRACE_EVENT(rxrpc_retransmit, |
b341a026 DH |
1859 | TP_PROTO(struct rxrpc_call *call, |
1860 | struct rxrpc_send_data_req *req, | |
7c482665 | 1861 | struct rxrpc_txbuf *txb), |
c6672e3f | 1862 | |
7c482665 | 1863 | TP_ARGS(call, req, txb), |
c6672e3f DH |
1864 | |
1865 | TP_STRUCT__entry( | |
828bebc8 | 1866 | __field(unsigned int, call) |
9b052c6b | 1867 | __field(unsigned int, qbase) |
828bebc8 | 1868 | __field(rxrpc_seq_t, seq) |
ba132d84 | 1869 | __field(rxrpc_serial_t, serial) |
c6672e3f DH |
1870 | ), |
1871 | ||
1872 | TP_fast_assign( | |
a25e21f0 | 1873 | __entry->call = call->debug_id; |
9b052c6b | 1874 | __entry->qbase = req->tq->qbase; |
b341a026 DH |
1875 | __entry->seq = req->seq; |
1876 | __entry->serial = txb->serial; | |
c6672e3f DH |
1877 | ), |
1878 | ||
7c482665 | 1879 | TP_printk("c=%08x tq=%x q=%x r=%x", |
c6672e3f | 1880 | __entry->call, |
9b052c6b | 1881 | __entry->qbase, |
c6672e3f | 1882 | __entry->seq, |
7c482665 | 1883 | __entry->serial) |
c6672e3f DH |
1884 | ); |
1885 | ||
57494343 | 1886 | TRACE_EVENT(rxrpc_congest, |
dcdff0d8 | 1887 | TP_PROTO(struct rxrpc_call *call, struct rxrpc_ack_summary *summary), |
57494343 | 1888 | |
dcdff0d8 | 1889 | TP_ARGS(call, summary), |
57494343 DH |
1890 | |
1891 | TP_STRUCT__entry( | |
371e68ba | 1892 | __field(unsigned int, call) |
f7dd0dc9 | 1893 | __field(enum rxrpc_ca_state, ca_state) |
371e68ba DH |
1894 | __field(rxrpc_seq_t, hard_ack) |
1895 | __field(rxrpc_seq_t, top) | |
1896 | __field(rxrpc_seq_t, lowest_nak) | |
f7dd0dc9 DH |
1897 | __field(u16, nr_sacks) |
1898 | __field(u16, nr_snacks) | |
1899 | __field(u16, cwnd) | |
1900 | __field(u16, ssthresh) | |
1901 | __field(u16, cumul_acks) | |
1902 | __field(u16, dup_acks) | |
371e68ba | 1903 | __field_struct(struct rxrpc_ack_summary, sum) |
57494343 DH |
1904 | ), |
1905 | ||
1906 | TP_fast_assign( | |
a25e21f0 | 1907 | __entry->call = call->debug_id; |
f7dd0dc9 | 1908 | __entry->ca_state = call->cong_ca_state; |
203457e1 | 1909 | __entry->hard_ack = call->acks_hard_ack; |
57494343 DH |
1910 | __entry->top = call->tx_top; |
1911 | __entry->lowest_nak = call->acks_lowest_nak; | |
f7dd0dc9 DH |
1912 | __entry->nr_sacks = call->acks_nr_sacks; |
1913 | __entry->nr_snacks = call->acks_nr_snacks; | |
1914 | __entry->cwnd = call->cong_cwnd; | |
1915 | __entry->ssthresh = call->cong_ssthresh; | |
1916 | __entry->cumul_acks = call->cong_cumul_acks; | |
1917 | __entry->dup_acks = call->cong_dup_acks; | |
57494343 DH |
1918 | memcpy(&__entry->sum, summary, sizeof(__entry->sum)); |
1919 | ), | |
1920 | ||
9b052c6b | 1921 | TP_printk("c=%08x r=%08x %s q=%08x %s cw=%u ss=%u A=%u+%u/%u+%u r=%u b=%u u=%u d=%u l=%x%s%s%s", |
57494343 | 1922 | __entry->call, |
dcdff0d8 | 1923 | __entry->sum.acked_serial, |
b54a134a | 1924 | __print_symbolic(__entry->sum.ack_reason, rxrpc_ack_names), |
57494343 | 1925 | __entry->hard_ack, |
f7dd0dc9 DH |
1926 | __print_symbolic(__entry->ca_state, rxrpc_ca_states), |
1927 | __entry->cwnd, | |
1928 | __entry->ssthresh, | |
9b052c6b DH |
1929 | __entry->nr_sacks, __entry->sum.nr_new_sacks, |
1930 | __entry->nr_snacks, __entry->sum.nr_new_snacks, | |
1931 | __entry->sum.nr_new_hacks, | |
57494343 | 1932 | __entry->top - __entry->hard_ack, |
f7dd0dc9 DH |
1933 | __entry->cumul_acks, |
1934 | __entry->dup_acks, | |
1935 | __entry->lowest_nak, __entry->sum.new_low_snack ? "!" : "", | |
1936 | __print_symbolic(__entry->sum.change, rxrpc_congest_changes), | |
57494343 DH |
1937 | __entry->sum.retrans_timeo ? " rTxTo" : "") |
1938 | ); | |
1939 | ||
32cf8edb | 1940 | TRACE_EVENT(rxrpc_reset_cwnd, |
7c482665 | 1941 | TP_PROTO(struct rxrpc_call *call, ktime_t since_last_tx, ktime_t rtt), |
32cf8edb | 1942 | |
7c482665 | 1943 | TP_ARGS(call, since_last_tx, rtt), |
32cf8edb DH |
1944 | |
1945 | TP_STRUCT__entry( | |
828bebc8 | 1946 | __field(unsigned int, call) |
f7dd0dc9 | 1947 | __field(enum rxrpc_ca_state, ca_state) |
828bebc8 DH |
1948 | __field(unsigned short, cwnd) |
1949 | __field(unsigned short, extra) | |
1950 | __field(rxrpc_seq_t, hard_ack) | |
1951 | __field(rxrpc_seq_t, prepared) | |
1952 | __field(ktime_t, since_last_tx) | |
7c482665 | 1953 | __field(ktime_t, rtt) |
828bebc8 | 1954 | __field(bool, has_data) |
32cf8edb DH |
1955 | ), |
1956 | ||
1957 | TP_fast_assign( | |
1958 | __entry->call = call->debug_id; | |
f7dd0dc9 | 1959 | __entry->ca_state = call->cong_ca_state; |
32cf8edb DH |
1960 | __entry->cwnd = call->cong_cwnd; |
1961 | __entry->extra = call->cong_extra; | |
203457e1 | 1962 | __entry->hard_ack = call->acks_hard_ack; |
b341a026 | 1963 | __entry->prepared = call->send_top - call->tx_bottom; |
7c482665 DH |
1964 | __entry->since_last_tx = since_last_tx; |
1965 | __entry->rtt = rtt; | |
b341a026 | 1966 | __entry->has_data = call->tx_bottom != call->tx_top; |
32cf8edb DH |
1967 | ), |
1968 | ||
7c482665 | 1969 | TP_printk("c=%08x q=%08x %s cw=%u+%u pr=%u tm=%llu/%llu d=%u", |
32cf8edb DH |
1970 | __entry->call, |
1971 | __entry->hard_ack, | |
f7dd0dc9 | 1972 | __print_symbolic(__entry->ca_state, rxrpc_ca_states), |
32cf8edb DH |
1973 | __entry->cwnd, |
1974 | __entry->extra, | |
1975 | __entry->prepared, | |
7c482665 DH |
1976 | ktime_to_us(__entry->since_last_tx), |
1977 | ktime_to_us(__entry->rtt), | |
32cf8edb DH |
1978 | __entry->has_data) |
1979 | ); | |
1980 | ||
b1d9f7fd DH |
1981 | TRACE_EVENT(rxrpc_disconnect_call, |
1982 | TP_PROTO(struct rxrpc_call *call), | |
1983 | ||
1984 | TP_ARGS(call), | |
1985 | ||
1986 | TP_STRUCT__entry( | |
828bebc8 DH |
1987 | __field(unsigned int, call) |
1988 | __field(u32, abort_code) | |
b1d9f7fd DH |
1989 | ), |
1990 | ||
1991 | TP_fast_assign( | |
a25e21f0 | 1992 | __entry->call = call->debug_id; |
b1d9f7fd DH |
1993 | __entry->abort_code = call->abort_code; |
1994 | ), | |
1995 | ||
a25e21f0 | 1996 | TP_printk("c=%08x ab=%08x", |
b1d9f7fd DH |
1997 | __entry->call, |
1998 | __entry->abort_code) | |
1999 | ); | |
2000 | ||
2001 | TRACE_EVENT(rxrpc_improper_term, | |
2002 | TP_PROTO(struct rxrpc_call *call), | |
2003 | ||
2004 | TP_ARGS(call), | |
2005 | ||
2006 | TP_STRUCT__entry( | |
828bebc8 DH |
2007 | __field(unsigned int, call) |
2008 | __field(u32, abort_code) | |
b1d9f7fd DH |
2009 | ), |
2010 | ||
2011 | TP_fast_assign( | |
a25e21f0 | 2012 | __entry->call = call->debug_id; |
b1d9f7fd DH |
2013 | __entry->abort_code = call->abort_code; |
2014 | ), | |
2015 | ||
a25e21f0 | 2016 | TP_printk("c=%08x ab=%08x", |
b1d9f7fd DH |
2017 | __entry->call, |
2018 | __entry->abort_code) | |
2019 | ); | |
2020 | ||
89ca6948 DH |
2021 | TRACE_EVENT(rxrpc_connect_call, |
2022 | TP_PROTO(struct rxrpc_call *call), | |
2023 | ||
2024 | TP_ARGS(call), | |
2025 | ||
2026 | TP_STRUCT__entry( | |
371e68ba DH |
2027 | __field(unsigned int, call) |
2028 | __field(unsigned long, user_call_ID) | |
2029 | __field(u32, cid) | |
2030 | __field(u32, call_id) | |
2031 | __field_struct(struct sockaddr_rxrpc, srx) | |
89ca6948 DH |
2032 | ), |
2033 | ||
2034 | TP_fast_assign( | |
a25e21f0 | 2035 | __entry->call = call->debug_id; |
89ca6948 DH |
2036 | __entry->user_call_ID = call->user_call_ID; |
2037 | __entry->cid = call->cid; | |
2038 | __entry->call_id = call->call_id; | |
5e6ef4f1 | 2039 | __entry->srx = call->dest_srx; |
89ca6948 DH |
2040 | ), |
2041 | ||
5e6ef4f1 | 2042 | TP_printk("c=%08x u=%p %08x:%08x dst=%pISp", |
89ca6948 DH |
2043 | __entry->call, |
2044 | (void *)__entry->user_call_ID, | |
2045 | __entry->cid, | |
5e6ef4f1 DH |
2046 | __entry->call_id, |
2047 | &__entry->srx.transport) | |
89ca6948 DH |
2048 | ); |
2049 | ||
9b052c6b DH |
2050 | TRACE_EVENT(rxrpc_apply_acks, |
2051 | TP_PROTO(struct rxrpc_call *call, struct rxrpc_txqueue *tq), | |
2052 | ||
2053 | TP_ARGS(call, tq), | |
2054 | ||
2055 | TP_STRUCT__entry( | |
2056 | __field(unsigned int, call) | |
2057 | __field(unsigned int, nr_rep) | |
2058 | __field(rxrpc_seq_t, qbase) | |
2059 | __field(unsigned long, acks) | |
2060 | ), | |
2061 | ||
2062 | TP_fast_assign( | |
2063 | __entry->call = call->debug_id; | |
2064 | __entry->qbase = tq->qbase; | |
2065 | __entry->acks = tq->segment_acked; | |
2066 | __entry->nr_rep = tq->nr_reported_acks; | |
2067 | ), | |
2068 | ||
2069 | TP_printk("c=%08x tq=%x acks=%016lx rep=%u", | |
2070 | __entry->call, | |
2071 | __entry->qbase, | |
2072 | __entry->acks, | |
2073 | __entry->nr_rep) | |
2074 | ); | |
2075 | ||
827efed6 | 2076 | TRACE_EVENT(rxrpc_resend, |
9b052c6b | 2077 | TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t ack_serial), |
827efed6 | 2078 | |
9b052c6b | 2079 | TP_ARGS(call, ack_serial), |
827efed6 DH |
2080 | |
2081 | TP_STRUCT__entry( | |
828bebc8 DH |
2082 | __field(unsigned int, call) |
2083 | __field(rxrpc_seq_t, seq) | |
2084 | __field(rxrpc_seq_t, transmitted) | |
2085 | __field(rxrpc_serial_t, ack_serial) | |
827efed6 DH |
2086 | ), |
2087 | ||
2088 | TP_fast_assign( | |
a25e21f0 | 2089 | __entry->call = call->debug_id; |
203457e1 | 2090 | __entry->seq = call->acks_hard_ack; |
5e6ef4f1 | 2091 | __entry->transmitted = call->tx_transmitted; |
9b052c6b | 2092 | __entry->ack_serial = ack_serial; |
827efed6 DH |
2093 | ), |
2094 | ||
5e6ef4f1 | 2095 | TP_printk("c=%08x r=%x q=%x tq=%x", |
827efed6 | 2096 | __entry->call, |
5e6ef4f1 DH |
2097 | __entry->ack_serial, |
2098 | __entry->seq, | |
2099 | __entry->transmitted) | |
827efed6 DH |
2100 | ); |
2101 | ||
7c482665 DH |
2102 | TRACE_EVENT(rxrpc_resend_lost, |
2103 | TP_PROTO(struct rxrpc_call *call, struct rxrpc_txqueue *tq, unsigned long lost), | |
2104 | ||
2105 | TP_ARGS(call, tq, lost), | |
2106 | ||
2107 | TP_STRUCT__entry( | |
2108 | __field(unsigned int, call) | |
2109 | __field(rxrpc_seq_t, qbase) | |
2110 | __field(u8, nr_rep) | |
2111 | __field(unsigned long, lost) | |
2112 | ), | |
2113 | ||
2114 | TP_fast_assign( | |
2115 | __entry->call = call->debug_id; | |
2116 | __entry->qbase = tq->qbase; | |
2117 | __entry->nr_rep = tq->nr_reported_acks; | |
2118 | __entry->lost = lost; | |
2119 | ), | |
2120 | ||
2121 | TP_printk("c=%08x tq=%x lost=%016lx nr=%u", | |
2122 | __entry->call, | |
2123 | __entry->qbase, | |
2124 | __entry->lost, | |
2125 | __entry->nr_rep) | |
2126 | ); | |
2127 | ||
9b052c6b DH |
2128 | TRACE_EVENT(rxrpc_rotate, |
2129 | TP_PROTO(struct rxrpc_call *call, struct rxrpc_txqueue *tq, | |
2130 | struct rxrpc_ack_summary *summary, rxrpc_seq_t seq, | |
2131 | enum rxrpc_rotate_trace trace), | |
2132 | ||
2133 | TP_ARGS(call, tq, summary, seq, trace), | |
2134 | ||
2135 | TP_STRUCT__entry( | |
2136 | __field(unsigned int, call) | |
2137 | __field(rxrpc_seq_t, qbase) | |
2138 | __field(rxrpc_seq_t, seq) | |
2139 | __field(unsigned int, nr_rep) | |
2140 | __field(enum rxrpc_rotate_trace, trace) | |
2141 | ), | |
2142 | ||
2143 | TP_fast_assign( | |
2144 | __entry->call = call->debug_id; | |
2145 | __entry->qbase = tq->qbase; | |
2146 | __entry->seq = seq; | |
2147 | __entry->nr_rep = tq->nr_reported_acks; | |
2148 | __entry->trace = trace; | |
2149 | ), | |
2150 | ||
2151 | TP_printk("c=%08x tq=%x q=%x nr=%x %s", | |
2152 | __entry->call, | |
2153 | __entry->qbase, | |
2154 | __entry->seq, | |
2155 | __entry->nr_rep, | |
2156 | __print_symbolic(__entry->trace, rxrpc_rotate_traces)) | |
2157 | ); | |
2158 | ||
494337c9 DH |
2159 | TRACE_EVENT(rxrpc_rx_icmp, |
2160 | TP_PROTO(struct rxrpc_peer *peer, struct sock_extended_err *ee, | |
2161 | struct sockaddr_rxrpc *srx), | |
2162 | ||
2163 | TP_ARGS(peer, ee, srx), | |
2164 | ||
2165 | TP_STRUCT__entry( | |
371e68ba DH |
2166 | __field(unsigned int, peer) |
2167 | __field_struct(struct sock_extended_err, ee) | |
2168 | __field_struct(struct sockaddr_rxrpc, srx) | |
494337c9 DH |
2169 | ), |
2170 | ||
2171 | TP_fast_assign( | |
2172 | __entry->peer = peer->debug_id; | |
2173 | memcpy(&__entry->ee, ee, sizeof(__entry->ee)); | |
2174 | memcpy(&__entry->srx, srx, sizeof(__entry->srx)); | |
2175 | ), | |
2176 | ||
2177 | TP_printk("P=%08x o=%u t=%u c=%u i=%u d=%u e=%d %pISp", | |
2178 | __entry->peer, | |
2179 | __entry->ee.ee_origin, | |
2180 | __entry->ee.ee_type, | |
2181 | __entry->ee.ee_code, | |
2182 | __entry->ee.ee_info, | |
2183 | __entry->ee.ee_data, | |
2184 | __entry->ee.ee_errno, | |
2185 | &__entry->srx.transport) | |
2186 | ); | |
2187 | ||
6b47fe1d DH |
2188 | TRACE_EVENT(rxrpc_tx_fail, |
2189 | TP_PROTO(unsigned int debug_id, rxrpc_serial_t serial, int ret, | |
4764c0da | 2190 | enum rxrpc_tx_point where), |
6b47fe1d | 2191 | |
4764c0da | 2192 | TP_ARGS(debug_id, serial, ret, where), |
6b47fe1d DH |
2193 | |
2194 | TP_STRUCT__entry( | |
371e68ba DH |
2195 | __field(unsigned int, debug_id) |
2196 | __field(rxrpc_serial_t, serial) | |
2197 | __field(int, ret) | |
2198 | __field(enum rxrpc_tx_point, where) | |
6b47fe1d DH |
2199 | ), |
2200 | ||
2201 | TP_fast_assign( | |
2202 | __entry->debug_id = debug_id; | |
2203 | __entry->serial = serial; | |
2204 | __entry->ret = ret; | |
4764c0da | 2205 | __entry->where = where; |
6b47fe1d DH |
2206 | ), |
2207 | ||
2208 | TP_printk("c=%08x r=%x ret=%d %s", | |
2209 | __entry->debug_id, | |
2210 | __entry->serial, | |
2211 | __entry->ret, | |
4764c0da | 2212 | __print_symbolic(__entry->where, rxrpc_tx_points)) |
6b47fe1d DH |
2213 | ); |
2214 | ||
1a025028 DH |
2215 | TRACE_EVENT(rxrpc_call_reset, |
2216 | TP_PROTO(struct rxrpc_call *call), | |
2217 | ||
2218 | TP_ARGS(call), | |
2219 | ||
2220 | TP_STRUCT__entry( | |
828bebc8 DH |
2221 | __field(unsigned int, debug_id) |
2222 | __field(u32, cid) | |
2223 | __field(u32, call_id) | |
2224 | __field(rxrpc_serial_t, call_serial) | |
2225 | __field(rxrpc_serial_t, conn_serial) | |
2226 | __field(rxrpc_seq_t, tx_seq) | |
2227 | __field(rxrpc_seq_t, rx_seq) | |
1a025028 DH |
2228 | ), |
2229 | ||
2230 | TP_fast_assign( | |
2231 | __entry->debug_id = call->debug_id; | |
2232 | __entry->cid = call->cid; | |
2233 | __entry->call_id = call->call_id; | |
2234 | __entry->call_serial = call->rx_serial; | |
2235 | __entry->conn_serial = call->conn->hi_serial; | |
203457e1 | 2236 | __entry->tx_seq = call->acks_hard_ack; |
5d7edbc9 | 2237 | __entry->rx_seq = call->rx_highest_seq; |
1a025028 DH |
2238 | ), |
2239 | ||
2240 | TP_printk("c=%08x %08x:%08x r=%08x/%08x tx=%08x rx=%08x", | |
2241 | __entry->debug_id, | |
2242 | __entry->cid, __entry->call_id, | |
2243 | __entry->call_serial, __entry->conn_serial, | |
2244 | __entry->tx_seq, __entry->rx_seq) | |
2245 | ); | |
2246 | ||
4272d303 DH |
2247 | TRACE_EVENT(rxrpc_notify_socket, |
2248 | TP_PROTO(unsigned int debug_id, rxrpc_serial_t serial), | |
2249 | ||
2250 | TP_ARGS(debug_id, serial), | |
2251 | ||
2252 | TP_STRUCT__entry( | |
828bebc8 DH |
2253 | __field(unsigned int, debug_id) |
2254 | __field(rxrpc_serial_t, serial) | |
4272d303 DH |
2255 | ), |
2256 | ||
2257 | TP_fast_assign( | |
2258 | __entry->debug_id = debug_id; | |
2259 | __entry->serial = serial; | |
2260 | ), | |
2261 | ||
2262 | TP_printk("c=%08x r=%08x", | |
2263 | __entry->debug_id, | |
2264 | __entry->serial) | |
2265 | ); | |
2266 | ||
d1f12947 | 2267 | TRACE_EVENT(rxrpc_rx_discard_ack, |
203457e1 DH |
2268 | TP_PROTO(struct rxrpc_call *call, rxrpc_serial_t serial, |
2269 | rxrpc_seq_t hard_ack, rxrpc_seq_t prev_pkt), | |
d1f12947 | 2270 | |
203457e1 | 2271 | TP_ARGS(call, serial, hard_ack, prev_pkt), |
d1f12947 DH |
2272 | |
2273 | TP_STRUCT__entry( | |
371e68ba DH |
2274 | __field(unsigned int, debug_id) |
2275 | __field(rxrpc_serial_t, serial) | |
203457e1 | 2276 | __field(rxrpc_seq_t, hard_ack) |
d1f12947 | 2277 | __field(rxrpc_seq_t, prev_pkt) |
203457e1 DH |
2278 | __field(rxrpc_seq_t, acks_hard_ack) |
2279 | __field(rxrpc_seq_t, acks_prev_seq) | |
d1f12947 DH |
2280 | ), |
2281 | ||
2282 | TP_fast_assign( | |
203457e1 | 2283 | __entry->debug_id = call->debug_id; |
d1f12947 | 2284 | __entry->serial = serial; |
203457e1 | 2285 | __entry->hard_ack = hard_ack; |
d1f12947 | 2286 | __entry->prev_pkt = prev_pkt; |
203457e1 DH |
2287 | __entry->acks_hard_ack = call->acks_hard_ack; |
2288 | __entry->acks_prev_seq = call->acks_prev_seq; | |
d1f12947 DH |
2289 | ), |
2290 | ||
2291 | TP_printk("c=%08x r=%08x %08x<%08x %08x<%08x", | |
2292 | __entry->debug_id, | |
2293 | __entry->serial, | |
203457e1 DH |
2294 | __entry->hard_ack, |
2295 | __entry->acks_hard_ack, | |
d1f12947 | 2296 | __entry->prev_pkt, |
203457e1 | 2297 | __entry->acks_prev_seq) |
d1f12947 DH |
2298 | ); |
2299 | ||
4d843be5 DH |
2300 | TRACE_EVENT(rxrpc_req_ack, |
2301 | TP_PROTO(unsigned int call_debug_id, rxrpc_seq_t seq, | |
2302 | enum rxrpc_req_ack_trace why), | |
2303 | ||
2304 | TP_ARGS(call_debug_id, seq, why), | |
2305 | ||
2306 | TP_STRUCT__entry( | |
371e68ba DH |
2307 | __field(unsigned int, call_debug_id) |
2308 | __field(rxrpc_seq_t, seq) | |
2309 | __field(enum rxrpc_req_ack_trace, why) | |
4d843be5 DH |
2310 | ), |
2311 | ||
2312 | TP_fast_assign( | |
2313 | __entry->call_debug_id = call_debug_id; | |
2314 | __entry->seq = seq; | |
2315 | __entry->why = why; | |
2316 | ), | |
2317 | ||
2318 | TP_printk("c=%08x q=%08x REQ-%s", | |
2319 | __entry->call_debug_id, | |
2320 | __entry->seq, | |
2321 | __print_symbolic(__entry->why, rxrpc_req_ack_traces)) | |
2322 | ); | |
2323 | ||
02a19356 DH |
2324 | TRACE_EVENT(rxrpc_txbuf, |
2325 | TP_PROTO(unsigned int debug_id, | |
2326 | unsigned int call_debug_id, rxrpc_seq_t seq, | |
2327 | int ref, enum rxrpc_txbuf_trace what), | |
2328 | ||
2329 | TP_ARGS(debug_id, call_debug_id, seq, ref, what), | |
2330 | ||
2331 | TP_STRUCT__entry( | |
371e68ba DH |
2332 | __field(unsigned int, debug_id) |
2333 | __field(unsigned int, call_debug_id) | |
2334 | __field(rxrpc_seq_t, seq) | |
2335 | __field(int, ref) | |
2336 | __field(enum rxrpc_txbuf_trace, what) | |
02a19356 DH |
2337 | ), |
2338 | ||
2339 | TP_fast_assign( | |
2340 | __entry->debug_id = debug_id; | |
2341 | __entry->call_debug_id = call_debug_id; | |
2342 | __entry->seq = seq; | |
2343 | __entry->ref = ref; | |
2344 | __entry->what = what; | |
2345 | ), | |
2346 | ||
2347 | TP_printk("B=%08x c=%08x q=%08x %s r=%d", | |
2348 | __entry->debug_id, | |
2349 | __entry->call_debug_id, | |
2350 | __entry->seq, | |
2351 | __print_symbolic(__entry->what, rxrpc_txbuf_traces), | |
2352 | __entry->ref) | |
2353 | ); | |
2354 | ||
b341a026 DH |
2355 | TRACE_EVENT(rxrpc_tq, |
2356 | TP_PROTO(struct rxrpc_call *call, struct rxrpc_txqueue *tq, | |
2357 | rxrpc_seq_t seq, enum rxrpc_tq_trace trace), | |
2358 | ||
2359 | TP_ARGS(call, tq, seq, trace), | |
2360 | ||
2361 | TP_STRUCT__entry( | |
2362 | __field(unsigned int, call_debug_id) | |
2363 | __field(rxrpc_seq_t, qbase) | |
2364 | __field(rxrpc_seq_t, seq) | |
2365 | __field(enum rxrpc_tq_trace, trace) | |
2366 | ), | |
2367 | ||
2368 | TP_fast_assign( | |
2369 | __entry->call_debug_id = call->debug_id; | |
2370 | __entry->qbase = tq ? tq->qbase : call->tx_qbase; | |
2371 | __entry->seq = seq; | |
2372 | __entry->trace = trace; | |
2373 | ), | |
2374 | ||
2375 | TP_printk("c=%08x bq=%08x q=%08x %s", | |
2376 | __entry->call_debug_id, | |
2377 | __entry->qbase, | |
2378 | __entry->seq, | |
2379 | __print_symbolic(__entry->trace, rxrpc_tq_traces)) | |
2380 | ); | |
2381 | ||
15f661dc DH |
2382 | TRACE_EVENT(rxrpc_poke_call, |
2383 | TP_PROTO(struct rxrpc_call *call, bool busy, | |
2384 | enum rxrpc_call_poke_trace what), | |
2385 | ||
2386 | TP_ARGS(call, busy, what), | |
2387 | ||
2388 | TP_STRUCT__entry( | |
371e68ba DH |
2389 | __field(unsigned int, call_debug_id) |
2390 | __field(bool, busy) | |
2391 | __field(enum rxrpc_call_poke_trace, what) | |
15f661dc DH |
2392 | ), |
2393 | ||
2394 | TP_fast_assign( | |
2395 | __entry->call_debug_id = call->debug_id; | |
2396 | __entry->busy = busy; | |
2397 | __entry->what = what; | |
2398 | ), | |
2399 | ||
2400 | TP_printk("c=%08x %s%s", | |
2401 | __entry->call_debug_id, | |
2402 | __print_symbolic(__entry->what, rxrpc_call_poke_traces), | |
2403 | __entry->busy ? "!" : "") | |
2404 | ); | |
2405 | ||
2406 | TRACE_EVENT(rxrpc_call_poked, | |
2407 | TP_PROTO(struct rxrpc_call *call), | |
2408 | ||
2409 | TP_ARGS(call), | |
2410 | ||
2411 | TP_STRUCT__entry( | |
828bebc8 | 2412 | __field(unsigned int, call_debug_id) |
15f661dc DH |
2413 | ), |
2414 | ||
2415 | TP_fast_assign( | |
2416 | __entry->call_debug_id = call->debug_id; | |
2417 | ), | |
2418 | ||
2419 | TP_printk("c=%08x", | |
2420 | __entry->call_debug_id) | |
2421 | ); | |
2422 | ||
f21e9348 DH |
2423 | TRACE_EVENT(rxrpc_sack, |
2424 | TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, | |
2425 | unsigned int sack, enum rxrpc_sack_trace what), | |
2426 | ||
2427 | TP_ARGS(call, seq, sack, what), | |
2428 | ||
2429 | TP_STRUCT__entry( | |
2430 | __field(unsigned int, call_debug_id) | |
2431 | __field(rxrpc_seq_t, seq) | |
2432 | __field(unsigned int, sack) | |
2433 | __field(enum rxrpc_sack_trace, what) | |
2434 | ), | |
2435 | ||
2436 | TP_fast_assign( | |
2437 | __entry->call_debug_id = call->debug_id; | |
2438 | __entry->seq = seq; | |
2439 | __entry->sack = sack; | |
2440 | __entry->what = what; | |
2441 | ), | |
2442 | ||
2443 | TP_printk("c=%08x q=%08x %s k=%x", | |
2444 | __entry->call_debug_id, | |
2445 | __entry->seq, | |
2446 | __print_symbolic(__entry->what, rxrpc_sack_traces), | |
2447 | __entry->sack) | |
2448 | ); | |
2449 | ||
eeaedc54 DH |
2450 | TRACE_EVENT(rxrpc_pmtud_tx, |
2451 | TP_PROTO(struct rxrpc_call *call), | |
2452 | ||
2453 | TP_ARGS(call), | |
2454 | ||
2455 | TP_STRUCT__entry( | |
2456 | __field(unsigned int, peer_debug_id) | |
2457 | __field(unsigned int, call_debug_id) | |
2458 | __field(rxrpc_serial_t, ping_serial) | |
2459 | __field(unsigned short, pmtud_trial) | |
2460 | __field(unsigned short, pmtud_good) | |
2461 | __field(unsigned short, pmtud_bad) | |
2462 | ), | |
2463 | ||
2464 | TP_fast_assign( | |
2465 | __entry->peer_debug_id = call->peer->debug_id; | |
2466 | __entry->call_debug_id = call->debug_id; | |
2467 | __entry->ping_serial = call->conn->pmtud_probe; | |
2468 | __entry->pmtud_trial = call->peer->pmtud_trial; | |
2469 | __entry->pmtud_good = call->peer->pmtud_good; | |
2470 | __entry->pmtud_bad = call->peer->pmtud_bad; | |
2471 | ), | |
2472 | ||
2473 | TP_printk("P=%08x c=%08x pr=%08x %u-%u-%u", | |
2474 | __entry->peer_debug_id, | |
2475 | __entry->call_debug_id, | |
2476 | __entry->ping_serial, | |
2477 | __entry->pmtud_good, | |
2478 | __entry->pmtud_trial, | |
2479 | __entry->pmtud_bad) | |
2480 | ); | |
2481 | ||
2482 | TRACE_EVENT(rxrpc_pmtud_rx, | |
2483 | TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t resp_serial), | |
2484 | ||
2485 | TP_ARGS(conn, resp_serial), | |
2486 | ||
2487 | TP_STRUCT__entry( | |
2488 | __field(unsigned int, peer_debug_id) | |
2489 | __field(unsigned int, call_debug_id) | |
2490 | __field(rxrpc_serial_t, ping_serial) | |
2491 | __field(rxrpc_serial_t, resp_serial) | |
2492 | __field(unsigned short, max_data) | |
2493 | __field(u8, jumbo_max) | |
2494 | ), | |
2495 | ||
2496 | TP_fast_assign( | |
2497 | __entry->peer_debug_id = conn->peer->debug_id; | |
2498 | __entry->call_debug_id = conn->pmtud_call; | |
2499 | __entry->ping_serial = conn->pmtud_probe; | |
2500 | __entry->resp_serial = resp_serial; | |
2501 | __entry->max_data = conn->peer->max_data; | |
2502 | __entry->jumbo_max = conn->peer->pmtud_jumbo; | |
2503 | ), | |
2504 | ||
2505 | TP_printk("P=%08x c=%08x pr=%08x rr=%08x max=%u jm=%u", | |
2506 | __entry->peer_debug_id, | |
2507 | __entry->call_debug_id, | |
2508 | __entry->ping_serial, | |
2509 | __entry->resp_serial, | |
2510 | __entry->max_data, | |
2511 | __entry->jumbo_max) | |
2512 | ); | |
2513 | ||
2514 | TRACE_EVENT(rxrpc_pmtud_lost, | |
2515 | TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t resp_serial), | |
2516 | ||
2517 | TP_ARGS(conn, resp_serial), | |
2518 | ||
2519 | TP_STRUCT__entry( | |
2520 | __field(unsigned int, peer_debug_id) | |
2521 | __field(unsigned int, call_debug_id) | |
2522 | __field(rxrpc_serial_t, ping_serial) | |
2523 | __field(rxrpc_serial_t, resp_serial) | |
2524 | ), | |
2525 | ||
2526 | TP_fast_assign( | |
2527 | __entry->peer_debug_id = conn->peer->debug_id; | |
2528 | __entry->call_debug_id = conn->pmtud_call; | |
2529 | __entry->ping_serial = conn->pmtud_probe; | |
2530 | __entry->resp_serial = resp_serial; | |
2531 | ), | |
2532 | ||
2533 | TP_printk("P=%08x c=%08x pr=%08x rr=%08x", | |
2534 | __entry->peer_debug_id, | |
2535 | __entry->call_debug_id, | |
2536 | __entry->ping_serial, | |
2537 | __entry->resp_serial) | |
2538 | ); | |
2539 | ||
2540 | TRACE_EVENT(rxrpc_pmtud_reduce, | |
2541 | TP_PROTO(struct rxrpc_peer *peer, rxrpc_serial_t serial, | |
2542 | unsigned int max_data, enum rxrpc_pmtud_reduce_trace reason), | |
2543 | ||
2544 | TP_ARGS(peer, serial, max_data, reason), | |
2545 | ||
2546 | TP_STRUCT__entry( | |
2547 | __field(unsigned int, peer_debug_id) | |
2548 | __field(rxrpc_serial_t, serial) | |
2549 | __field(unsigned int, max_data) | |
2550 | __field(enum rxrpc_pmtud_reduce_trace, reason) | |
2551 | ), | |
2552 | ||
2553 | TP_fast_assign( | |
2554 | __entry->peer_debug_id = peer->debug_id; | |
2555 | __entry->serial = serial; | |
2556 | __entry->max_data = max_data; | |
2557 | __entry->reason = reason; | |
2558 | ), | |
2559 | ||
2560 | TP_printk("P=%08x %s r=%08x m=%u", | |
2561 | __entry->peer_debug_id, | |
2562 | __print_symbolic(__entry->reason, rxrpc_pmtud_reduce_traces), | |
2563 | __entry->serial, __entry->max_data) | |
2564 | ); | |
2565 | ||
7c482665 DH |
2566 | TRACE_EVENT(rxrpc_rack, |
2567 | TP_PROTO(struct rxrpc_call *call, ktime_t timo), | |
2568 | ||
2569 | TP_ARGS(call, timo), | |
2570 | ||
2571 | TP_STRUCT__entry( | |
2572 | __field(unsigned int, call) | |
2573 | __field(rxrpc_serial_t, ack_serial) | |
2574 | __field(rxrpc_seq_t, seq) | |
2575 | __field(enum rxrpc_rack_timer_mode, mode) | |
2576 | __field(unsigned short, nr_sent) | |
2577 | __field(unsigned short, nr_lost) | |
2578 | __field(unsigned short, nr_resent) | |
2579 | __field(unsigned short, nr_sacked) | |
2580 | __field(ktime_t, timo) | |
2581 | ), | |
2582 | ||
2583 | TP_fast_assign( | |
2584 | __entry->call = call->debug_id; | |
2585 | __entry->ack_serial = call->rx_serial; | |
2586 | __entry->seq = call->rack_end_seq; | |
2587 | __entry->mode = call->rack_timer_mode; | |
2588 | __entry->nr_sent = call->tx_nr_sent; | |
2589 | __entry->nr_lost = call->tx_nr_lost; | |
2590 | __entry->nr_resent = call->tx_nr_resent; | |
2591 | __entry->nr_sacked = call->acks_nr_sacks; | |
2592 | __entry->timo = timo; | |
2593 | ), | |
2594 | ||
2595 | TP_printk("c=%08x r=%08x q=%08x %s slrs=%u,%u,%u,%u t=%lld", | |
2596 | __entry->call, __entry->ack_serial, __entry->seq, | |
2597 | __print_symbolic(__entry->mode, rxrpc_rack_timer_modes), | |
2598 | __entry->nr_sent, __entry->nr_lost, | |
2599 | __entry->nr_resent, __entry->nr_sacked, | |
2600 | ktime_to_us(__entry->timo)) | |
2601 | ); | |
2602 | ||
2603 | TRACE_EVENT(rxrpc_rack_update, | |
2604 | TP_PROTO(struct rxrpc_call *call, struct rxrpc_ack_summary *summary), | |
2605 | ||
2606 | TP_ARGS(call, summary), | |
2607 | ||
2608 | TP_STRUCT__entry( | |
2609 | __field(unsigned int, call) | |
2610 | __field(rxrpc_serial_t, ack_serial) | |
2611 | __field(rxrpc_seq_t, seq) | |
2612 | __field(int, xmit_ts) | |
2613 | ), | |
2614 | ||
2615 | TP_fast_assign( | |
2616 | __entry->call = call->debug_id; | |
2617 | __entry->ack_serial = call->rx_serial; | |
2618 | __entry->seq = call->rack_end_seq; | |
2619 | __entry->xmit_ts = ktime_sub(call->acks_latest_ts, call->rack_xmit_ts); | |
2620 | ), | |
2621 | ||
2622 | TP_printk("c=%08x r=%08x q=%08x xt=%lld", | |
2623 | __entry->call, __entry->ack_serial, __entry->seq, | |
2624 | ktime_to_us(__entry->xmit_ts)) | |
2625 | ); | |
2626 | ||
2627 | TRACE_EVENT(rxrpc_rack_scan_loss, | |
2628 | TP_PROTO(struct rxrpc_call *call), | |
2629 | ||
2630 | TP_ARGS(call), | |
2631 | ||
2632 | TP_STRUCT__entry( | |
2633 | __field(unsigned int, call) | |
2634 | __field(ktime_t, rack_rtt) | |
2635 | __field(ktime_t, rack_reo_wnd) | |
2636 | ), | |
2637 | ||
2638 | TP_fast_assign( | |
2639 | __entry->call = call->debug_id; | |
2640 | __entry->rack_rtt = call->rack_rtt; | |
2641 | __entry->rack_reo_wnd = call->rack_reo_wnd; | |
2642 | ), | |
2643 | ||
2644 | TP_printk("c=%08x rtt=%lld reow=%lld", | |
2645 | __entry->call, ktime_to_us(__entry->rack_rtt), | |
2646 | ktime_to_us(__entry->rack_reo_wnd)) | |
2647 | ); | |
2648 | ||
2649 | TRACE_EVENT(rxrpc_rack_scan_loss_tq, | |
2650 | TP_PROTO(struct rxrpc_call *call, const struct rxrpc_txqueue *tq, | |
2651 | unsigned long nacks), | |
2652 | ||
2653 | TP_ARGS(call, tq, nacks), | |
2654 | ||
2655 | TP_STRUCT__entry( | |
2656 | __field(unsigned int, call) | |
2657 | __field(rxrpc_seq_t, qbase) | |
2658 | __field(unsigned long, nacks) | |
2659 | __field(unsigned long, lost) | |
2660 | __field(unsigned long, retrans) | |
2661 | ), | |
2662 | ||
2663 | TP_fast_assign( | |
2664 | __entry->call = call->debug_id; | |
2665 | __entry->qbase = tq->qbase; | |
2666 | __entry->nacks = nacks; | |
2667 | __entry->lost = tq->segment_lost; | |
2668 | __entry->retrans = tq->segment_retransmitted; | |
2669 | ), | |
2670 | ||
2671 | TP_printk("c=%08x q=%08x n=%lx l=%lx r=%lx", | |
2672 | __entry->call, __entry->qbase, | |
2673 | __entry->nacks, __entry->lost, __entry->retrans) | |
2674 | ); | |
2675 | ||
2676 | TRACE_EVENT(rxrpc_rack_detect_loss, | |
2677 | TP_PROTO(struct rxrpc_call *call, struct rxrpc_ack_summary *summary, | |
2678 | rxrpc_seq_t seq), | |
2679 | ||
2680 | TP_ARGS(call, summary, seq), | |
2681 | ||
2682 | TP_STRUCT__entry( | |
2683 | __field(unsigned int, call) | |
2684 | __field(rxrpc_serial_t, ack_serial) | |
2685 | __field(rxrpc_seq_t, seq) | |
2686 | ), | |
2687 | ||
2688 | TP_fast_assign( | |
2689 | __entry->call = call->debug_id; | |
2690 | __entry->ack_serial = call->rx_serial; | |
2691 | __entry->seq = seq; | |
2692 | ), | |
2693 | ||
2694 | TP_printk("c=%08x r=%08x q=%08x", | |
2695 | __entry->call, __entry->ack_serial, __entry->seq) | |
2696 | ); | |
2697 | ||
2698 | TRACE_EVENT(rxrpc_rack_mark_loss_tq, | |
2699 | TP_PROTO(struct rxrpc_call *call, const struct rxrpc_txqueue *tq), | |
2700 | ||
2701 | TP_ARGS(call, tq), | |
2702 | ||
2703 | TP_STRUCT__entry( | |
2704 | __field(unsigned int, call) | |
2705 | __field(rxrpc_seq_t, qbase) | |
2706 | __field(rxrpc_seq_t, trans) | |
2707 | __field(unsigned long, acked) | |
2708 | __field(unsigned long, lost) | |
2709 | __field(unsigned long, retrans) | |
2710 | ), | |
2711 | ||
2712 | TP_fast_assign( | |
2713 | __entry->call = call->debug_id; | |
2714 | __entry->qbase = tq->qbase; | |
2715 | __entry->trans = call->tx_transmitted; | |
2716 | __entry->acked = tq->segment_acked; | |
2717 | __entry->lost = tq->segment_lost; | |
2718 | __entry->retrans = tq->segment_retransmitted; | |
2719 | ), | |
2720 | ||
2721 | TP_printk("c=%08x tq=%08x txq=%08x a=%lx l=%lx r=%lx", | |
2722 | __entry->call, __entry->qbase, __entry->trans, | |
2723 | __entry->acked, __entry->lost, __entry->retrans) | |
2724 | ); | |
2725 | ||
2726 | TRACE_EVENT(rxrpc_tlp_probe, | |
2727 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_tlp_probe_trace trace), | |
2728 | ||
2729 | TP_ARGS(call, trace), | |
2730 | ||
2731 | TP_STRUCT__entry( | |
2732 | __field(unsigned int, call) | |
2733 | __field(rxrpc_serial_t, serial) | |
2734 | __field(rxrpc_seq_t, seq) | |
2735 | __field(enum rxrpc_tlp_probe_trace, trace) | |
2736 | ), | |
2737 | ||
2738 | TP_fast_assign( | |
2739 | __entry->call = call->debug_id; | |
2740 | __entry->serial = call->tlp_serial; | |
2741 | __entry->seq = call->tlp_seq; | |
2742 | __entry->trace = trace; | |
2743 | ), | |
2744 | ||
2745 | TP_printk("c=%08x r=%08x pq=%08x %s", | |
2746 | __entry->call, __entry->serial, __entry->seq, | |
2747 | __print_symbolic(__entry->trace, rxrpc_tlp_probe_traces)) | |
2748 | ); | |
2749 | ||
2750 | TRACE_EVENT(rxrpc_tlp_ack, | |
2751 | TP_PROTO(struct rxrpc_call *call, struct rxrpc_ack_summary *summary, | |
2752 | enum rxrpc_tlp_ack_trace trace), | |
2753 | ||
2754 | TP_ARGS(call, summary, trace), | |
2755 | ||
2756 | TP_STRUCT__entry( | |
2757 | __field(unsigned int, call) | |
2758 | __field(rxrpc_serial_t, serial) | |
2759 | __field(rxrpc_seq_t, tlp_seq) | |
2760 | __field(rxrpc_seq_t, hard_ack) | |
2761 | __field(enum rxrpc_tlp_ack_trace, trace) | |
2762 | ), | |
2763 | ||
2764 | TP_fast_assign( | |
2765 | __entry->call = call->debug_id; | |
2766 | __entry->serial = call->tlp_serial; | |
2767 | __entry->tlp_seq = call->tlp_seq; | |
2768 | __entry->hard_ack = call->acks_hard_ack; | |
2769 | __entry->trace = trace; | |
2770 | ), | |
2771 | ||
2772 | TP_printk("c=%08x r=%08x pq=%08x hq=%08x %s", | |
2773 | __entry->call, __entry->serial, | |
2774 | __entry->tlp_seq, __entry->hard_ack, | |
2775 | __print_symbolic(__entry->trace, rxrpc_tlp_ack_traces)) | |
2776 | ); | |
2777 | ||
2778 | TRACE_EVENT(rxrpc_rack_timer, | |
2779 | TP_PROTO(struct rxrpc_call *call, ktime_t delay, bool exp), | |
2780 | ||
2781 | TP_ARGS(call, delay, exp), | |
2782 | ||
2783 | TP_STRUCT__entry( | |
2784 | __field(unsigned int, call) | |
2785 | __field(bool, exp) | |
2786 | __field(enum rxrpc_rack_timer_mode, mode) | |
2787 | __field(ktime_t, delay) | |
2788 | ), | |
2789 | ||
2790 | TP_fast_assign( | |
2791 | __entry->call = call->debug_id; | |
2792 | __entry->exp = exp; | |
2793 | __entry->mode = call->rack_timer_mode; | |
2794 | __entry->delay = delay; | |
2795 | ), | |
2796 | ||
2797 | TP_printk("c=%08x %s %s to=%lld", | |
2798 | __entry->call, | |
2799 | __entry->exp ? "Exp" : "Set", | |
2800 | __print_symbolic(__entry->mode, rxrpc_rack_timer_modes), | |
2801 | ktime_to_us(__entry->delay)) | |
2802 | ); | |
2803 | ||
7a7513a3 DH |
2804 | TRACE_EVENT(rxrpc_rxgk_rekey, |
2805 | TP_PROTO(struct rxrpc_connection *conn, | |
2806 | unsigned int current_key, unsigned int requested_key), | |
2807 | ||
2808 | TP_ARGS(conn, current_key, requested_key), | |
2809 | ||
2810 | TP_STRUCT__entry( | |
2811 | __field(unsigned int, conn) | |
2812 | __field(unsigned int, current_key) | |
2813 | __field(unsigned int, requested_key) | |
2814 | ), | |
2815 | ||
2816 | TP_fast_assign( | |
2817 | __entry->conn = conn->debug_id; | |
2818 | __entry->current_key = current_key; | |
2819 | __entry->requested_key = requested_key; | |
2820 | ), | |
2821 | ||
2822 | TP_printk("C=%08x cur=%x req=%x", | |
2823 | __entry->conn, | |
2824 | __entry->current_key, | |
2825 | __entry->requested_key) | |
2826 | ); | |
2827 | ||
dc9fd093 DH |
2828 | #undef EM |
2829 | #undef E_ | |
57af281e DH |
2830 | |
2831 | #endif /* RXRPC_TRACE_ONLY_DEFINE_ENUMS */ | |
df844fd4 DH |
2832 | #endif /* _TRACE_RXRPC_H */ |
2833 | ||
2834 | /* This part must be outside protection */ | |
2835 | #include <trace/define_trace.h> |