diff mbox series

[V2] IB/mad: Use trace struct in create_mad_addr_info() helper

Message ID 20190307170235.11900-1-ira.weiny@intel.com (mailing list archive)
State Changes Requested
Headers show
Series [V2] IB/mad: Use trace struct in create_mad_addr_info() helper | expand

Commit Message

Ira Weiny March 7, 2019, 5:02 p.m. UTC
From: Ira Weiny <ira.weiny@intel.com>

Using a structure pointer is more efficient in the helper.

Suggested-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>

---
Changes from V1
	Fix compilation when TRACEPOINTS are not configured

 drivers/infiniband/core/mad.c | 28 ++++++++++++++++------------
 include/trace/events/ib_mad.h | 12 ++++++++----
 2 files changed, 24 insertions(+), 16 deletions(-)

Comments

Ira Weiny March 11, 2019, 10:25 a.m. UTC | #1
On Mon, Mar 11, 2019 at 10:54:33AM -0300, Jason Gunthorpe wrote:
> On Thu, Mar 07, 2019 at 09:02:35AM -0800, ira.weiny@intel.com wrote:
> > From: Ira Weiny <ira.weiny@intel.com>
> > 
> > Using a structure pointer is more efficient in the helper.
> > 
> > Suggested-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> > Signed-off-by: Ira Weiny <ira.weiny@intel.com>
> > 
> > ---
> > Changes from V1
> > 	Fix compilation when TRACEPOINTS are not configured
> > 
> >  drivers/infiniband/core/mad.c | 28 ++++++++++++++++------------
> >  include/trace/events/ib_mad.h | 12 ++++++++----
> >  2 files changed, 24 insertions(+), 16 deletions(-)
> 
> I think you should fold this into the earlier series and resend...

Fair enough.  I was not sure if you had picked up the other series.

Thanks,
Ira

> 
> Thanks,
> Jason
Jason Gunthorpe March 11, 2019, 1:54 p.m. UTC | #2
On Thu, Mar 07, 2019 at 09:02:35AM -0800, ira.weiny@intel.com wrote:
> From: Ira Weiny <ira.weiny@intel.com>
> 
> Using a structure pointer is more efficient in the helper.
> 
> Suggested-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> Signed-off-by: Ira Weiny <ira.weiny@intel.com>
> 
> ---
> Changes from V1
> 	Fix compilation when TRACEPOINTS are not configured
> 
>  drivers/infiniband/core/mad.c | 28 ++++++++++++++++------------
>  include/trace/events/ib_mad.h | 12 ++++++++----
>  2 files changed, 24 insertions(+), 16 deletions(-)

I think you should fold this into the earlier series and resend...

Thanks,
Jason
diff mbox series

Patch

diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c
index 49cec2ab1f3d..0060e066e752 100644
--- a/drivers/infiniband/core/mad.c
+++ b/drivers/infiniband/core/mad.c
@@ -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;
diff --git a/include/trace/events/ib_mad.h b/include/trace/events/ib_mad.h
index 7f2486535d04..59363a083ecb 100644
--- a/include/trace/events/ib_mad.h
+++ b/include/trace/events/ib_mad.h
@@ -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: " \