@@ -51,11 +51,15 @@
#include "opa_smi.h"
#include "agent.h"
+#define CREATE_TRACE_POINTS
+#include <trace/events/ib_mad.h>
+
+#ifdef CONFIG_TRACEPOINTS
static void create_mad_addr_info(struct ib_mad_send_wr_private *mad_send_wr,
- struct ib_mad_qp_info *qp_info,
- u32 *dlid, u8 *sl, u16 *pkey, u32 *rqpn,
- u32 *rqkey)
+ struct ib_mad_qp_info *qp_info,
+ struct trace_event_raw_ib_mad_send_template *entry)
{
+ u16 pkey;
struct ib_device *dev = qp_info->port_priv->device;
u8 pnum = qp_info->port_priv->port_num;
struct ib_ud_wr *wr = &mad_send_wr->send_wr;
@@ -65,26 +69,26 @@ static void create_mad_addr_info(struct ib_mad_send_wr_private *mad_send_wr,
rdma_query_ah(wr->ah, &attr);
/* These are common */
- *sl = attr.sl;
- ib_query_pkey(dev, pnum, wr->pkey_index, pkey);
- *rqpn = wr->remote_qpn;
- *rqkey = wr->remote_qkey;
+ entry->sl = attr.sl;
+ ib_query_pkey(dev, pnum, wr->pkey_index, &pkey);
+ entry->pkey = pkey;
+ entry->rqpn = wr->remote_qpn;
+ entry->rqkey = wr->remote_qkey;
switch (attr.type) {
case RDMA_AH_ATTR_TYPE_IB:
- *dlid = attr.ib.dlid;
+ entry->dlid = attr.ib.dlid;
break;
case RDMA_AH_ATTR_TYPE_OPA:
- *dlid = attr.opa.dlid;
+ entry->dlid = attr.opa.dlid;
break;
case RDMA_AH_ATTR_TYPE_ROCE:
case RDMA_AH_ATTR_TYPE_UNDEFINED:
- *dlid = 0;
+ entry->dlid = 0;
break;
}
}
-#define CREATE_TRACE_POINTS
-#include <trace/events/ib_mad.h>
+#endif
static int mad_sendq_size = IB_MAD_QP_SEND_SIZE;
static int mad_recvq_size = IB_MAD_QP_RECV_SIZE;
@@ -13,6 +13,13 @@
#include <linux/tracepoint.h>
#include <rdma/ib_mad.h>
+#ifdef CONFIG_TRACEPOINTS
+struct trace_event_raw_ib_mad_send_template;
+static void create_mad_addr_info(struct ib_mad_send_wr_private *mad_send_wr,
+ struct ib_mad_qp_info *qp_info,
+ struct trace_event_raw_ib_mad_send_template *entry);
+#endif
+
DECLARE_EVENT_CLASS(ib_mad_send_template,
TP_PROTO(struct ib_mad_send_wr_private *wr,
struct ib_mad_qp_info *qp_info),
@@ -74,10 +81,7 @@ DECLARE_EVENT_CLASS(ib_mad_send_template,
((struct ib_mad_hdr *)wr->send_buf.mad)->attr_id;
__entry->attr_mod =
((struct ib_mad_hdr *)wr->send_buf.mad)->attr_mod;
- create_mad_addr_info(wr, qp_info,
- &__entry->dlid, &__entry->sl,
- &__entry->pkey, &__entry->rqpn,
- &__entry->rqkey);
+ create_mad_addr_info(wr, qp_info, __entry);
),
TP_printk("%d:%d QP%d agent %p: " \