.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
---|
1 | 2 | /* AF_RXRPC tracepoints |
---|
2 | 3 | * |
---|
3 | 4 | * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved. |
---|
4 | 5 | * Written by David Howells (dhowells@redhat.com) |
---|
5 | | - * |
---|
6 | | - * This program is free software; you can redistribute it and/or |
---|
7 | | - * modify it under the terms of the GNU General Public Licence |
---|
8 | | - * as published by the Free Software Foundation; either version |
---|
9 | | - * 2 of the Licence, or (at your option) any later version. |
---|
10 | 6 | */ |
---|
11 | 7 | #undef TRACE_SYSTEM |
---|
12 | 8 | #define TRACE_SYSTEM rxrpc |
---|
.. | .. |
---|
27 | 23 | #define __RXRPC_DECLARE_TRACE_ENUMS_ONCE_ONLY |
---|
28 | 24 | |
---|
29 | 25 | enum rxrpc_skb_trace { |
---|
30 | | - rxrpc_skb_rx_cleaned, |
---|
31 | | - rxrpc_skb_rx_freed, |
---|
32 | | - rxrpc_skb_rx_got, |
---|
33 | | - rxrpc_skb_rx_lost, |
---|
34 | | - rxrpc_skb_rx_purged, |
---|
35 | | - rxrpc_skb_rx_received, |
---|
36 | | - rxrpc_skb_rx_rotated, |
---|
37 | | - rxrpc_skb_rx_seen, |
---|
38 | | - rxrpc_skb_tx_cleaned, |
---|
39 | | - rxrpc_skb_tx_freed, |
---|
40 | | - rxrpc_skb_tx_got, |
---|
41 | | - rxrpc_skb_tx_new, |
---|
42 | | - rxrpc_skb_tx_rotated, |
---|
43 | | - rxrpc_skb_tx_seen, |
---|
| 26 | + rxrpc_skb_cleaned, |
---|
| 27 | + rxrpc_skb_freed, |
---|
| 28 | + rxrpc_skb_got, |
---|
| 29 | + rxrpc_skb_lost, |
---|
| 30 | + rxrpc_skb_new, |
---|
| 31 | + rxrpc_skb_purged, |
---|
| 32 | + rxrpc_skb_received, |
---|
| 33 | + rxrpc_skb_rotated, |
---|
| 34 | + rxrpc_skb_seen, |
---|
| 35 | + rxrpc_skb_unshared, |
---|
| 36 | + rxrpc_skb_unshared_nomem, |
---|
44 | 37 | }; |
---|
45 | 38 | |
---|
46 | 39 | enum rxrpc_local_trace { |
---|
.. | .. |
---|
75 | 68 | rxrpc_client_chan_activate, |
---|
76 | 69 | rxrpc_client_chan_disconnect, |
---|
77 | 70 | rxrpc_client_chan_pass, |
---|
78 | | - rxrpc_client_chan_unstarted, |
---|
79 | 71 | rxrpc_client_chan_wait_failed, |
---|
80 | 72 | rxrpc_client_cleanup, |
---|
81 | | - rxrpc_client_count, |
---|
82 | 73 | rxrpc_client_discard, |
---|
83 | 74 | rxrpc_client_duplicate, |
---|
84 | 75 | rxrpc_client_exposed, |
---|
85 | 76 | rxrpc_client_replace, |
---|
86 | 77 | rxrpc_client_to_active, |
---|
87 | | - rxrpc_client_to_culled, |
---|
88 | 78 | rxrpc_client_to_idle, |
---|
89 | | - rxrpc_client_to_inactive, |
---|
90 | | - rxrpc_client_to_upgrade, |
---|
91 | | - rxrpc_client_to_waiting, |
---|
92 | | - rxrpc_client_uncount, |
---|
93 | 79 | }; |
---|
94 | 80 | |
---|
95 | 81 | enum rxrpc_call_trace { |
---|
.. | .. |
---|
97 | 83 | rxrpc_call_error, |
---|
98 | 84 | rxrpc_call_got, |
---|
99 | 85 | rxrpc_call_got_kernel, |
---|
| 86 | + rxrpc_call_got_timer, |
---|
100 | 87 | rxrpc_call_got_userid, |
---|
101 | 88 | rxrpc_call_new_client, |
---|
102 | 89 | rxrpc_call_new_service, |
---|
103 | 90 | rxrpc_call_put, |
---|
104 | 91 | rxrpc_call_put_kernel, |
---|
105 | 92 | rxrpc_call_put_noqueue, |
---|
| 93 | + rxrpc_call_put_notimer, |
---|
| 94 | + rxrpc_call_put_timer, |
---|
106 | 95 | rxrpc_call_put_userid, |
---|
107 | 96 | rxrpc_call_queued, |
---|
108 | 97 | rxrpc_call_queued_ref, |
---|
.. | .. |
---|
145 | 134 | }; |
---|
146 | 135 | |
---|
147 | 136 | enum rxrpc_rtt_tx_trace { |
---|
| 137 | + rxrpc_rtt_tx_cancel, |
---|
148 | 138 | rxrpc_rtt_tx_data, |
---|
| 139 | + rxrpc_rtt_tx_no_slot, |
---|
149 | 140 | rxrpc_rtt_tx_ping, |
---|
150 | 141 | }; |
---|
151 | 142 | |
---|
152 | 143 | enum rxrpc_rtt_rx_trace { |
---|
| 144 | + rxrpc_rtt_rx_cancel, |
---|
| 145 | + rxrpc_rtt_rx_lost, |
---|
| 146 | + rxrpc_rtt_rx_obsolete, |
---|
153 | 147 | rxrpc_rtt_rx_ping_response, |
---|
154 | 148 | rxrpc_rtt_rx_requested_ack, |
---|
155 | 149 | }; |
---|
.. | .. |
---|
182 | 176 | enum rxrpc_propose_ack_trace { |
---|
183 | 177 | rxrpc_propose_ack_client_tx_end, |
---|
184 | 178 | rxrpc_propose_ack_input_data, |
---|
| 179 | + rxrpc_propose_ack_ping_for_check_life, |
---|
185 | 180 | rxrpc_propose_ack_ping_for_keepalive, |
---|
186 | 181 | rxrpc_propose_ack_ping_for_lost_ack, |
---|
187 | 182 | rxrpc_propose_ack_ping_for_lost_reply, |
---|
.. | .. |
---|
231 | 226 | * Declare tracing information enums and their string mappings for display. |
---|
232 | 227 | */ |
---|
233 | 228 | #define rxrpc_skb_traces \ |
---|
234 | | - EM(rxrpc_skb_rx_cleaned, "Rx CLN") \ |
---|
235 | | - EM(rxrpc_skb_rx_freed, "Rx FRE") \ |
---|
236 | | - EM(rxrpc_skb_rx_got, "Rx GOT") \ |
---|
237 | | - EM(rxrpc_skb_rx_lost, "Rx *L*") \ |
---|
238 | | - EM(rxrpc_skb_rx_purged, "Rx PUR") \ |
---|
239 | | - EM(rxrpc_skb_rx_received, "Rx RCV") \ |
---|
240 | | - EM(rxrpc_skb_rx_rotated, "Rx ROT") \ |
---|
241 | | - EM(rxrpc_skb_rx_seen, "Rx SEE") \ |
---|
242 | | - EM(rxrpc_skb_tx_cleaned, "Tx CLN") \ |
---|
243 | | - EM(rxrpc_skb_tx_freed, "Tx FRE") \ |
---|
244 | | - EM(rxrpc_skb_tx_got, "Tx GOT") \ |
---|
245 | | - EM(rxrpc_skb_tx_new, "Tx NEW") \ |
---|
246 | | - EM(rxrpc_skb_tx_rotated, "Tx ROT") \ |
---|
247 | | - E_(rxrpc_skb_tx_seen, "Tx SEE") |
---|
| 229 | + EM(rxrpc_skb_cleaned, "CLN") \ |
---|
| 230 | + EM(rxrpc_skb_freed, "FRE") \ |
---|
| 231 | + EM(rxrpc_skb_got, "GOT") \ |
---|
| 232 | + EM(rxrpc_skb_lost, "*L*") \ |
---|
| 233 | + EM(rxrpc_skb_new, "NEW") \ |
---|
| 234 | + EM(rxrpc_skb_purged, "PUR") \ |
---|
| 235 | + EM(rxrpc_skb_received, "RCV") \ |
---|
| 236 | + EM(rxrpc_skb_rotated, "ROT") \ |
---|
| 237 | + EM(rxrpc_skb_seen, "SEE") \ |
---|
| 238 | + EM(rxrpc_skb_unshared, "UNS") \ |
---|
| 239 | + E_(rxrpc_skb_unshared_nomem, "US0") |
---|
248 | 240 | |
---|
249 | 241 | #define rxrpc_local_traces \ |
---|
250 | 242 | EM(rxrpc_local_got, "GOT") \ |
---|
.. | .. |
---|
275 | 267 | EM(rxrpc_client_chan_activate, "ChActv") \ |
---|
276 | 268 | EM(rxrpc_client_chan_disconnect, "ChDisc") \ |
---|
277 | 269 | EM(rxrpc_client_chan_pass, "ChPass") \ |
---|
278 | | - EM(rxrpc_client_chan_unstarted, "ChUnst") \ |
---|
279 | 270 | EM(rxrpc_client_chan_wait_failed, "ChWtFl") \ |
---|
280 | 271 | EM(rxrpc_client_cleanup, "Clean ") \ |
---|
281 | | - EM(rxrpc_client_count, "Count ") \ |
---|
282 | 272 | EM(rxrpc_client_discard, "Discar") \ |
---|
283 | 273 | EM(rxrpc_client_duplicate, "Duplic") \ |
---|
284 | 274 | EM(rxrpc_client_exposed, "Expose") \ |
---|
285 | 275 | EM(rxrpc_client_replace, "Replac") \ |
---|
286 | 276 | EM(rxrpc_client_to_active, "->Actv") \ |
---|
287 | | - EM(rxrpc_client_to_culled, "->Cull") \ |
---|
288 | | - EM(rxrpc_client_to_idle, "->Idle") \ |
---|
289 | | - EM(rxrpc_client_to_inactive, "->Inac") \ |
---|
290 | | - EM(rxrpc_client_to_upgrade, "->Upgd") \ |
---|
291 | | - EM(rxrpc_client_to_waiting, "->Wait") \ |
---|
292 | | - E_(rxrpc_client_uncount, "Uncoun") |
---|
293 | | - |
---|
294 | | -#define rxrpc_conn_cache_states \ |
---|
295 | | - EM(RXRPC_CONN_CLIENT_INACTIVE, "Inac") \ |
---|
296 | | - EM(RXRPC_CONN_CLIENT_WAITING, "Wait") \ |
---|
297 | | - EM(RXRPC_CONN_CLIENT_ACTIVE, "Actv") \ |
---|
298 | | - EM(RXRPC_CONN_CLIENT_UPGRADE, "Upgd") \ |
---|
299 | | - EM(RXRPC_CONN_CLIENT_CULLED, "Cull") \ |
---|
300 | | - E_(RXRPC_CONN_CLIENT_IDLE, "Idle") \ |
---|
| 277 | + E_(rxrpc_client_to_idle, "->Idle") |
---|
301 | 278 | |
---|
302 | 279 | #define rxrpc_call_traces \ |
---|
303 | 280 | EM(rxrpc_call_connected, "CON") \ |
---|
304 | 281 | EM(rxrpc_call_error, "*E*") \ |
---|
305 | 282 | EM(rxrpc_call_got, "GOT") \ |
---|
306 | 283 | EM(rxrpc_call_got_kernel, "Gke") \ |
---|
| 284 | + EM(rxrpc_call_got_timer, "GTM") \ |
---|
307 | 285 | EM(rxrpc_call_got_userid, "Gus") \ |
---|
308 | 286 | EM(rxrpc_call_new_client, "NWc") \ |
---|
309 | 287 | EM(rxrpc_call_new_service, "NWs") \ |
---|
310 | 288 | EM(rxrpc_call_put, "PUT") \ |
---|
311 | 289 | EM(rxrpc_call_put_kernel, "Pke") \ |
---|
312 | | - EM(rxrpc_call_put_noqueue, "PNQ") \ |
---|
| 290 | + EM(rxrpc_call_put_noqueue, "PnQ") \ |
---|
| 291 | + EM(rxrpc_call_put_notimer, "PnT") \ |
---|
| 292 | + EM(rxrpc_call_put_timer, "PTM") \ |
---|
313 | 293 | EM(rxrpc_call_put_userid, "Pus") \ |
---|
314 | 294 | EM(rxrpc_call_queued, "QUE") \ |
---|
315 | 295 | EM(rxrpc_call_queued_ref, "QUR") \ |
---|
.. | .. |
---|
348 | 328 | E_(rxrpc_recvmsg_wait, "WAIT") |
---|
349 | 329 | |
---|
350 | 330 | #define rxrpc_rtt_tx_traces \ |
---|
| 331 | + EM(rxrpc_rtt_tx_cancel, "CNCE") \ |
---|
351 | 332 | EM(rxrpc_rtt_tx_data, "DATA") \ |
---|
| 333 | + EM(rxrpc_rtt_tx_no_slot, "FULL") \ |
---|
352 | 334 | E_(rxrpc_rtt_tx_ping, "PING") |
---|
353 | 335 | |
---|
354 | 336 | #define rxrpc_rtt_rx_traces \ |
---|
| 337 | + EM(rxrpc_rtt_rx_cancel, "CNCL") \ |
---|
| 338 | + EM(rxrpc_rtt_rx_obsolete, "OBSL") \ |
---|
| 339 | + EM(rxrpc_rtt_rx_lost, "LOST") \ |
---|
355 | 340 | EM(rxrpc_rtt_rx_ping_response, "PONG") \ |
---|
356 | 341 | E_(rxrpc_rtt_rx_requested_ack, "RACK") |
---|
357 | 342 | |
---|
.. | .. |
---|
382 | 367 | #define rxrpc_propose_ack_traces \ |
---|
383 | 368 | EM(rxrpc_propose_ack_client_tx_end, "ClTxEnd") \ |
---|
384 | 369 | EM(rxrpc_propose_ack_input_data, "DataIn ") \ |
---|
| 370 | + EM(rxrpc_propose_ack_ping_for_check_life, "ChkLife") \ |
---|
385 | 371 | EM(rxrpc_propose_ack_ping_for_keepalive, "KeepAlv") \ |
---|
386 | 372 | EM(rxrpc_propose_ack_ping_for_lost_ack, "LostAck") \ |
---|
387 | 373 | EM(rxrpc_propose_ack_ping_for_lost_reply, "LostRpl") \ |
---|
.. | .. |
---|
592 | 578 | __field(int, channel ) |
---|
593 | 579 | __field(int, usage ) |
---|
594 | 580 | __field(enum rxrpc_client_trace, op ) |
---|
595 | | - __field(enum rxrpc_conn_cache_state, cs ) |
---|
596 | 581 | ), |
---|
597 | 582 | |
---|
598 | 583 | TP_fast_assign( |
---|
599 | | - __entry->conn = conn->debug_id; |
---|
| 584 | + __entry->conn = conn ? conn->debug_id : 0; |
---|
600 | 585 | __entry->channel = channel; |
---|
601 | | - __entry->usage = atomic_read(&conn->usage); |
---|
| 586 | + __entry->usage = conn ? refcount_read(&conn->ref) : -2; |
---|
602 | 587 | __entry->op = op; |
---|
603 | | - __entry->cid = conn->proto.cid; |
---|
604 | | - __entry->cs = conn->cache_state; |
---|
| 588 | + __entry->cid = conn ? conn->proto.cid : 0; |
---|
605 | 589 | ), |
---|
606 | 590 | |
---|
607 | | - TP_printk("C=%08x h=%2d %s %s i=%08x u=%d", |
---|
| 591 | + TP_printk("C=%08x h=%2d %s i=%08x u=%d", |
---|
608 | 592 | __entry->conn, |
---|
609 | 593 | __entry->channel, |
---|
610 | 594 | __print_symbolic(__entry->op, rxrpc_client_traces), |
---|
611 | | - __print_symbolic(__entry->cs, rxrpc_conn_cache_states), |
---|
612 | 595 | __entry->cid, |
---|
613 | 596 | __entry->usage) |
---|
614 | 597 | ); |
---|
615 | 598 | |
---|
616 | 599 | TRACE_EVENT(rxrpc_call, |
---|
617 | | - TP_PROTO(struct rxrpc_call *call, enum rxrpc_call_trace op, |
---|
| 600 | + TP_PROTO(unsigned int call_debug_id, enum rxrpc_call_trace op, |
---|
618 | 601 | int usage, const void *where, const void *aux), |
---|
619 | 602 | |
---|
620 | | - TP_ARGS(call, op, usage, where, aux), |
---|
| 603 | + TP_ARGS(call_debug_id, op, usage, where, aux), |
---|
621 | 604 | |
---|
622 | 605 | TP_STRUCT__entry( |
---|
623 | 606 | __field(unsigned int, call ) |
---|
.. | .. |
---|
628 | 611 | ), |
---|
629 | 612 | |
---|
630 | 613 | TP_fast_assign( |
---|
631 | | - __entry->call = call->debug_id; |
---|
| 614 | + __entry->call = call_debug_id; |
---|
632 | 615 | __entry->op = op; |
---|
633 | 616 | __entry->usage = usage; |
---|
634 | 617 | __entry->where = where; |
---|
.. | .. |
---|
645 | 628 | |
---|
646 | 629 | TRACE_EVENT(rxrpc_skb, |
---|
647 | 630 | TP_PROTO(struct sk_buff *skb, enum rxrpc_skb_trace op, |
---|
648 | | - int usage, int mod_count, const void *where), |
---|
| 631 | + int usage, int mod_count, u8 flags, const void *where), |
---|
649 | 632 | |
---|
650 | | - TP_ARGS(skb, op, usage, mod_count, where), |
---|
| 633 | + TP_ARGS(skb, op, usage, mod_count, flags, where), |
---|
651 | 634 | |
---|
652 | 635 | TP_STRUCT__entry( |
---|
653 | 636 | __field(struct sk_buff *, skb ) |
---|
654 | 637 | __field(enum rxrpc_skb_trace, op ) |
---|
| 638 | + __field(u8, flags ) |
---|
655 | 639 | __field(int, usage ) |
---|
656 | 640 | __field(int, mod_count ) |
---|
657 | 641 | __field(const void *, where ) |
---|
.. | .. |
---|
659 | 643 | |
---|
660 | 644 | TP_fast_assign( |
---|
661 | 645 | __entry->skb = skb; |
---|
| 646 | + __entry->flags = flags; |
---|
662 | 647 | __entry->op = op; |
---|
663 | 648 | __entry->usage = usage; |
---|
664 | 649 | __entry->mod_count = mod_count; |
---|
665 | 650 | __entry->where = where; |
---|
666 | 651 | ), |
---|
667 | 652 | |
---|
668 | | - TP_printk("s=%p %s u=%d m=%d p=%pSR", |
---|
| 653 | + TP_printk("s=%p %cx %s u=%d m=%d p=%pSR", |
---|
669 | 654 | __entry->skb, |
---|
| 655 | + __entry->flags & RXRPC_SKB_TX_BUFFER ? 'T' : 'R', |
---|
670 | 656 | __print_symbolic(__entry->op, rxrpc_skb_traces), |
---|
671 | 657 | __entry->usage, |
---|
672 | 658 | __entry->mod_count, |
---|
.. | .. |
---|
1092 | 1078 | |
---|
1093 | 1079 | TRACE_EVENT(rxrpc_rtt_tx, |
---|
1094 | 1080 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_tx_trace why, |
---|
1095 | | - rxrpc_serial_t send_serial), |
---|
| 1081 | + int slot, rxrpc_serial_t send_serial), |
---|
1096 | 1082 | |
---|
1097 | | - TP_ARGS(call, why, send_serial), |
---|
| 1083 | + TP_ARGS(call, why, slot, send_serial), |
---|
1098 | 1084 | |
---|
1099 | 1085 | TP_STRUCT__entry( |
---|
1100 | 1086 | __field(unsigned int, call ) |
---|
1101 | 1087 | __field(enum rxrpc_rtt_tx_trace, why ) |
---|
| 1088 | + __field(int, slot ) |
---|
1102 | 1089 | __field(rxrpc_serial_t, send_serial ) |
---|
1103 | 1090 | ), |
---|
1104 | 1091 | |
---|
1105 | 1092 | TP_fast_assign( |
---|
1106 | 1093 | __entry->call = call->debug_id; |
---|
1107 | 1094 | __entry->why = why; |
---|
| 1095 | + __entry->slot = slot; |
---|
1108 | 1096 | __entry->send_serial = send_serial; |
---|
1109 | 1097 | ), |
---|
1110 | 1098 | |
---|
1111 | | - TP_printk("c=%08x %s sr=%08x", |
---|
| 1099 | + TP_printk("c=%08x [%d] %s sr=%08x", |
---|
1112 | 1100 | __entry->call, |
---|
| 1101 | + __entry->slot, |
---|
1113 | 1102 | __print_symbolic(__entry->why, rxrpc_rtt_tx_traces), |
---|
1114 | 1103 | __entry->send_serial) |
---|
1115 | 1104 | ); |
---|
1116 | 1105 | |
---|
1117 | 1106 | TRACE_EVENT(rxrpc_rtt_rx, |
---|
1118 | 1107 | TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_rx_trace why, |
---|
| 1108 | + int slot, |
---|
1119 | 1109 | rxrpc_serial_t send_serial, rxrpc_serial_t resp_serial, |
---|
1120 | | - s64 rtt, u8 nr, s64 avg), |
---|
| 1110 | + u32 rtt, u32 rto), |
---|
1121 | 1111 | |
---|
1122 | | - TP_ARGS(call, why, send_serial, resp_serial, rtt, nr, avg), |
---|
| 1112 | + TP_ARGS(call, why, slot, send_serial, resp_serial, rtt, rto), |
---|
1123 | 1113 | |
---|
1124 | 1114 | TP_STRUCT__entry( |
---|
1125 | 1115 | __field(unsigned int, call ) |
---|
1126 | 1116 | __field(enum rxrpc_rtt_rx_trace, why ) |
---|
1127 | | - __field(u8, nr ) |
---|
| 1117 | + __field(int, slot ) |
---|
1128 | 1118 | __field(rxrpc_serial_t, send_serial ) |
---|
1129 | 1119 | __field(rxrpc_serial_t, resp_serial ) |
---|
1130 | | - __field(s64, rtt ) |
---|
1131 | | - __field(u64, avg ) |
---|
| 1120 | + __field(u32, rtt ) |
---|
| 1121 | + __field(u32, rto ) |
---|
1132 | 1122 | ), |
---|
1133 | 1123 | |
---|
1134 | 1124 | TP_fast_assign( |
---|
1135 | 1125 | __entry->call = call->debug_id; |
---|
1136 | 1126 | __entry->why = why; |
---|
| 1127 | + __entry->slot = slot; |
---|
1137 | 1128 | __entry->send_serial = send_serial; |
---|
1138 | 1129 | __entry->resp_serial = resp_serial; |
---|
1139 | 1130 | __entry->rtt = rtt; |
---|
1140 | | - __entry->nr = nr; |
---|
1141 | | - __entry->avg = avg; |
---|
| 1131 | + __entry->rto = rto; |
---|
1142 | 1132 | ), |
---|
1143 | 1133 | |
---|
1144 | | - TP_printk("c=%08x %s sr=%08x rr=%08x rtt=%lld nr=%u avg=%lld", |
---|
| 1134 | + TP_printk("c=%08x [%d] %s sr=%08x rr=%08x rtt=%u rto=%u", |
---|
1145 | 1135 | __entry->call, |
---|
| 1136 | + __entry->slot, |
---|
1146 | 1137 | __print_symbolic(__entry->why, rxrpc_rtt_rx_traces), |
---|
1147 | 1138 | __entry->send_serial, |
---|
1148 | 1139 | __entry->resp_serial, |
---|
1149 | 1140 | __entry->rtt, |
---|
1150 | | - __entry->nr, |
---|
1151 | | - __entry->avg) |
---|
| 1141 | + __entry->rto) |
---|
1152 | 1142 | ); |
---|
1153 | 1143 | |
---|
1154 | 1144 | TRACE_EVENT(rxrpc_timer, |
---|
.. | .. |
---|
1519 | 1509 | __entry->call_serial = call->rx_serial; |
---|
1520 | 1510 | __entry->conn_serial = call->conn->hi_serial; |
---|
1521 | 1511 | __entry->tx_seq = call->tx_hard_ack; |
---|
1522 | | - __entry->rx_seq = call->ackr_seen; |
---|
| 1512 | + __entry->rx_seq = call->rx_hard_ack; |
---|
1523 | 1513 | ), |
---|
1524 | 1514 | |
---|
1525 | 1515 | TP_printk("c=%08x %08x:%08x r=%08x/%08x tx=%08x rx=%08x", |
---|