Re: [RDMA for-next V3 3/6] IB/MAD: Add agent trace points

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 26, 2018 at 08:55:28PM -0500, ira.weiny@xxxxxxxxx wrote:
> From: Ira Weiny <ira.weiny@xxxxxxxxx>
> 
> Trace agent details when agents are [un]registered.  In addition,
> report agent details on send/recv.
> 
> Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
> 
> Changes from V2
> 	Change dev_name to string
> 	Reorder fields for more efficient ring buffer utilization
> 
>  drivers/infiniband/core/mad.c |  4 ++++
>  include/trace/events/ib_mad.h | 44 +++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 48 insertions(+)
> 
> diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c
> index 8f6d5e49337a..3912cff864e4 100644
> +++ b/drivers/infiniband/core/mad.c
> @@ -490,6 +490,7 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
>  	}
>  	spin_unlock_irq(&port_priv->reg_lock);
>  
> +	trace_ib_mad_create_agent(mad_agent_priv);
>  	return &mad_agent_priv->agent;
>  error6:
>  	spin_unlock_irq(&port_priv->reg_lock);
> @@ -647,6 +648,7 @@ static void unregister_mad_agent(struct ib_mad_agent_private *mad_agent_priv)
>  	struct ib_mad_port_private *port_priv;
>  
>  	/* Note that we could still be handling received MADs */
> +	trace_ib_mad_unregister_agent(mad_agent_priv);
>  
>  	/*
>  	 * Canceling all sends results in dropping received response
> @@ -2395,6 +2397,7 @@ static void ib_mad_recv_done(struct ib_cq *cq, struct ib_wc *wc)
>  
>  	mad_agent = find_mad_agent(port_priv, (const struct ib_mad_hdr *)recv->mad);
>  	if (mad_agent) {
> +		trace_ib_mad_recv_done_agent(mad_agent);
>  		ib_mad_complete_recv(mad_agent, &recv->header.recv_wc);
>  		/*
>  		 * recv is freed up in error cases in ib_mad_complete_recv
> @@ -2559,6 +2562,7 @@ static void ib_mad_send_done(struct ib_cq *cq, struct ib_wc *wc)
>  	send_queue = mad_list->mad_queue;
>  	qp_info = send_queue->qp_info;
>  
> +	trace_ib_mad_send_done_agent(mad_send_wr->mad_agent_priv);
>  	trace_ib_mad_send_done_handler(mad_send_wr, wc);
>  
>  retry:
> diff --git a/include/trace/events/ib_mad.h b/include/trace/events/ib_mad.h
> index 0b294a68cebd..84fd696cf5c6 100644
> +++ b/include/trace/events/ib_mad.h
> @@ -222,6 +222,50 @@
>  	)
>  );
>  
> +DECLARE_EVENT_CLASS(ib_mad_agent_template,
> +	TP_PROTO(struct ib_mad_agent_private *agent),
> +	TP_ARGS(agent),
> +
> +	TP_STRUCT__entry(
> +		__string(dev_name,      agent->agent.device->name)

I'm trying to get rid of device->name, this should be
dev_name(&device->dev)

Though, should it use the stable device index instead?

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux