Linux Audio

Check our new training course

Loading...
   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
  24u8 hfi1_trace_get_tid_ctrl(u32 ent);
  25u16 hfi1_trace_get_tid_len(u32 ent);
  26u16 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
  86DECLARE_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
 120DEFINE_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
 127DEFINE_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
 134TRACE_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
 162TRACE_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
 193DECLARE_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
 223DEFINE_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
 229DEFINE_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
 235DEFINE_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
 241DEFINE_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
 247DEFINE_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
 253DECLARE_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
 281DEFINE_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
 287DEFINE_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
 293DEFINE_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
 299DECLARE_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
 343DEFINE_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
 350DECLARE_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
 372DEFINE_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
 378DEFINE_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
 384DEFINE_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
 390DEFINE_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
 396DEFINE_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
 402DEFINE_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
 408DEFINE_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
 414DECLARE_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
 448DEFINE_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
 455DECLARE_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
 483DEFINE_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
 489DECLARE_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
 558DEFINE_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
 564DEFINE_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
 570DEFINE_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
 576DEFINE_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
 582DEFINE_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
 588DEFINE_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
 594DEFINE_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
 600DEFINE_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
 606DEFINE_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
 612DEFINE_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
 618DEFINE_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
 624DEFINE_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
 630DEFINE_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
 636DECLARE_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
 674DEFINE_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
 681DECLARE_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
 712DEFINE_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
 718DEFINE_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
 724DEFINE_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
 730DEFINE_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
 736DEFINE_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
 742DECLARE_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
 806DEFINE_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
 812DEFINE_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
 818DEFINE_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
 824DEFINE_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
 830DEFINE_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
 836DEFINE_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
 842DEFINE_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
 848DEFINE_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
 854DEFINE_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
 860DEFINE_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
 866DECLARE_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
 928DEFINE_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
 934DEFINE_EVENT(/* event */
 935	hfi1_sender_info_template, hfi1_sender_reset_psn,
 936	TP_PROTO(struct rvt_qp *qp),
 937	TP_ARGS(qp)
 938);
 939
 940DEFINE_EVENT(/* event */
 941	hfi1_sender_info_template, hfi1_sender_restart_rc,
 942	TP_PROTO(struct rvt_qp *qp),
 943	TP_ARGS(qp)
 944);
 945
 946DEFINE_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
 952DEFINE_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
 958DEFINE_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
 964DEFINE_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
 970DEFINE_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
 976DECLARE_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
1030DEFINE_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
1036DEFINE_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
1042DECLARE_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
1116DEFINE_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
1123DEFINE_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
1130DEFINE_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
1137DEFINE_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
1144DEFINE_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
1151DEFINE_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
1158DEFINE_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
1165DEFINE_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
1172DEFINE_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
1179DEFINE_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
1186DEFINE_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
1193DEFINE_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
1200DEFINE_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
1207DEFINE_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
1214DEFINE_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
1221DEFINE_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
1228DEFINE_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
1235DEFINE_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
1242DEFINE_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
1249DEFINE_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
1256DEFINE_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
1263DEFINE_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
1270DECLARE_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
1316DEFINE_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
1322DECLARE_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
1350DEFINE_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
1356DECLARE_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
1422DEFINE_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
1428DEFINE_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
1434DEFINE_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
1440DEFINE_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
1446DEFINE_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
1452DEFINE_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
1458DEFINE_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
1464DEFINE_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
1470DECLARE_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
1527DEFINE_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
1533DEFINE_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
1539DEFINE_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
1545DEFINE_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
1551DEFINE_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
1557DEFINE_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
1563DECLARE_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
1595DEFINE_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
1602DECLARE_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
1630DEFINE_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>