brintos

brintos / linux-shallow public Read only

0
0
Text · 43.9 KiB · e358f5b Raw
1643 lines · c
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_H8 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_SYSTEM22#define TRACE_SYSTEM hfi1_tid23 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->dma117	)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->order159	)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->dma190	)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->curr220	)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->data278	)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->urg340	)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);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->more369	)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->vaddr445	)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->count480	)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->sent555	)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);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->cnt671	)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->ctrl709	)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_flags803	)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_retry925	)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->fpsn1027	)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_psn1113	)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->diff1313	)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_length1347	)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_kdeth1419	)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_retry1524	)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_psn1592	)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->psn1627	)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_PATH1639#undef TRACE_INCLUDE_FILE1640#define TRACE_INCLUDE_PATH .1641#define TRACE_INCLUDE_FILE trace_tid1642#include <trace/define_trace.h>1643