brintos

brintos / linux-shallow public Read only

0
0
Text · 4.6 KiB · dff18ba Raw
164 lines · c
1/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */2/*3 * Copyright(c) 2016 Intel Corporation.4 */5#if !defined(__RVT_TRACE_TX_H) || defined(TRACE_HEADER_MULTI_READ)6#define __RVT_TRACE_TX_H7 8#include <linux/tracepoint.h>9#include <linux/trace_seq.h>10 11#include <rdma/ib_verbs.h>12#include <rdma/rdmavt_qp.h>13 14#undef TRACE_SYSTEM15#define TRACE_SYSTEM rvt_tx16 17#define wr_opcode_name(opcode) { IB_WR_##opcode, #opcode  }18#define show_wr_opcode(opcode)                             \19__print_symbolic(opcode,                                   \20	wr_opcode_name(RDMA_WRITE),                        \21	wr_opcode_name(RDMA_WRITE_WITH_IMM),               \22	wr_opcode_name(SEND),                              \23	wr_opcode_name(SEND_WITH_IMM),                     \24	wr_opcode_name(RDMA_READ),                         \25	wr_opcode_name(ATOMIC_CMP_AND_SWP),                \26	wr_opcode_name(ATOMIC_FETCH_AND_ADD),              \27	wr_opcode_name(LSO),                               \28	wr_opcode_name(SEND_WITH_INV),                     \29	wr_opcode_name(RDMA_READ_WITH_INV),                \30	wr_opcode_name(LOCAL_INV),                         \31	wr_opcode_name(MASKED_ATOMIC_CMP_AND_SWP),         \32	wr_opcode_name(MASKED_ATOMIC_FETCH_AND_ADD),       \33	wr_opcode_name(RESERVED1),                         \34	wr_opcode_name(RESERVED2),                         \35	wr_opcode_name(RESERVED3),                         \36	wr_opcode_name(RESERVED4),                         \37	wr_opcode_name(RESERVED5),                         \38	wr_opcode_name(RESERVED6),                         \39	wr_opcode_name(RESERVED7),                         \40	wr_opcode_name(RESERVED8),                         \41	wr_opcode_name(RESERVED9),                         \42	wr_opcode_name(RESERVED10))43 44#define POS_PRN \45"[%s] wqe %p wr_id %llx send_flags %x qpn %x qpt %u psn %x lpsn %x ssn %x length %u opcode 0x%.2x,%s size %u avail %u head %u last %u pid %u num_sge %u wr_num_sge %u"46 47TRACE_EVENT(48	rvt_post_one_wr,49	TP_PROTO(struct rvt_qp *qp, struct rvt_swqe *wqe, int wr_num_sge),50	TP_ARGS(qp, wqe, wr_num_sge),51	TP_STRUCT__entry(52		RDI_DEV_ENTRY(ib_to_rvt(qp->ibqp.device))53		__field(u64, wr_id)54		__field(struct rvt_swqe *, wqe)55		__field(u32, qpn)56		__field(u32, qpt)57		__field(u32, psn)58		__field(u32, lpsn)59		__field(u32, length)60		__field(u32, opcode)61		__field(u32, size)62		__field(u32, avail)63		__field(u32, head)64		__field(u32, last)65		__field(u32, ssn)66		__field(int, send_flags)67		__field(pid_t, pid)68		__field(int, num_sge)69		__field(int, wr_num_sge)70	),71	TP_fast_assign(72		RDI_DEV_ASSIGN(ib_to_rvt(qp->ibqp.device));73		__entry->wqe = wqe;74		__entry->wr_id = wqe->wr.wr_id;75		__entry->qpn = qp->ibqp.qp_num;76		__entry->qpt = qp->ibqp.qp_type;77		__entry->psn = wqe->psn;78		__entry->lpsn = wqe->lpsn;79		__entry->length = wqe->length;80		__entry->opcode = wqe->wr.opcode;81		__entry->size = qp->s_size;82		__entry->avail = qp->s_avail;83		__entry->head = qp->s_head;84		__entry->last = qp->s_last;85		__entry->pid = qp->pid;86		__entry->ssn = wqe->ssn;87		__entry->send_flags = wqe->wr.send_flags;88		__entry->num_sge = wqe->wr.num_sge;89		__entry->wr_num_sge = wr_num_sge;90	),91	TP_printk(92		POS_PRN,93		__get_str(dev),94		__entry->wqe,95		__entry->wr_id,96		__entry->send_flags,97		__entry->qpn,98		__entry->qpt,99		__entry->psn,100		__entry->lpsn,101		__entry->ssn,102		__entry->length,103		__entry->opcode, show_wr_opcode(__entry->opcode),104		__entry->size,105		__entry->avail,106		__entry->head,107		__entry->last,108		__entry->pid,109		__entry->num_sge,110		__entry->wr_num_sge111	)112);113 114TRACE_EVENT(115	rvt_qp_send_completion,116	TP_PROTO(struct rvt_qp *qp, struct rvt_swqe *wqe, u32 idx),117	TP_ARGS(qp, wqe, idx),118	TP_STRUCT__entry(119		RDI_DEV_ENTRY(ib_to_rvt(qp->ibqp.device))120		__field(struct rvt_swqe *, wqe)121		__field(u64, wr_id)122		__field(u32, qpn)123		__field(u32, qpt)124		__field(u32, length)125		__field(u32, idx)126		__field(u32, ssn)127		__field(enum ib_wr_opcode, opcode)128		__field(int, send_flags)129	),130	TP_fast_assign(131		RDI_DEV_ASSIGN(ib_to_rvt(qp->ibqp.device));132		__entry->wqe = wqe;133		__entry->wr_id = wqe->wr.wr_id;134		__entry->qpn = qp->ibqp.qp_num;135		__entry->qpt = qp->ibqp.qp_type;136		__entry->length = wqe->length;137		__entry->idx = idx;138		__entry->ssn = wqe->ssn;139		__entry->opcode = wqe->wr.opcode;140		__entry->send_flags = wqe->wr.send_flags;141	),142	TP_printk(143		"[%s] qpn 0x%x qpt %u wqe %p idx %u wr_id %llx length %u ssn %u opcode %x send_flags %x",144		__get_str(dev),145		__entry->qpn,146		__entry->qpt,147		__entry->wqe,148		__entry->idx,149		__entry->wr_id,150		__entry->length,151		__entry->ssn,152		__entry->opcode,153		__entry->send_flags154	)155);156#endif /* __RVT_TRACE_TX_H */157 158#undef TRACE_INCLUDE_PATH159#undef TRACE_INCLUDE_FILE160#define TRACE_INCLUDE_PATH .161#define TRACE_INCLUDE_FILE trace_tx162#include <trace/define_trace.h>163 164