treewide: Add missing semicolons to __assign_str uses
[linux-2.6-microblaze.git] / drivers / infiniband / hw / hfi1 / trace_tid.h
1 /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
2 /*
3  * Copyright(c) 2018 Intel Corporation.
4  *
5  */
6 #if !defined(__HFI1_TRACE_TID_H) || defined(TRACE_HEADER_MULTI_READ)
7 #define __HFI1_TRACE_TID_H
8
9 #include <linux/tracepoint.h>
10 #include <linux/trace_seq.h>
11
12 #include "hfi.h"
13
14 #define tidtype_name(type) { PT_##type, #type }
15 #define show_tidtype(type)                   \
16 __print_symbolic(type,                       \
17         tidtype_name(EXPECTED),              \
18         tidtype_name(EAGER),                 \
19         tidtype_name(INVALID))               \
20
21 #undef TRACE_SYSTEM
22 #define TRACE_SYSTEM hfi1_tid
23
24 u8 hfi1_trace_get_tid_ctrl(u32 ent);
25 u16 hfi1_trace_get_tid_len(u32 ent);
26 u16 hfi1_trace_get_tid_idx(u32 ent);
27
28 #define OPFN_PARAM_PRN "[%s] qpn 0x%x %s OPFN: qp 0x%x, max read %u, " \
29                        "max write %u, max length %u, jkey 0x%x timeout %u " \
30                        "urg %u"
31
32 #define TID_FLOW_PRN "[%s] qpn 0x%x flow %d: idx %d resp_ib_psn 0x%x " \
33                      "generation 0x%x fpsn 0x%x-%x r_next_psn 0x%x " \
34                      "ib_psn 0x%x-%x npagesets %u tnode_cnt %u " \
35                      "tidcnt %u tid_idx %u tid_offset %u length %u sent %u"
36
37 #define TID_NODE_PRN "[%s] qpn 0x%x  %s idx %u grp base 0x%x map 0x%x " \
38                      "used %u cnt %u"
39
40 #define RSP_INFO_PRN "[%s] qpn 0x%x state 0x%x s_state 0x%x psn 0x%x " \
41                      "r_psn 0x%x r_state 0x%x r_flags 0x%x " \
42                      "r_head_ack_queue %u s_tail_ack_queue %u " \
43                      "s_acked_ack_queue %u s_ack_state 0x%x " \
44                      "s_nak_state 0x%x s_flags 0x%x ps_flags 0x%x " \
45                      "iow_flags 0x%lx"
46
47 #define SENDER_INFO_PRN "[%s] qpn 0x%x state 0x%x s_cur %u s_tail %u " \
48                         "s_head %u s_acked %u s_last %u s_psn 0x%x " \
49                         "s_last_psn 0x%x s_flags 0x%x ps_flags 0x%x " \
50                         "iow_flags 0x%lx s_state 0x%x s_num_rd %u s_retry %u"
51
52 #define TID_READ_SENDER_PRN "[%s] qpn 0x%x newreq %u tid_r_reqs %u " \
53                             "tid_r_comp %u pending_tid_r_segs %u " \
54                             "s_flags 0x%x ps_flags 0x%x iow_flags 0x%lx " \
55                             "s_state 0x%x hw_flow_index %u generation 0x%x " \
56                             "fpsn 0x%x"
57
58 #define TID_REQ_PRN "[%s] qpn 0x%x newreq %u opcode 0x%x psn 0x%x lpsn 0x%x " \
59                     "cur_seg %u comp_seg %u ack_seg %u alloc_seg %u " \
60                     "total_segs %u setup_head %u clear_tail %u flow_idx %u " \
61                     "acked_tail %u state %u r_ack_psn 0x%x r_flow_psn 0x%x " \
62                     "r_last_ackd 0x%x s_next_psn 0x%x"
63
64 #define RCV_ERR_PRN "[%s] qpn 0x%x s_flags 0x%x state 0x%x " \
65                     "s_acked_ack_queue %u s_tail_ack_queue %u " \
66                     "r_head_ack_queue %u opcode 0x%x psn 0x%x r_psn 0x%x " \
67                     " diff %d"
68
69 #define TID_WRITE_RSPDR_PRN "[%s] qpn 0x%x r_tid_head %u r_tid_tail %u " \
70                             "r_tid_ack %u r_tid_alloc %u alloc_w_segs %u " \
71                             "pending_tid_w_segs %u sync_pt %s " \
72                             "ps_nak_psn 0x%x ps_nak_state 0x%x " \
73                             "prnr_nak_state 0x%x hw_flow_index %u generation "\
74                             "0x%x fpsn 0x%x resync %s" \
75                             "r_next_psn_kdeth 0x%x"
76
77 #define TID_WRITE_SENDER_PRN "[%s] qpn 0x%x newreq %u s_tid_cur %u " \
78                              "s_tid_tail %u s_tid_head %u " \
79                              "pending_tid_w_resp %u n_requests %u " \
80                              "n_tid_requests %u s_flags 0x%x ps_flags 0x%x "\
81                              "iow_flags 0x%lx s_state 0x%x s_retry %u"
82
83 #define KDETH_EFLAGS_ERR_PRN "[%s] qpn 0x%x  TID ERR: RcvType 0x%x " \
84                              "RcvTypeError 0x%x PSN 0x%x"
85
86 DECLARE_EVENT_CLASS(/* class */
87         hfi1_exp_tid_reg_unreg,
88         TP_PROTO(unsigned int ctxt, u16 subctxt, u32 rarr, u32 npages,
89                  unsigned long va, unsigned long pa, dma_addr_t dma),
90         TP_ARGS(ctxt, subctxt, rarr, npages, va, pa, dma),
91         TP_STRUCT__entry(/* entry */
92                 __field(unsigned int, ctxt)
93                 __field(u16, subctxt)
94                 __field(u32, rarr)
95                 __field(u32, npages)
96                 __field(unsigned long, va)
97                 __field(unsigned long, pa)
98                 __field(dma_addr_t, dma)
99         ),
100         TP_fast_assign(/* assign */
101                 __entry->ctxt = ctxt;
102                 __entry->subctxt = subctxt;
103                 __entry->rarr = rarr;
104                 __entry->npages = npages;
105                 __entry->va = va;
106                 __entry->pa = pa;
107                 __entry->dma = dma;
108         ),
109         TP_printk("[%u:%u] entry:%u, %u pages @ 0x%lx, va:0x%lx dma:0x%llx",
110                   __entry->ctxt,
111                   __entry->subctxt,
112                   __entry->rarr,
113                   __entry->npages,
114                   __entry->pa,
115                   __entry->va,
116                   __entry->dma
117         )
118 );
119
120 DEFINE_EVENT(/* exp_tid_unreg */
121         hfi1_exp_tid_reg_unreg, hfi1_exp_tid_unreg,
122         TP_PROTO(unsigned int ctxt, u16 subctxt, u32 rarr, u32 npages,
123                  unsigned long va, unsigned long pa, dma_addr_t dma),
124         TP_ARGS(ctxt, subctxt, rarr, npages, va, pa, dma)
125 );
126
127 DEFINE_EVENT(/* exp_tid_reg */
128         hfi1_exp_tid_reg_unreg, hfi1_exp_tid_reg,
129         TP_PROTO(unsigned int ctxt, u16 subctxt, u32 rarr, u32 npages,
130                  unsigned long va, unsigned long pa, dma_addr_t dma),
131         TP_ARGS(ctxt, subctxt, rarr, npages, va, pa, dma)
132 );
133
134 TRACE_EVENT(/* put_tid */
135         hfi1_put_tid,
136         TP_PROTO(struct hfi1_devdata *dd,
137                  u32 index, u32 type, unsigned long pa, u16 order),
138         TP_ARGS(dd, index, type, pa, order),
139         TP_STRUCT__entry(/* entry */
140                 DD_DEV_ENTRY(dd)
141                 __field(unsigned long, pa)
142                 __field(u32, index)
143                 __field(u32, type)
144                 __field(u16, order)
145         ),
146         TP_fast_assign(/* assign */
147                 DD_DEV_ASSIGN(dd);
148                 __entry->pa = pa;
149                 __entry->index = index;
150                 __entry->type = type;
151                 __entry->order = order;
152         ),
153         TP_printk("[%s] type %s pa %lx index %u order %u",
154                   __get_str(dev),
155                   show_tidtype(__entry->type),
156                   __entry->pa,
157                   __entry->index,
158                   __entry->order
159         )
160 );
161
162 TRACE_EVENT(/* exp_tid_inval */
163         hfi1_exp_tid_inval,
164         TP_PROTO(unsigned int ctxt, u16 subctxt, unsigned long va, u32 rarr,
165                  u32 npages, dma_addr_t dma),
166         TP_ARGS(ctxt, subctxt, va, rarr, npages, dma),
167         TP_STRUCT__entry(/* entry */
168                 __field(unsigned int, ctxt)
169                 __field(u16, subctxt)
170                 __field(unsigned long, va)
171                 __field(u32, rarr)
172                 __field(u32, npages)
173                 __field(dma_addr_t, dma)
174         ),
175         TP_fast_assign(/* assign */
176                 __entry->ctxt = ctxt;
177                 __entry->subctxt = subctxt;
178                 __entry->va = va;
179                 __entry->rarr = rarr;
180                 __entry->npages = npages;
181                 __entry->dma = dma;
182         ),
183         TP_printk("[%u:%u] entry:%u, %u pages @ 0x%lx dma: 0x%llx",
184                   __entry->ctxt,
185                   __entry->subctxt,
186                   __entry->rarr,
187                   __entry->npages,
188                   __entry->va,
189                   __entry->dma
190         )
191 );
192
193 DECLARE_EVENT_CLASS(/* opfn_state */
194         hfi1_opfn_state_template,
195         TP_PROTO(struct rvt_qp *qp),
196         TP_ARGS(qp),
197         TP_STRUCT__entry(/* entry */
198                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
199                 __field(u32, qpn)
200                 __field(u16, requested)
201                 __field(u16, completed)
202                 __field(u8, curr)
203         ),
204         TP_fast_assign(/* assign */
205                 struct hfi1_qp_priv *priv = qp->priv;
206
207                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
208                 __entry->qpn = qp->ibqp.qp_num;
209                 __entry->requested = priv->opfn.requested;
210                 __entry->completed = priv->opfn.completed;
211                 __entry->curr = priv->opfn.curr;
212         ),
213         TP_printk(/* print */
214                 "[%s] qpn 0x%x requested 0x%x completed 0x%x curr 0x%x",
215                 __get_str(dev),
216                 __entry->qpn,
217                 __entry->requested,
218                 __entry->completed,
219                 __entry->curr
220         )
221 );
222
223 DEFINE_EVENT(/* event */
224         hfi1_opfn_state_template, hfi1_opfn_state_conn_request,
225         TP_PROTO(struct rvt_qp *qp),
226         TP_ARGS(qp)
227 );
228
229 DEFINE_EVENT(/* event */
230         hfi1_opfn_state_template, hfi1_opfn_state_sched_conn_request,
231         TP_PROTO(struct rvt_qp *qp),
232         TP_ARGS(qp)
233 );
234
235 DEFINE_EVENT(/* event */
236         hfi1_opfn_state_template, hfi1_opfn_state_conn_response,
237         TP_PROTO(struct rvt_qp *qp),
238         TP_ARGS(qp)
239 );
240
241 DEFINE_EVENT(/* event */
242         hfi1_opfn_state_template, hfi1_opfn_state_conn_reply,
243         TP_PROTO(struct rvt_qp *qp),
244         TP_ARGS(qp)
245 );
246
247 DEFINE_EVENT(/* event */
248         hfi1_opfn_state_template, hfi1_opfn_state_conn_error,
249         TP_PROTO(struct rvt_qp *qp),
250         TP_ARGS(qp)
251 );
252
253 DECLARE_EVENT_CLASS(/* opfn_data */
254         hfi1_opfn_data_template,
255         TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data),
256         TP_ARGS(qp, capcode, data),
257         TP_STRUCT__entry(/* entry */
258                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
259                 __field(u32, qpn)
260                 __field(u32, state)
261                 __field(u8, capcode)
262                 __field(u64, data)
263         ),
264         TP_fast_assign(/* assign */
265                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
266                 __entry->qpn = qp->ibqp.qp_num;
267                 __entry->state = qp->state;
268                 __entry->capcode = capcode;
269                 __entry->data = data;
270         ),
271         TP_printk(/* printk */
272                 "[%s] qpn 0x%x (state 0x%x) Capcode %u data 0x%llx",
273                 __get_str(dev),
274                 __entry->qpn,
275                 __entry->state,
276                 __entry->capcode,
277                 __entry->data
278         )
279 );
280
281 DEFINE_EVENT(/* event */
282         hfi1_opfn_data_template, hfi1_opfn_data_conn_request,
283         TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data),
284         TP_ARGS(qp, capcode, data)
285 );
286
287 DEFINE_EVENT(/* event */
288         hfi1_opfn_data_template, hfi1_opfn_data_conn_response,
289         TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data),
290         TP_ARGS(qp, capcode, data)
291 );
292
293 DEFINE_EVENT(/* event */
294         hfi1_opfn_data_template, hfi1_opfn_data_conn_reply,
295         TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data),
296         TP_ARGS(qp, capcode, data)
297 );
298
299 DECLARE_EVENT_CLASS(/* opfn_param */
300         hfi1_opfn_param_template,
301         TP_PROTO(struct rvt_qp *qp, char remote,
302                  struct tid_rdma_params *param),
303         TP_ARGS(qp, remote, param),
304         TP_STRUCT__entry(/* entry */
305                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
306                 __field(u32, qpn)
307                 __field(char, remote)
308                 __field(u32, param_qp)
309                 __field(u32, max_len)
310                 __field(u16, jkey)
311                 __field(u8, max_read)
312                 __field(u8, max_write)
313                 __field(u8, timeout)
314                 __field(u8, urg)
315         ),
316         TP_fast_assign(/* assign */
317                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
318                 __entry->qpn = qp->ibqp.qp_num;
319                 __entry->remote = remote;
320                 __entry->param_qp = param->qp;
321                 __entry->max_len = param->max_len;
322                 __entry->jkey = param->jkey;
323                 __entry->max_read = param->max_read;
324                 __entry->max_write = param->max_write;
325                 __entry->timeout = param->timeout;
326                 __entry->urg = param->urg;
327         ),
328         TP_printk(/* print */
329                 OPFN_PARAM_PRN,
330                 __get_str(dev),
331                 __entry->qpn,
332                 __entry->remote ? "remote" : "local",
333                 __entry->param_qp,
334                 __entry->max_read,
335                 __entry->max_write,
336                 __entry->max_len,
337                 __entry->jkey,
338                 __entry->timeout,
339                 __entry->urg
340         )
341 );
342
343 DEFINE_EVENT(/* event */
344         hfi1_opfn_param_template, hfi1_opfn_param,
345         TP_PROTO(struct rvt_qp *qp, char remote,
346                  struct tid_rdma_params *param),
347         TP_ARGS(qp, remote, param)
348 );
349
350 DECLARE_EVENT_CLASS(/* msg */
351         hfi1_msg_template,
352         TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
353         TP_ARGS(qp, msg, more),
354         TP_STRUCT__entry(/* entry */
355                 __field(u32, qpn)
356                 __string(msg, msg)
357                 __field(u64, more)
358         ),
359         TP_fast_assign(/* assign */
360                 __entry->qpn = qp ? qp->ibqp.qp_num : 0;
361                 __assign_str(msg, msg);
362                 __entry->more = more;
363         ),
364         TP_printk(/* print */
365                 "qpn 0x%x %s 0x%llx",
366                 __entry->qpn,
367                 __get_str(msg),
368                 __entry->more
369         )
370 );
371
372 DEFINE_EVENT(/* event */
373         hfi1_msg_template, hfi1_msg_opfn_conn_request,
374         TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
375         TP_ARGS(qp, msg, more)
376 );
377
378 DEFINE_EVENT(/* event */
379         hfi1_msg_template, hfi1_msg_opfn_conn_error,
380         TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
381         TP_ARGS(qp, msg, more)
382 );
383
384 DEFINE_EVENT(/* event */
385         hfi1_msg_template, hfi1_msg_alloc_tids,
386         TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
387         TP_ARGS(qp, msg, more)
388 );
389
390 DEFINE_EVENT(/* event */
391         hfi1_msg_template, hfi1_msg_tid_restart_req,
392         TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
393         TP_ARGS(qp, msg, more)
394 );
395
396 DEFINE_EVENT(/* event */
397         hfi1_msg_template, hfi1_msg_handle_kdeth_eflags,
398         TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
399         TP_ARGS(qp, msg, more)
400 );
401
402 DEFINE_EVENT(/* event */
403         hfi1_msg_template, hfi1_msg_tid_timeout,
404         TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
405         TP_ARGS(qp, msg, more)
406 );
407
408 DEFINE_EVENT(/* event */
409         hfi1_msg_template, hfi1_msg_tid_retry_timeout,
410         TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
411         TP_ARGS(qp, msg, more)
412 );
413
414 DECLARE_EVENT_CLASS(/* tid_flow_page */
415         hfi1_tid_flow_page_template,
416         TP_PROTO(struct rvt_qp *qp, struct tid_rdma_flow *flow, u32 index,
417                  char mtu8k, char v1, void *vaddr),
418         TP_ARGS(qp, flow, index, mtu8k, v1, vaddr),
419         TP_STRUCT__entry(/* entry */
420                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
421                 __field(u32, qpn)
422                 __field(char, mtu8k)
423                 __field(char, v1)
424                 __field(u32, index)
425                 __field(u64, page)
426                 __field(u64, vaddr)
427         ),
428         TP_fast_assign(/* assign */
429                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
430                 __entry->qpn = qp->ibqp.qp_num;
431                 __entry->mtu8k = mtu8k;
432                 __entry->v1 = v1;
433                 __entry->index = index;
434                 __entry->page = vaddr ? (u64)virt_to_page(vaddr) : 0ULL;
435                 __entry->vaddr = (u64)vaddr;
436         ),
437         TP_printk(/* print */
438                 "[%s] qpn 0x%x page[%u]: page 0x%llx %s 0x%llx",
439                 __get_str(dev),
440                 __entry->qpn,
441                 __entry->index,
442                 __entry->page,
443                 __entry->mtu8k ? (__entry->v1 ? "v1" : "v0") : "vaddr",
444                 __entry->vaddr
445         )
446 );
447
448 DEFINE_EVENT(/* event */
449         hfi1_tid_flow_page_template, hfi1_tid_flow_page,
450         TP_PROTO(struct rvt_qp *qp, struct tid_rdma_flow *flow, u32 index,
451                  char mtu8k, char v1, void *vaddr),
452         TP_ARGS(qp, flow, index, mtu8k, v1, vaddr)
453 );
454
455 DECLARE_EVENT_CLASS(/* tid_pageset */
456         hfi1_tid_pageset_template,
457         TP_PROTO(struct rvt_qp *qp, u32 index, u16 idx, u16 count),
458         TP_ARGS(qp, index, idx, count),
459         TP_STRUCT__entry(/* entry */
460                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
461                 __field(u32, qpn)
462                 __field(u32, index)
463                 __field(u16, idx)
464                 __field(u16, count)
465         ),
466         TP_fast_assign(/* assign */
467                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
468                 __entry->qpn = qp->ibqp.qp_num;
469                 __entry->index = index;
470                 __entry->idx = idx;
471                 __entry->count = count;
472         ),
473         TP_printk(/* print */
474                 "[%s] qpn 0x%x list[%u]: idx %u count %u",
475                 __get_str(dev),
476                 __entry->qpn,
477                 __entry->index,
478                 __entry->idx,
479                 __entry->count
480         )
481 );
482
483 DEFINE_EVENT(/* event */
484         hfi1_tid_pageset_template, hfi1_tid_pageset,
485         TP_PROTO(struct rvt_qp *qp, u32 index, u16 idx, u16 count),
486         TP_ARGS(qp, index, idx, count)
487 );
488
489 DECLARE_EVENT_CLASS(/* tid_fow */
490         hfi1_tid_flow_template,
491         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
492         TP_ARGS(qp, index, flow),
493         TP_STRUCT__entry(/* entry */
494                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
495                 __field(u32, qpn)
496                 __field(int, index)
497                 __field(int, idx)
498                 __field(u32, resp_ib_psn)
499                 __field(u32, generation)
500                 __field(u32, fspsn)
501                 __field(u32, flpsn)
502                 __field(u32, r_next_psn)
503                 __field(u32, ib_spsn)
504                 __field(u32, ib_lpsn)
505                 __field(u32, npagesets)
506                 __field(u32, tnode_cnt)
507                 __field(u32, tidcnt)
508                 __field(u32, tid_idx)
509                 __field(u32, tid_offset)
510                 __field(u32, length)
511                 __field(u32, sent)
512         ),
513         TP_fast_assign(/* assign */
514                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
515                 __entry->qpn = qp->ibqp.qp_num;
516                 __entry->index = index;
517                 __entry->idx = flow->idx;
518                 __entry->resp_ib_psn = flow->flow_state.resp_ib_psn;
519                 __entry->generation = flow->flow_state.generation;
520                 __entry->fspsn = full_flow_psn(flow,
521                                                flow->flow_state.spsn);
522                 __entry->flpsn = full_flow_psn(flow,
523                                                flow->flow_state.lpsn);
524                 __entry->r_next_psn = flow->flow_state.r_next_psn;
525                 __entry->ib_spsn = flow->flow_state.ib_spsn;
526                 __entry->ib_lpsn = flow->flow_state.ib_lpsn;
527                 __entry->npagesets = flow->npagesets;
528                 __entry->tnode_cnt = flow->tnode_cnt;
529                 __entry->tidcnt = flow->tidcnt;
530                 __entry->tid_idx = flow->tid_idx;
531                 __entry->tid_offset =  flow->tid_offset;
532                 __entry->length = flow->length;
533                 __entry->sent = flow->sent;
534         ),
535         TP_printk(/* print */
536                 TID_FLOW_PRN,
537                 __get_str(dev),
538                 __entry->qpn,
539                 __entry->index,
540                 __entry->idx,
541                 __entry->resp_ib_psn,
542                 __entry->generation,
543                 __entry->fspsn,
544                 __entry->flpsn,
545                 __entry->r_next_psn,
546                 __entry->ib_spsn,
547                 __entry->ib_lpsn,
548                 __entry->npagesets,
549                 __entry->tnode_cnt,
550                 __entry->tidcnt,
551                 __entry->tid_idx,
552                 __entry->tid_offset,
553                 __entry->length,
554                 __entry->sent
555         )
556 );
557
558 DEFINE_EVENT(/* event */
559         hfi1_tid_flow_template, hfi1_tid_flow_alloc,
560         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
561         TP_ARGS(qp, index, flow)
562 );
563
564 DEFINE_EVENT(/* event */
565         hfi1_tid_flow_template, hfi1_tid_flow_build_read_pkt,
566         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
567         TP_ARGS(qp, index, flow)
568 );
569
570 DEFINE_EVENT(/* event */
571         hfi1_tid_flow_template, hfi1_tid_flow_build_read_resp,
572         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
573         TP_ARGS(qp, index, flow)
574 );
575
576 DEFINE_EVENT(/* event */
577         hfi1_tid_flow_template, hfi1_tid_flow_rcv_read_req,
578         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
579         TP_ARGS(qp, index, flow)
580 );
581
582 DEFINE_EVENT(/* event */
583         hfi1_tid_flow_template, hfi1_tid_flow_rcv_read_resp,
584         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
585         TP_ARGS(qp, index, flow)
586 );
587
588 DEFINE_EVENT(/* event */
589         hfi1_tid_flow_template, hfi1_tid_flow_restart_req,
590         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
591         TP_ARGS(qp, index, flow)
592 );
593
594 DEFINE_EVENT(/* event */
595         hfi1_tid_flow_template, hfi1_tid_flow_build_write_resp,
596         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
597         TP_ARGS(qp, index, flow)
598 );
599
600 DEFINE_EVENT(/* event */
601         hfi1_tid_flow_template, hfi1_tid_flow_rcv_write_resp,
602         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
603         TP_ARGS(qp, index, flow)
604 );
605
606 DEFINE_EVENT(/* event */
607         hfi1_tid_flow_template, hfi1_tid_flow_build_write_data,
608         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
609         TP_ARGS(qp, index, flow)
610 );
611
612 DEFINE_EVENT(/* event */
613         hfi1_tid_flow_template, hfi1_tid_flow_rcv_tid_ack,
614         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
615         TP_ARGS(qp, index, flow)
616 );
617
618 DEFINE_EVENT(/* event */
619         hfi1_tid_flow_template, hfi1_tid_flow_rcv_resync,
620         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
621         TP_ARGS(qp, index, flow)
622 );
623
624 DEFINE_EVENT(/* event */
625         hfi1_tid_flow_template, hfi1_tid_flow_handle_kdeth_eflags,
626         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
627         TP_ARGS(qp, index, flow)
628 );
629
630 DEFINE_EVENT(/* event */
631         hfi1_tid_flow_template, hfi1_tid_flow_read_kdeth_eflags,
632         TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
633         TP_ARGS(qp, index, flow)
634 );
635
636 DECLARE_EVENT_CLASS(/* tid_node */
637         hfi1_tid_node_template,
638         TP_PROTO(struct rvt_qp *qp, const char *msg, u32 index, u32 base,
639                  u8 map, u8 used, u8 cnt),
640         TP_ARGS(qp, msg, index, base, map, used, cnt),
641         TP_STRUCT__entry(/* entry */
642                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
643                 __field(u32, qpn)
644                 __string(msg, msg)
645                 __field(u32, index)
646                 __field(u32, base)
647                 __field(u8, map)
648                 __field(u8, used)
649                 __field(u8, cnt)
650         ),
651         TP_fast_assign(/* assign */
652                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
653                 __entry->qpn = qp->ibqp.qp_num;
654                 __assign_str(msg, msg);
655                 __entry->index = index;
656                 __entry->base = base;
657                 __entry->map = map;
658                 __entry->used = used;
659                 __entry->cnt = cnt;
660         ),
661         TP_printk(/* print */
662                 TID_NODE_PRN,
663                 __get_str(dev),
664                 __entry->qpn,
665                 __get_str(msg),
666                 __entry->index,
667                 __entry->base,
668                 __entry->map,
669                 __entry->used,
670                 __entry->cnt
671         )
672 );
673
674 DEFINE_EVENT(/* event */
675         hfi1_tid_node_template, hfi1_tid_node_add,
676         TP_PROTO(struct rvt_qp *qp, const char *msg, u32 index, u32 base,
677                  u8 map, u8 used, u8 cnt),
678         TP_ARGS(qp, msg, index, base, map, used, cnt)
679 );
680
681 DECLARE_EVENT_CLASS(/* tid_entry */
682         hfi1_tid_entry_template,
683         TP_PROTO(struct rvt_qp *qp, int index, u32 ent),
684         TP_ARGS(qp, index, ent),
685         TP_STRUCT__entry(/* entry */
686                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
687                 __field(u32, qpn)
688                 __field(int, index)
689                 __field(u8, ctrl)
690                 __field(u16, idx)
691                 __field(u16, len)
692         ),
693         TP_fast_assign(/* assign */
694                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
695                 __entry->qpn = qp->ibqp.qp_num;
696                 __entry->index = index;
697                 __entry->ctrl = hfi1_trace_get_tid_ctrl(ent);
698                 __entry->idx = hfi1_trace_get_tid_idx(ent);
699                 __entry->len = hfi1_trace_get_tid_len(ent);
700         ),
701         TP_printk(/* print */
702                 "[%s] qpn 0x%x TID entry %d: idx %u len %u ctrl 0x%x",
703                 __get_str(dev),
704                 __entry->qpn,
705                 __entry->index,
706                 __entry->idx,
707                 __entry->len,
708                 __entry->ctrl
709         )
710 );
711
712 DEFINE_EVENT(/* event */
713         hfi1_tid_entry_template, hfi1_tid_entry_alloc,
714         TP_PROTO(struct rvt_qp *qp, int index, u32 entry),
715         TP_ARGS(qp, index, entry)
716 );
717
718 DEFINE_EVENT(/* event */
719         hfi1_tid_entry_template, hfi1_tid_entry_build_read_resp,
720         TP_PROTO(struct rvt_qp *qp, int index, u32 ent),
721         TP_ARGS(qp, index, ent)
722 );
723
724 DEFINE_EVENT(/* event */
725         hfi1_tid_entry_template, hfi1_tid_entry_rcv_read_req,
726         TP_PROTO(struct rvt_qp *qp, int index, u32 ent),
727         TP_ARGS(qp, index, ent)
728 );
729
730 DEFINE_EVENT(/* event */
731         hfi1_tid_entry_template, hfi1_tid_entry_rcv_write_resp,
732         TP_PROTO(struct rvt_qp *qp, int index, u32 entry),
733         TP_ARGS(qp, index, entry)
734 );
735
736 DEFINE_EVENT(/* event */
737         hfi1_tid_entry_template, hfi1_tid_entry_build_write_data,
738         TP_PROTO(struct rvt_qp *qp, int index, u32 entry),
739         TP_ARGS(qp, index, entry)
740 );
741
742 DECLARE_EVENT_CLASS(/* rsp_info */
743         hfi1_responder_info_template,
744         TP_PROTO(struct rvt_qp *qp, u32 psn),
745         TP_ARGS(qp, psn),
746         TP_STRUCT__entry(/* entry */
747                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
748                 __field(u32, qpn)
749                 __field(u8, state)
750                 __field(u8, s_state)
751                 __field(u32, psn)
752                 __field(u32, r_psn)
753                 __field(u8, r_state)
754                 __field(u8, r_flags)
755                 __field(u8, r_head_ack_queue)
756                 __field(u8, s_tail_ack_queue)
757                 __field(u8, s_acked_ack_queue)
758                 __field(u8, s_ack_state)
759                 __field(u8, s_nak_state)
760                 __field(u8, r_nak_state)
761                 __field(u32, s_flags)
762                 __field(u32, ps_flags)
763                 __field(unsigned long, iow_flags)
764         ),
765         TP_fast_assign(/* assign */
766                 struct hfi1_qp_priv *priv = qp->priv;
767
768                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
769                 __entry->qpn = qp->ibqp.qp_num;
770                 __entry->state = qp->state;
771                 __entry->s_state = qp->s_state;
772                 __entry->psn = psn;
773                 __entry->r_psn = qp->r_psn;
774                 __entry->r_state = qp->r_state;
775                 __entry->r_flags = qp->r_flags;
776                 __entry->r_head_ack_queue = qp->r_head_ack_queue;
777                 __entry->s_tail_ack_queue = qp->s_tail_ack_queue;
778                 __entry->s_acked_ack_queue = qp->s_acked_ack_queue;
779                 __entry->s_ack_state = qp->s_ack_state;
780                 __entry->s_nak_state = qp->s_nak_state;
781                 __entry->s_flags = qp->s_flags;
782                 __entry->ps_flags = priv->s_flags;
783                 __entry->iow_flags = priv->s_iowait.flags;
784         ),
785         TP_printk(/* print */
786                 RSP_INFO_PRN,
787                 __get_str(dev),
788                 __entry->qpn,
789                 __entry->state,
790                 __entry->s_state,
791                 __entry->psn,
792                 __entry->r_psn,
793                 __entry->r_state,
794                 __entry->r_flags,
795                 __entry->r_head_ack_queue,
796                 __entry->s_tail_ack_queue,
797                 __entry->s_acked_ack_queue,
798                 __entry->s_ack_state,
799                 __entry->s_nak_state,
800                 __entry->s_flags,
801                 __entry->ps_flags,
802                 __entry->iow_flags
803         )
804 );
805
806 DEFINE_EVENT(/* event */
807         hfi1_responder_info_template, hfi1_rsp_make_rc_ack,
808         TP_PROTO(struct rvt_qp *qp, u32 psn),
809         TP_ARGS(qp, psn)
810 );
811
812 DEFINE_EVENT(/* event */
813         hfi1_responder_info_template, hfi1_rsp_rcv_tid_read_req,
814         TP_PROTO(struct rvt_qp *qp, u32 psn),
815         TP_ARGS(qp, psn)
816 );
817
818 DEFINE_EVENT(/* event */
819         hfi1_responder_info_template, hfi1_rsp_tid_rcv_error,
820         TP_PROTO(struct rvt_qp *qp, u32 psn),
821         TP_ARGS(qp, psn)
822 );
823
824 DEFINE_EVENT(/* event */
825         hfi1_responder_info_template, hfi1_rsp_tid_write_alloc_res,
826         TP_PROTO(struct rvt_qp *qp, u32 psn),
827         TP_ARGS(qp, psn)
828 );
829
830 DEFINE_EVENT(/* event */
831         hfi1_responder_info_template, hfi1_rsp_rcv_tid_write_req,
832         TP_PROTO(struct rvt_qp *qp, u32 psn),
833         TP_ARGS(qp, psn)
834 );
835
836 DEFINE_EVENT(/* event */
837         hfi1_responder_info_template, hfi1_rsp_build_tid_write_resp,
838         TP_PROTO(struct rvt_qp *qp, u32 psn),
839         TP_ARGS(qp, psn)
840 );
841
842 DEFINE_EVENT(/* event */
843         hfi1_responder_info_template, hfi1_rsp_rcv_tid_write_data,
844         TP_PROTO(struct rvt_qp *qp, u32 psn),
845         TP_ARGS(qp, psn)
846 );
847
848 DEFINE_EVENT(/* event */
849         hfi1_responder_info_template, hfi1_rsp_make_tid_ack,
850         TP_PROTO(struct rvt_qp *qp, u32 psn),
851         TP_ARGS(qp, psn)
852 );
853
854 DEFINE_EVENT(/* event */
855         hfi1_responder_info_template, hfi1_rsp_handle_kdeth_eflags,
856         TP_PROTO(struct rvt_qp *qp, u32 psn),
857         TP_ARGS(qp, psn)
858 );
859
860 DEFINE_EVENT(/* event */
861         hfi1_responder_info_template, hfi1_rsp_read_kdeth_eflags,
862         TP_PROTO(struct rvt_qp *qp, u32 psn),
863         TP_ARGS(qp, psn)
864 );
865
866 DECLARE_EVENT_CLASS(/* sender_info */
867         hfi1_sender_info_template,
868         TP_PROTO(struct rvt_qp *qp),
869         TP_ARGS(qp),
870         TP_STRUCT__entry(/* entry */
871                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
872                 __field(u32, qpn)
873                 __field(u8, state)
874                 __field(u32, s_cur)
875                 __field(u32, s_tail)
876                 __field(u32, s_head)
877                 __field(u32, s_acked)
878                 __field(u32, s_last)
879                 __field(u32, s_psn)
880                 __field(u32, s_last_psn)
881                 __field(u32, s_flags)
882                 __field(u32, ps_flags)
883                 __field(unsigned long, iow_flags)
884                 __field(u8, s_state)
885                 __field(u8, s_num_rd)
886                 __field(u8, s_retry)
887         ),
888         TP_fast_assign(/* assign */
889                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
890                 __entry->qpn = qp->ibqp.qp_num;
891                 __entry->state = qp->state;
892                 __entry->s_cur = qp->s_cur;
893                 __entry->s_tail = qp->s_tail;
894                 __entry->s_head = qp->s_head;
895                 __entry->s_acked = qp->s_acked;
896                 __entry->s_last = qp->s_last;
897                 __entry->s_psn = qp->s_psn;
898                 __entry->s_last_psn = qp->s_last_psn;
899                 __entry->s_flags = qp->s_flags;
900                 __entry->ps_flags = ((struct hfi1_qp_priv *)qp->priv)->s_flags;
901                 __entry->iow_flags =
902                         ((struct hfi1_qp_priv *)qp->priv)->s_iowait.flags;
903                 __entry->s_state = qp->s_state;
904                 __entry->s_num_rd = qp->s_num_rd_atomic;
905                 __entry->s_retry = qp->s_retry;
906         ),
907         TP_printk(/* print */
908                 SENDER_INFO_PRN,
909                 __get_str(dev),
910                 __entry->qpn,
911                 __entry->state,
912                 __entry->s_cur,
913                 __entry->s_tail,
914                 __entry->s_head,
915                 __entry->s_acked,
916                 __entry->s_last,
917                 __entry->s_psn,
918                 __entry->s_last_psn,
919                 __entry->s_flags,
920                 __entry->ps_flags,
921                 __entry->iow_flags,
922                 __entry->s_state,
923                 __entry->s_num_rd,
924                 __entry->s_retry
925         )
926 );
927
928 DEFINE_EVENT(/* event */
929         hfi1_sender_info_template, hfi1_sender_make_rc_req,
930         TP_PROTO(struct rvt_qp *qp),
931         TP_ARGS(qp)
932 );
933
934 DEFINE_EVENT(/* event */
935         hfi1_sender_info_template, hfi1_sender_reset_psn,
936         TP_PROTO(struct rvt_qp *qp),
937         TP_ARGS(qp)
938 );
939
940 DEFINE_EVENT(/* event */
941         hfi1_sender_info_template, hfi1_sender_restart_rc,
942         TP_PROTO(struct rvt_qp *qp),
943         TP_ARGS(qp)
944 );
945
946 DEFINE_EVENT(/* event */
947         hfi1_sender_info_template, hfi1_sender_do_rc_ack,
948         TP_PROTO(struct rvt_qp *qp),
949         TP_ARGS(qp)
950 );
951
952 DEFINE_EVENT(/* event */
953         hfi1_sender_info_template, hfi1_sender_rcv_tid_read_resp,
954         TP_PROTO(struct rvt_qp *qp),
955         TP_ARGS(qp)
956 );
957
958 DEFINE_EVENT(/* event */
959         hfi1_sender_info_template, hfi1_sender_rcv_tid_ack,
960         TP_PROTO(struct rvt_qp *qp),
961         TP_ARGS(qp)
962 );
963
964 DEFINE_EVENT(/* event */
965         hfi1_sender_info_template, hfi1_sender_make_tid_pkt,
966         TP_PROTO(struct rvt_qp *qp),
967         TP_ARGS(qp)
968 );
969
970 DEFINE_EVENT(/* event */
971         hfi1_sender_info_template, hfi1_sender_read_kdeth_eflags,
972         TP_PROTO(struct rvt_qp *qp),
973         TP_ARGS(qp)
974 );
975
976 DECLARE_EVENT_CLASS(/* tid_read_sender */
977         hfi1_tid_read_sender_template,
978         TP_PROTO(struct rvt_qp *qp, char newreq),
979         TP_ARGS(qp, newreq),
980         TP_STRUCT__entry(/* entry */
981                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
982                 __field(u32, qpn)
983                 __field(char, newreq)
984                 __field(u32, tid_r_reqs)
985                 __field(u32, tid_r_comp)
986                 __field(u32, pending_tid_r_segs)
987                 __field(u32, s_flags)
988                 __field(u32, ps_flags)
989                 __field(unsigned long, iow_flags)
990                 __field(u8, s_state)
991                 __field(u32, hw_flow_index)
992                 __field(u32, generation)
993                 __field(u32, fpsn)
994         ),
995         TP_fast_assign(/* assign */
996                 struct hfi1_qp_priv *priv = qp->priv;
997
998                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
999                 __entry->qpn = qp->ibqp.qp_num;
1000                 __entry->newreq = newreq;
1001                 __entry->tid_r_reqs = priv->tid_r_reqs;
1002                 __entry->tid_r_comp = priv->tid_r_comp;
1003                 __entry->pending_tid_r_segs = priv->pending_tid_r_segs;
1004                 __entry->s_flags = qp->s_flags;
1005                 __entry->ps_flags = priv->s_flags;
1006                 __entry->iow_flags = priv->s_iowait.flags;
1007                 __entry->s_state = priv->s_state;
1008                 __entry->hw_flow_index = priv->flow_state.index;
1009                 __entry->generation = priv->flow_state.generation;
1010                 __entry->fpsn = priv->flow_state.psn;
1011         ),
1012         TP_printk(/* print */
1013                 TID_READ_SENDER_PRN,
1014                 __get_str(dev),
1015                 __entry->qpn,
1016                 __entry->newreq,
1017                 __entry->tid_r_reqs,
1018                 __entry->tid_r_comp,
1019                 __entry->pending_tid_r_segs,
1020                 __entry->s_flags,
1021                 __entry->ps_flags,
1022                 __entry->iow_flags,
1023                 __entry->s_state,
1024                 __entry->hw_flow_index,
1025                 __entry->generation,
1026                 __entry->fpsn
1027         )
1028 );
1029
1030 DEFINE_EVENT(/* event */
1031         hfi1_tid_read_sender_template, hfi1_tid_read_sender_make_req,
1032         TP_PROTO(struct rvt_qp *qp, char newreq),
1033         TP_ARGS(qp, newreq)
1034 );
1035
1036 DEFINE_EVENT(/* event */
1037         hfi1_tid_read_sender_template, hfi1_tid_read_sender_kdeth_eflags,
1038         TP_PROTO(struct rvt_qp *qp, char newreq),
1039         TP_ARGS(qp, newreq)
1040 );
1041
1042 DECLARE_EVENT_CLASS(/* tid_rdma_request */
1043         hfi1_tid_rdma_request_template,
1044         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1045                  struct tid_rdma_request *req),
1046         TP_ARGS(qp, newreq, opcode, psn, lpsn, req),
1047         TP_STRUCT__entry(/* entry */
1048                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1049                 __field(u32, qpn)
1050                 __field(char, newreq)
1051                 __field(u8, opcode)
1052                 __field(u32, psn)
1053                 __field(u32, lpsn)
1054                 __field(u32, cur_seg)
1055                 __field(u32, comp_seg)
1056                 __field(u32, ack_seg)
1057                 __field(u32, alloc_seg)
1058                 __field(u32, total_segs)
1059                 __field(u16, setup_head)
1060                 __field(u16, clear_tail)
1061                 __field(u16, flow_idx)
1062                 __field(u16, acked_tail)
1063                 __field(u32, state)
1064                 __field(u32, r_ack_psn)
1065                 __field(u32, r_flow_psn)
1066                 __field(u32, r_last_acked)
1067                 __field(u32, s_next_psn)
1068         ),
1069         TP_fast_assign(/* assign */
1070                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1071                 __entry->qpn = qp->ibqp.qp_num;
1072                 __entry->newreq = newreq;
1073                 __entry->opcode = opcode;
1074                 __entry->psn = psn;
1075                 __entry->lpsn = lpsn;
1076                 __entry->cur_seg = req->cur_seg;
1077                 __entry->comp_seg = req->comp_seg;
1078                 __entry->ack_seg = req->ack_seg;
1079                 __entry->alloc_seg = req->alloc_seg;
1080                 __entry->total_segs = req->total_segs;
1081                 __entry->setup_head = req->setup_head;
1082                 __entry->clear_tail = req->clear_tail;
1083                 __entry->flow_idx = req->flow_idx;
1084                 __entry->acked_tail = req->acked_tail;
1085                 __entry->state = req->state;
1086                 __entry->r_ack_psn = req->r_ack_psn;
1087                 __entry->r_flow_psn = req->r_flow_psn;
1088                 __entry->r_last_acked = req->r_last_acked;
1089                 __entry->s_next_psn = req->s_next_psn;
1090         ),
1091         TP_printk(/* print */
1092                 TID_REQ_PRN,
1093                 __get_str(dev),
1094                 __entry->qpn,
1095                 __entry->newreq,
1096                 __entry->opcode,
1097                 __entry->psn,
1098                 __entry->lpsn,
1099                 __entry->cur_seg,
1100                 __entry->comp_seg,
1101                 __entry->ack_seg,
1102                 __entry->alloc_seg,
1103                 __entry->total_segs,
1104                 __entry->setup_head,
1105                 __entry->clear_tail,
1106                 __entry->flow_idx,
1107                 __entry->acked_tail,
1108                 __entry->state,
1109                 __entry->r_ack_psn,
1110                 __entry->r_flow_psn,
1111                 __entry->r_last_acked,
1112                 __entry->s_next_psn
1113         )
1114 );
1115
1116 DEFINE_EVENT(/* event */
1117         hfi1_tid_rdma_request_template, hfi1_tid_req_make_req_read,
1118         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1119                  struct tid_rdma_request *req),
1120         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1121 );
1122
1123 DEFINE_EVENT(/* event */
1124         hfi1_tid_rdma_request_template, hfi1_tid_req_build_read_req,
1125         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1126                  struct tid_rdma_request *req),
1127         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1128 );
1129
1130 DEFINE_EVENT(/* event */
1131         hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_read_req,
1132         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1133                  struct tid_rdma_request *req),
1134         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1135 );
1136
1137 DEFINE_EVENT(/* event */
1138         hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_read_resp,
1139         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1140                  struct tid_rdma_request *req),
1141         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1142 );
1143
1144 DEFINE_EVENT(/* event */
1145         hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_err,
1146         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1147                  struct tid_rdma_request *req),
1148         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1149 );
1150
1151 DEFINE_EVENT(/* event */
1152         hfi1_tid_rdma_request_template, hfi1_tid_req_restart_req,
1153         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1154                  struct tid_rdma_request *req),
1155         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1156 );
1157
1158 DEFINE_EVENT(/* event */
1159         hfi1_tid_rdma_request_template, hfi1_tid_req_setup_tid_wqe,
1160         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1161                  struct tid_rdma_request *req),
1162         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1163 );
1164
1165 DEFINE_EVENT(/* event */
1166         hfi1_tid_rdma_request_template, hfi1_tid_req_write_alloc_res,
1167         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1168                  struct tid_rdma_request *req),
1169         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1170 );
1171
1172 DEFINE_EVENT(/* event */
1173         hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_write_req,
1174         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1175                  struct tid_rdma_request *req),
1176         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1177 );
1178
1179 DEFINE_EVENT(/* event */
1180         hfi1_tid_rdma_request_template, hfi1_tid_req_build_write_resp,
1181         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1182                  struct tid_rdma_request *req),
1183         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1184 );
1185
1186 DEFINE_EVENT(/* event */
1187         hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_write_resp,
1188         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1189                  struct tid_rdma_request *req),
1190         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1191 );
1192
1193 DEFINE_EVENT(/* event */
1194         hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_write_data,
1195         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1196                  struct tid_rdma_request *req),
1197         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1198 );
1199
1200 DEFINE_EVENT(/* event */
1201         hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_tid_ack,
1202         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1203                  struct tid_rdma_request *req),
1204         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1205 );
1206
1207 DEFINE_EVENT(/* event */
1208         hfi1_tid_rdma_request_template, hfi1_tid_req_tid_retry_timeout,
1209         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1210                  struct tid_rdma_request *req),
1211         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1212 );
1213
1214 DEFINE_EVENT(/* event */
1215         hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_resync,
1216         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1217                  struct tid_rdma_request *req),
1218         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1219 );
1220
1221 DEFINE_EVENT(/* event */
1222         hfi1_tid_rdma_request_template, hfi1_tid_req_make_tid_pkt,
1223         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1224                  struct tid_rdma_request *req),
1225         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1226 );
1227
1228 DEFINE_EVENT(/* event */
1229         hfi1_tid_rdma_request_template, hfi1_tid_req_make_tid_ack,
1230         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1231                  struct tid_rdma_request *req),
1232         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1233 );
1234
1235 DEFINE_EVENT(/* event */
1236         hfi1_tid_rdma_request_template, hfi1_tid_req_handle_kdeth_eflags,
1237         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1238                  struct tid_rdma_request *req),
1239         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1240 );
1241
1242 DEFINE_EVENT(/* event */
1243         hfi1_tid_rdma_request_template, hfi1_tid_req_read_kdeth_eflags,
1244         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1245                  struct tid_rdma_request *req),
1246         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1247 );
1248
1249 DEFINE_EVENT(/* event */
1250         hfi1_tid_rdma_request_template, hfi1_tid_req_make_rc_ack_write,
1251         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1252                  struct tid_rdma_request *req),
1253         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1254 );
1255
1256 DEFINE_EVENT(/* event */
1257         hfi1_tid_rdma_request_template, hfi1_tid_req_make_req_write,
1258         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1259                  struct tid_rdma_request *req),
1260         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1261 );
1262
1263 DEFINE_EVENT(/* event */
1264         hfi1_tid_rdma_request_template, hfi1_tid_req_update_num_rd_atomic,
1265         TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1266                  struct tid_rdma_request *req),
1267         TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1268 );
1269
1270 DECLARE_EVENT_CLASS(/* rc_rcv_err */
1271         hfi1_rc_rcv_err_template,
1272         TP_PROTO(struct rvt_qp *qp, u32 opcode, u32 psn, int diff),
1273         TP_ARGS(qp, opcode, psn, diff),
1274         TP_STRUCT__entry(/* entry */
1275                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1276                 __field(u32, qpn)
1277                 __field(u32, s_flags)
1278                 __field(u8, state)
1279                 __field(u8, s_acked_ack_queue)
1280                 __field(u8, s_tail_ack_queue)
1281                 __field(u8, r_head_ack_queue)
1282                 __field(u32, opcode)
1283                 __field(u32, psn)
1284                 __field(u32, r_psn)
1285                 __field(int, diff)
1286         ),
1287         TP_fast_assign(/* assign */
1288                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1289                 __entry->qpn = qp->ibqp.qp_num;
1290                 __entry->s_flags = qp->s_flags;
1291                 __entry->state = qp->state;
1292                 __entry->s_acked_ack_queue = qp->s_acked_ack_queue;
1293                 __entry->s_tail_ack_queue = qp->s_tail_ack_queue;
1294                 __entry->r_head_ack_queue = qp->r_head_ack_queue;
1295                 __entry->opcode = opcode;
1296                 __entry->psn = psn;
1297                 __entry->r_psn = qp->r_psn;
1298                 __entry->diff = diff;
1299         ),
1300         TP_printk(/* print */
1301                 RCV_ERR_PRN,
1302                 __get_str(dev),
1303                 __entry->qpn,
1304                 __entry->s_flags,
1305                 __entry->state,
1306                 __entry->s_acked_ack_queue,
1307                 __entry->s_tail_ack_queue,
1308                 __entry->r_head_ack_queue,
1309                 __entry->opcode,
1310                 __entry->psn,
1311                 __entry->r_psn,
1312                 __entry->diff
1313         )
1314 );
1315
1316 DEFINE_EVENT(/* event */
1317         hfi1_rc_rcv_err_template, hfi1_tid_rdma_rcv_err,
1318         TP_PROTO(struct rvt_qp *qp, u32 opcode, u32 psn, int diff),
1319         TP_ARGS(qp, opcode, psn, diff)
1320 );
1321
1322 DECLARE_EVENT_CLASS(/* sge  */
1323         hfi1_sge_template,
1324         TP_PROTO(struct rvt_qp *qp, int index, struct rvt_sge *sge),
1325         TP_ARGS(qp, index, sge),
1326         TP_STRUCT__entry(/* entry */
1327                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1328                 __field(u32, qpn)
1329                 __field(int, index)
1330                 __field(u64, vaddr)
1331                 __field(u32, sge_length)
1332         ),
1333         TP_fast_assign(/* assign */
1334                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1335                 __entry->qpn = qp->ibqp.qp_num;
1336                 __entry->index = index;
1337                 __entry->vaddr = (u64)sge->vaddr;
1338                 __entry->sge_length = sge->sge_length;
1339         ),
1340         TP_printk(/* print */
1341                 "[%s] qpn 0x%x sge %d: vaddr 0x%llx sge_length %u",
1342                 __get_str(dev),
1343                 __entry->qpn,
1344                 __entry->index,
1345                 __entry->vaddr,
1346                 __entry->sge_length
1347         )
1348 );
1349
1350 DEFINE_EVENT(/* event */
1351         hfi1_sge_template, hfi1_sge_check_align,
1352         TP_PROTO(struct rvt_qp *qp, int index, struct rvt_sge *sge),
1353         TP_ARGS(qp, index, sge)
1354 );
1355
1356 DECLARE_EVENT_CLASS(/* tid_write_sp */
1357         hfi1_tid_write_rsp_template,
1358         TP_PROTO(struct rvt_qp *qp),
1359         TP_ARGS(qp),
1360         TP_STRUCT__entry(/* entry */
1361                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1362                 __field(u32, qpn)
1363                 __field(u32, r_tid_head)
1364                 __field(u32, r_tid_tail)
1365                 __field(u32, r_tid_ack)
1366                 __field(u32, r_tid_alloc)
1367                 __field(u32, alloc_w_segs)
1368                 __field(u32, pending_tid_w_segs)
1369                 __field(bool, sync_pt)
1370                 __field(u32, ps_nak_psn)
1371                 __field(u8, ps_nak_state)
1372                 __field(u8, prnr_nak_state)
1373                 __field(u32, hw_flow_index)
1374                 __field(u32, generation)
1375                 __field(u32, fpsn)
1376                 __field(bool, resync)
1377                 __field(u32, r_next_psn_kdeth)
1378         ),
1379         TP_fast_assign(/* assign */
1380                 struct hfi1_qp_priv *priv = qp->priv;
1381
1382                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1383                 __entry->qpn = qp->ibqp.qp_num;
1384                 __entry->r_tid_head = priv->r_tid_head;
1385                 __entry->r_tid_tail = priv->r_tid_tail;
1386                 __entry->r_tid_ack = priv->r_tid_ack;
1387                 __entry->r_tid_alloc = priv->r_tid_alloc;
1388                 __entry->alloc_w_segs = priv->alloc_w_segs;
1389                 __entry->pending_tid_w_segs = priv->pending_tid_w_segs;
1390                 __entry->sync_pt = priv->sync_pt;
1391                 __entry->ps_nak_psn = priv->s_nak_psn;
1392                 __entry->ps_nak_state = priv->s_nak_state;
1393                 __entry->prnr_nak_state = priv->rnr_nak_state;
1394                 __entry->hw_flow_index = priv->flow_state.index;
1395                 __entry->generation = priv->flow_state.generation;
1396                 __entry->fpsn = priv->flow_state.psn;
1397                 __entry->resync = priv->resync;
1398                 __entry->r_next_psn_kdeth = priv->r_next_psn_kdeth;
1399         ),
1400         TP_printk(/* print */
1401                 TID_WRITE_RSPDR_PRN,
1402                 __get_str(dev),
1403                 __entry->qpn,
1404                 __entry->r_tid_head,
1405                 __entry->r_tid_tail,
1406                 __entry->r_tid_ack,
1407                 __entry->r_tid_alloc,
1408                 __entry->alloc_w_segs,
1409                 __entry->pending_tid_w_segs,
1410                 __entry->sync_pt ? "yes" : "no",
1411                 __entry->ps_nak_psn,
1412                 __entry->ps_nak_state,
1413                 __entry->prnr_nak_state,
1414                 __entry->hw_flow_index,
1415                 __entry->generation,
1416                 __entry->fpsn,
1417                 __entry->resync ? "yes" : "no",
1418                 __entry->r_next_psn_kdeth
1419         )
1420 );
1421
1422 DEFINE_EVENT(/* event */
1423         hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_alloc_res,
1424         TP_PROTO(struct rvt_qp *qp),
1425         TP_ARGS(qp)
1426 );
1427
1428 DEFINE_EVENT(/* event */
1429         hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_rcv_req,
1430         TP_PROTO(struct rvt_qp *qp),
1431         TP_ARGS(qp)
1432 );
1433
1434 DEFINE_EVENT(/* event */
1435         hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_build_resp,
1436         TP_PROTO(struct rvt_qp *qp),
1437         TP_ARGS(qp)
1438 );
1439
1440 DEFINE_EVENT(/* event */
1441         hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_rcv_data,
1442         TP_PROTO(struct rvt_qp *qp),
1443         TP_ARGS(qp)
1444 );
1445
1446 DEFINE_EVENT(/* event */
1447         hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_rcv_resync,
1448         TP_PROTO(struct rvt_qp *qp),
1449         TP_ARGS(qp)
1450 );
1451
1452 DEFINE_EVENT(/* event */
1453         hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_make_tid_ack,
1454         TP_PROTO(struct rvt_qp *qp),
1455         TP_ARGS(qp)
1456 );
1457
1458 DEFINE_EVENT(/* event */
1459         hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_handle_kdeth_eflags,
1460         TP_PROTO(struct rvt_qp *qp),
1461         TP_ARGS(qp)
1462 );
1463
1464 DEFINE_EVENT(/* event */
1465         hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_make_rc_ack,
1466         TP_PROTO(struct rvt_qp *qp),
1467         TP_ARGS(qp)
1468 );
1469
1470 DECLARE_EVENT_CLASS(/* tid_write_sender */
1471         hfi1_tid_write_sender_template,
1472         TP_PROTO(struct rvt_qp *qp, char newreq),
1473         TP_ARGS(qp, newreq),
1474         TP_STRUCT__entry(/* entry */
1475                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1476                 __field(u32, qpn)
1477                 __field(char, newreq)
1478                 __field(u32, s_tid_cur)
1479                 __field(u32, s_tid_tail)
1480                 __field(u32, s_tid_head)
1481                 __field(u32, pending_tid_w_resp)
1482                 __field(u32, n_requests)
1483                 __field(u32, n_tid_requests)
1484                 __field(u32, s_flags)
1485                 __field(u32, ps_flags)
1486                 __field(unsigned long, iow_flags)
1487                 __field(u8, s_state)
1488                 __field(u8, s_retry)
1489         ),
1490         TP_fast_assign(/* assign */
1491                 struct hfi1_qp_priv *priv = qp->priv;
1492
1493                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1494                 __entry->qpn = qp->ibqp.qp_num;
1495                 __entry->newreq = newreq;
1496                 __entry->s_tid_cur = priv->s_tid_cur;
1497                 __entry->s_tid_tail = priv->s_tid_tail;
1498                 __entry->s_tid_head = priv->s_tid_head;
1499                 __entry->pending_tid_w_resp = priv->pending_tid_w_resp;
1500                 __entry->n_requests = atomic_read(&priv->n_requests);
1501                 __entry->n_tid_requests = atomic_read(&priv->n_tid_requests);
1502                 __entry->s_flags = qp->s_flags;
1503                 __entry->ps_flags = priv->s_flags;
1504                 __entry->iow_flags = priv->s_iowait.flags;
1505                 __entry->s_state = priv->s_state;
1506                 __entry->s_retry = priv->s_retry;
1507         ),
1508         TP_printk(/* print */
1509                 TID_WRITE_SENDER_PRN,
1510                 __get_str(dev),
1511                 __entry->qpn,
1512                 __entry->newreq,
1513                 __entry->s_tid_cur,
1514                 __entry->s_tid_tail,
1515                 __entry->s_tid_head,
1516                 __entry->pending_tid_w_resp,
1517                 __entry->n_requests,
1518                 __entry->n_tid_requests,
1519                 __entry->s_flags,
1520                 __entry->ps_flags,
1521                 __entry->iow_flags,
1522                 __entry->s_state,
1523                 __entry->s_retry
1524         )
1525 );
1526
1527 DEFINE_EVENT(/* event */
1528         hfi1_tid_write_sender_template, hfi1_tid_write_sender_rcv_resp,
1529         TP_PROTO(struct rvt_qp *qp, char newreq),
1530         TP_ARGS(qp, newreq)
1531 );
1532
1533 DEFINE_EVENT(/* event */
1534         hfi1_tid_write_sender_template, hfi1_tid_write_sender_rcv_tid_ack,
1535         TP_PROTO(struct rvt_qp *qp, char newreq),
1536         TP_ARGS(qp, newreq)
1537 );
1538
1539 DEFINE_EVENT(/* event */
1540         hfi1_tid_write_sender_template, hfi1_tid_write_sender_retry_timeout,
1541         TP_PROTO(struct rvt_qp *qp, char newreq),
1542         TP_ARGS(qp, newreq)
1543 );
1544
1545 DEFINE_EVENT(/* event */
1546         hfi1_tid_write_sender_template, hfi1_tid_write_sender_make_tid_pkt,
1547         TP_PROTO(struct rvt_qp *qp, char newreq),
1548         TP_ARGS(qp, newreq)
1549 );
1550
1551 DEFINE_EVENT(/* event */
1552         hfi1_tid_write_sender_template, hfi1_tid_write_sender_make_req,
1553         TP_PROTO(struct rvt_qp *qp, char newreq),
1554         TP_ARGS(qp, newreq)
1555 );
1556
1557 DEFINE_EVENT(/* event */
1558         hfi1_tid_write_sender_template, hfi1_tid_write_sender_restart_rc,
1559         TP_PROTO(struct rvt_qp *qp, char newreq),
1560         TP_ARGS(qp, newreq)
1561 );
1562
1563 DECLARE_EVENT_CLASS(/* tid_ack */
1564         hfi1_tid_ack_template,
1565         TP_PROTO(struct rvt_qp *qp, u32 aeth, u32 psn,
1566                  u32 req_psn, u32 resync_psn),
1567         TP_ARGS(qp, aeth, psn, req_psn, resync_psn),
1568         TP_STRUCT__entry(/* entry */
1569                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1570                 __field(u32, qpn)
1571                 __field(u32, aeth)
1572                 __field(u32, psn)
1573                 __field(u32, req_psn)
1574                 __field(u32, resync_psn)
1575         ),
1576         TP_fast_assign(/* assign */
1577                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1578                 __entry->qpn = qp->ibqp.qp_num;
1579                 __entry->aeth = aeth;
1580                 __entry->psn = psn;
1581                 __entry->req_psn = req_psn;
1582                 __entry->resync_psn = resync_psn;
1583                 ),
1584         TP_printk(/* print */
1585                 "[%s] qpn 0x%x aeth 0x%x psn 0x%x req_psn 0x%x resync_psn 0x%x",
1586                 __get_str(dev),
1587                 __entry->qpn,
1588                 __entry->aeth,
1589                 __entry->psn,
1590                 __entry->req_psn,
1591                 __entry->resync_psn
1592         )
1593 );
1594
1595 DEFINE_EVENT(/* rcv_tid_ack */
1596         hfi1_tid_ack_template, hfi1_rcv_tid_ack,
1597         TP_PROTO(struct rvt_qp *qp, u32 aeth, u32 psn,
1598                  u32 req_psn, u32 resync_psn),
1599         TP_ARGS(qp, aeth, psn, req_psn, resync_psn)
1600 );
1601
1602 DECLARE_EVENT_CLASS(/* kdeth_eflags_error */
1603         hfi1_kdeth_eflags_error_template,
1604         TP_PROTO(struct rvt_qp *qp, u8 rcv_type, u8 rte, u32 psn),
1605         TP_ARGS(qp, rcv_type, rte, psn),
1606         TP_STRUCT__entry(/* entry */
1607                 DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1608                 __field(u32, qpn)
1609                 __field(u8, rcv_type)
1610                 __field(u8, rte)
1611                 __field(u32, psn)
1612         ),
1613         TP_fast_assign(/* assign */
1614                 DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1615                 __entry->qpn = qp->ibqp.qp_num;
1616                 __entry->rcv_type = rcv_type;
1617                 __entry->rte = rte;
1618                 __entry->psn = psn;
1619         ),
1620         TP_printk(/* print */
1621                 KDETH_EFLAGS_ERR_PRN,
1622                 __get_str(dev),
1623                 __entry->qpn,
1624                 __entry->rcv_type,
1625                 __entry->rte,
1626                 __entry->psn
1627         )
1628 );
1629
1630 DEFINE_EVENT(/* event */
1631         hfi1_kdeth_eflags_error_template, hfi1_eflags_err_write,
1632         TP_PROTO(struct rvt_qp *qp, u8 rcv_type, u8 rte, u32 psn),
1633         TP_ARGS(qp, rcv_type, rte, psn)
1634 );
1635
1636 #endif /* __HFI1_TRACE_TID_H */
1637
1638 #undef TRACE_INCLUDE_PATH
1639 #undef TRACE_INCLUDE_FILE
1640 #define TRACE_INCLUDE_PATH .
1641 #define TRACE_INCLUDE_FILE trace_tid
1642 #include <trace/define_trace.h>