linux/drivers/infiniband/hw/hfi1/trace_rc.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
   2/*
   3* Copyright(c) 2015, 2016, 2017 Intel Corporation.
   4*/
   5
   6#if !defined(__HFI1_TRACE_RC_H) || defined(TRACE_HEADER_MULTI_READ)
   7#define __HFI1_TRACE_RC_H
   8
   9#include <linux/tracepoint.h>
  10#include <linux/trace_seq.h>
  11
  12#include "hfi.h"
  13
  14#undef TRACE_SYSTEM
  15#define TRACE_SYSTEM hfi1_rc
  16
  17DECLARE_EVENT_CLASS(hfi1_rc_template,
  18                    TP_PROTO(struct rvt_qp *qp, u32 psn),
  19                    TP_ARGS(qp, psn),
  20                    TP_STRUCT__entry(
  21                        DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
  22                        __field(u32, qpn)
  23                        __field(u32, s_flags)
  24                        __field(u32, psn)
  25                        __field(u32, s_psn)
  26                        __field(u32, s_next_psn)
  27                        __field(u32, s_sending_psn)
  28                        __field(u32, s_sending_hpsn)
  29                        __field(u32, r_psn)
  30                        ),
  31                    TP_fast_assign(
  32                        DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
  33                        __entry->qpn = qp->ibqp.qp_num;
  34                        __entry->s_flags = qp->s_flags;
  35                        __entry->psn = psn;
  36                        __entry->s_psn = qp->s_psn;
  37                        __entry->s_next_psn = qp->s_next_psn;
  38                        __entry->s_sending_psn = qp->s_sending_psn;
  39                        __entry->s_sending_hpsn = qp->s_sending_hpsn;
  40                        __entry->r_psn = qp->r_psn;
  41                        ),
  42                    TP_printk(
  43                        "[%s] qpn 0x%x s_flags 0x%x psn 0x%x s_psn 0x%x s_next_psn 0x%x s_sending_psn 0x%x sending_hpsn 0x%x r_psn 0x%x",
  44                        __get_str(dev),
  45                        __entry->qpn,
  46                        __entry->s_flags,
  47                        __entry->psn,
  48                        __entry->s_psn,
  49                        __entry->s_next_psn,
  50                        __entry->s_sending_psn,
  51                        __entry->s_sending_hpsn,
  52                        __entry->r_psn
  53                        )
  54);
  55
  56DEFINE_EVENT(hfi1_rc_template, hfi1_sendcomplete,
  57             TP_PROTO(struct rvt_qp *qp, u32 psn),
  58             TP_ARGS(qp, psn)
  59);
  60
  61DEFINE_EVENT(hfi1_rc_template, hfi1_ack,
  62             TP_PROTO(struct rvt_qp *qp, u32 psn),
  63             TP_ARGS(qp, psn)
  64);
  65
  66DEFINE_EVENT(hfi1_rc_template, hfi1_rcv_error,
  67             TP_PROTO(struct rvt_qp *qp, u32 psn),
  68             TP_ARGS(qp, psn)
  69);
  70
  71DEFINE_EVENT(/* event */
  72        hfi1_rc_template, hfi1_rc_completion,
  73        TP_PROTO(struct rvt_qp *qp, u32 psn),
  74        TP_ARGS(qp, psn)
  75);
  76
  77DECLARE_EVENT_CLASS(/* rc_ack */
  78        hfi1_rc_ack_template,
  79        TP_PROTO(struct rvt_qp *qp, u32 aeth, u32 psn,
  80                 struct rvt_swqe *wqe),
  81        TP_ARGS(qp, aeth, psn, wqe),
  82        TP_STRUCT__entry(/* entry */
  83                DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
  84                __field(u32, qpn)
  85                __field(u32, aeth)
  86                __field(u32, psn)
  87                __field(u8, opcode)
  88                __field(u32, spsn)
  89                __field(u32, lpsn)
  90        ),
  91        TP_fast_assign(/* assign */
  92                DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
  93                __entry->qpn = qp->ibqp.qp_num;
  94                __entry->aeth = aeth;
  95                __entry->psn = psn;
  96                __entry->opcode = wqe->wr.opcode;
  97                __entry->spsn = wqe->psn;
  98                __entry->lpsn = wqe->lpsn;
  99        ),
 100        TP_printk(/* print */
 101                "[%s] qpn 0x%x aeth 0x%x psn 0x%x opcode 0x%x spsn 0x%x lpsn 0x%x",
 102                __get_str(dev),
 103                __entry->qpn,
 104                __entry->aeth,
 105                __entry->psn,
 106                __entry->opcode,
 107                __entry->spsn,
 108                __entry->lpsn
 109        )
 110);
 111
 112DEFINE_EVENT(/* do_rc_ack */
 113        hfi1_rc_ack_template, hfi1_rc_ack_do,
 114        TP_PROTO(struct rvt_qp *qp, u32 aeth, u32 psn,
 115                 struct rvt_swqe *wqe),
 116        TP_ARGS(qp, aeth, psn, wqe)
 117);
 118
 119#endif /* __HFI1_TRACE_RC_H */
 120
 121#undef TRACE_INCLUDE_PATH
 122#undef TRACE_INCLUDE_FILE
 123#define TRACE_INCLUDE_PATH .
 124#define TRACE_INCLUDE_FILE trace_rc
 125#include <trace/define_trace.h>
 126