From: Jesse Brandeburg Date: Sat, 15 Sep 2018 00:37:54 +0000 (-0700) Subject: iavf: tracing infrastructure rename X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=ad64ed8bf908d7d8261256031039b1589386c609;p=linux.git iavf: tracing infrastructure rename Rename the i40e_trace file and fix up all the callers to the new names inside the iavf_trace.h file. Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher --- diff --git a/drivers/net/ethernet/intel/iavf/i40e_trace.h b/drivers/net/ethernet/intel/iavf/i40e_trace.h deleted file mode 100644 index 552cfbfcce71f..0000000000000 --- a/drivers/net/ethernet/intel/iavf/i40e_trace.h +++ /dev/null @@ -1,209 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/* Copyright(c) 2013 - 2018 Intel Corporation. */ - -/* Modeled on trace-events-sample.h */ - -/* The trace subsystem name for iavf will be "iavf". - * - * This file is named i40e_trace.h. - * - * Since this include file's name is different from the trace - * subsystem name, we'll have to define TRACE_INCLUDE_FILE at the end - * of this file. - */ -#undef TRACE_SYSTEM -#define TRACE_SYSTEM iavf - -/* See trace-events-sample.h for a detailed description of why this - * guard clause is different from most normal include files. - */ -#if !defined(_I40E_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) -#define _I40E_TRACE_H_ - -#include - -/** - * i40e_trace() macro enables shared code to refer to trace points - * like: - * - * trace_i40e{,vf}_example(args...) - * - * ... as: - * - * i40e_trace(example, args...) - * - * ... to resolve to the PF or VF version of the tracepoint without - * ifdefs, and to allow tracepoints to be disabled entirely at build - * time. - * - * Trace point should always be referred to in the driver via this - * macro. - * - * Similarly, i40e_trace_enabled(trace_name) wraps references to - * trace_i40e{,vf}__enabled() functions. - */ -#define _I40E_TRACE_NAME(trace_name) (trace_ ## iavf ## _ ## trace_name) -#define I40E_TRACE_NAME(trace_name) _I40E_TRACE_NAME(trace_name) - -#define i40e_trace(trace_name, args...) I40E_TRACE_NAME(trace_name)(args) - -#define i40e_trace_enabled(trace_name) I40E_TRACE_NAME(trace_name##_enabled)() - -/* Events common to PF and VF. Corresponding versions will be defined - * for both, named trace_i40e_* and trace_iavf_*. The i40e_trace() - * macro above will select the right trace point name for the driver - * being built from shared code. - */ - -/* Events related to a vsi & ring */ -DECLARE_EVENT_CLASS( - iavf_tx_template, - - TP_PROTO(struct i40e_ring *ring, - struct i40e_tx_desc *desc, - struct i40e_tx_buffer *buf), - - TP_ARGS(ring, desc, buf), - - /* The convention here is to make the first fields in the - * TP_STRUCT match the TP_PROTO exactly. This enables the use - * of the args struct generated by the tplist tool (from the - * bcc-tools package) to be used for those fields. To access - * fields other than the tracepoint args will require the - * tplist output to be adjusted. - */ - TP_STRUCT__entry( - __field(void*, ring) - __field(void*, desc) - __field(void*, buf) - __string(devname, ring->netdev->name) - ), - - TP_fast_assign( - __entry->ring = ring; - __entry->desc = desc; - __entry->buf = buf; - __assign_str(devname, ring->netdev->name); - ), - - TP_printk( - "netdev: %s ring: %p desc: %p buf %p", - __get_str(devname), __entry->ring, - __entry->desc, __entry->buf) -); - -DEFINE_EVENT( - iavf_tx_template, iavf_clean_tx_irq, - TP_PROTO(struct i40e_ring *ring, - struct i40e_tx_desc *desc, - struct i40e_tx_buffer *buf), - - TP_ARGS(ring, desc, buf)); - -DEFINE_EVENT( - iavf_tx_template, iavf_clean_tx_irq_unmap, - TP_PROTO(struct i40e_ring *ring, - struct i40e_tx_desc *desc, - struct i40e_tx_buffer *buf), - - TP_ARGS(ring, desc, buf)); - -DECLARE_EVENT_CLASS( - iavf_rx_template, - - TP_PROTO(struct i40e_ring *ring, - union i40e_32byte_rx_desc *desc, - struct sk_buff *skb), - - TP_ARGS(ring, desc, skb), - - TP_STRUCT__entry( - __field(void*, ring) - __field(void*, desc) - __field(void*, skb) - __string(devname, ring->netdev->name) - ), - - TP_fast_assign( - __entry->ring = ring; - __entry->desc = desc; - __entry->skb = skb; - __assign_str(devname, ring->netdev->name); - ), - - TP_printk( - "netdev: %s ring: %p desc: %p skb %p", - __get_str(devname), __entry->ring, - __entry->desc, __entry->skb) -); - -DEFINE_EVENT( - iavf_rx_template, iavf_clean_rx_irq, - TP_PROTO(struct i40e_ring *ring, - union i40e_32byte_rx_desc *desc, - struct sk_buff *skb), - - TP_ARGS(ring, desc, skb)); - -DEFINE_EVENT( - iavf_rx_template, iavf_clean_rx_irq_rx, - TP_PROTO(struct i40e_ring *ring, - union i40e_32byte_rx_desc *desc, - struct sk_buff *skb), - - TP_ARGS(ring, desc, skb)); - -DECLARE_EVENT_CLASS( - iavf_xmit_template, - - TP_PROTO(struct sk_buff *skb, - struct i40e_ring *ring), - - TP_ARGS(skb, ring), - - TP_STRUCT__entry( - __field(void*, skb) - __field(void*, ring) - __string(devname, ring->netdev->name) - ), - - TP_fast_assign( - __entry->skb = skb; - __entry->ring = ring; - __assign_str(devname, ring->netdev->name); - ), - - TP_printk( - "netdev: %s skb: %p ring: %p", - __get_str(devname), __entry->skb, - __entry->ring) -); - -DEFINE_EVENT( - iavf_xmit_template, iavf_xmit_frame_ring, - TP_PROTO(struct sk_buff *skb, - struct i40e_ring *ring), - - TP_ARGS(skb, ring)); - -DEFINE_EVENT( - iavf_xmit_template, iavf_xmit_frame_ring_drop, - TP_PROTO(struct sk_buff *skb, - struct i40e_ring *ring), - - TP_ARGS(skb, ring)); - -/* Events unique to the VF. */ - -#endif /* _I40E_TRACE_H_ */ -/* This must be outside ifdef _I40E_TRACE_H */ - -/* This trace include file is not located in the .../include/trace - * with the kernel tracepoint definitions, because we're a loadable - * module. - */ -#undef TRACE_INCLUDE_PATH -#define TRACE_INCLUDE_PATH . -#undef TRACE_INCLUDE_FILE -#define TRACE_INCLUDE_FILE i40e_trace -#include diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c index 5d5a65483e232..3d0862c5f7875 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_main.c +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c @@ -9,7 +9,7 @@ * CREATE_TRACE_POINTS defined */ #define CREATE_TRACE_POINTS -#include "i40e_trace.h" +#include "iavf_trace.h" static int iavf_setup_all_tx_resources(struct iavf_adapter *adapter); static int iavf_setup_all_rx_resources(struct iavf_adapter *adapter); diff --git a/drivers/net/ethernet/intel/iavf/iavf_trace.h b/drivers/net/ethernet/intel/iavf/iavf_trace.h new file mode 100644 index 0000000000000..24f34d79f20ad --- /dev/null +++ b/drivers/net/ethernet/intel/iavf/iavf_trace.h @@ -0,0 +1,209 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Copyright(c) 2013 - 2018 Intel Corporation. */ + +/* Modeled on trace-events-sample.h */ + +/* The trace subsystem name for iavf will be "iavf". + * + * This file is named iavf_trace.h. + * + * Since this include file's name is different from the trace + * subsystem name, we'll have to define TRACE_INCLUDE_FILE at the end + * of this file. + */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM iavf + +/* See trace-events-sample.h for a detailed description of why this + * guard clause is different from most normal include files. + */ +#if !defined(_I40E_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) +#define _I40E_TRACE_H_ + +#include + +/** + * iavf_trace() macro enables shared code to refer to trace points + * like: + * + * trace_iavf{,vf}_example(args...) + * + * ... as: + * + * iavf_trace(example, args...) + * + * ... to resolve to the PF or VF version of the tracepoint without + * ifdefs, and to allow tracepoints to be disabled entirely at build + * time. + * + * Trace point should always be referred to in the driver via this + * macro. + * + * Similarly, iavf_trace_enabled(trace_name) wraps references to + * trace_iavf{,vf}__enabled() functions. + */ +#define _IAVF_TRACE_NAME(trace_name) (trace_ ## iavf ## _ ## trace_name) +#define IAVF_TRACE_NAME(trace_name) _IAVF_TRACE_NAME(trace_name) + +#define iavf_trace(trace_name, args...) IAVF_TRACE_NAME(trace_name)(args) + +#define iavf_trace_enabled(trace_name) IAVF_TRACE_NAME(trace_name##_enabled)() + +/* Events common to PF and VF. Corresponding versions will be defined + * for both, named trace_iavf_* and trace_iavf_*. The iavf_trace() + * macro above will select the right trace point name for the driver + * being built from shared code. + */ + +/* Events related to a vsi & ring */ +DECLARE_EVENT_CLASS( + iavf_tx_template, + + TP_PROTO(struct i40e_ring *ring, + struct i40e_tx_desc *desc, + struct i40e_tx_buffer *buf), + + TP_ARGS(ring, desc, buf), + + /* The convention here is to make the first fields in the + * TP_STRUCT match the TP_PROTO exactly. This enables the use + * of the args struct generated by the tplist tool (from the + * bcc-tools package) to be used for those fields. To access + * fields other than the tracepoint args will require the + * tplist output to be adjusted. + */ + TP_STRUCT__entry( + __field(void*, ring) + __field(void*, desc) + __field(void*, buf) + __string(devname, ring->netdev->name) + ), + + TP_fast_assign( + __entry->ring = ring; + __entry->desc = desc; + __entry->buf = buf; + __assign_str(devname, ring->netdev->name); + ), + + TP_printk( + "netdev: %s ring: %p desc: %p buf %p", + __get_str(devname), __entry->ring, + __entry->desc, __entry->buf) +); + +DEFINE_EVENT( + iavf_tx_template, iavf_clean_tx_irq, + TP_PROTO(struct i40e_ring *ring, + struct i40e_tx_desc *desc, + struct i40e_tx_buffer *buf), + + TP_ARGS(ring, desc, buf)); + +DEFINE_EVENT( + iavf_tx_template, iavf_clean_tx_irq_unmap, + TP_PROTO(struct i40e_ring *ring, + struct i40e_tx_desc *desc, + struct i40e_tx_buffer *buf), + + TP_ARGS(ring, desc, buf)); + +DECLARE_EVENT_CLASS( + iavf_rx_template, + + TP_PROTO(struct i40e_ring *ring, + union i40e_32byte_rx_desc *desc, + struct sk_buff *skb), + + TP_ARGS(ring, desc, skb), + + TP_STRUCT__entry( + __field(void*, ring) + __field(void*, desc) + __field(void*, skb) + __string(devname, ring->netdev->name) + ), + + TP_fast_assign( + __entry->ring = ring; + __entry->desc = desc; + __entry->skb = skb; + __assign_str(devname, ring->netdev->name); + ), + + TP_printk( + "netdev: %s ring: %p desc: %p skb %p", + __get_str(devname), __entry->ring, + __entry->desc, __entry->skb) +); + +DEFINE_EVENT( + iavf_rx_template, iavf_clean_rx_irq, + TP_PROTO(struct i40e_ring *ring, + union i40e_32byte_rx_desc *desc, + struct sk_buff *skb), + + TP_ARGS(ring, desc, skb)); + +DEFINE_EVENT( + iavf_rx_template, iavf_clean_rx_irq_rx, + TP_PROTO(struct i40e_ring *ring, + union i40e_32byte_rx_desc *desc, + struct sk_buff *skb), + + TP_ARGS(ring, desc, skb)); + +DECLARE_EVENT_CLASS( + iavf_xmit_template, + + TP_PROTO(struct sk_buff *skb, + struct i40e_ring *ring), + + TP_ARGS(skb, ring), + + TP_STRUCT__entry( + __field(void*, skb) + __field(void*, ring) + __string(devname, ring->netdev->name) + ), + + TP_fast_assign( + __entry->skb = skb; + __entry->ring = ring; + __assign_str(devname, ring->netdev->name); + ), + + TP_printk( + "netdev: %s skb: %p ring: %p", + __get_str(devname), __entry->skb, + __entry->ring) +); + +DEFINE_EVENT( + iavf_xmit_template, iavf_xmit_frame_ring, + TP_PROTO(struct sk_buff *skb, + struct i40e_ring *ring), + + TP_ARGS(skb, ring)); + +DEFINE_EVENT( + iavf_xmit_template, iavf_xmit_frame_ring_drop, + TP_PROTO(struct sk_buff *skb, + struct i40e_ring *ring), + + TP_ARGS(skb, ring)); + +/* Events unique to the VF. */ + +#endif /* _IAVF_TRACE_H_ */ +/* This must be outside ifdef _IAVF_TRACE_H */ + +/* This trace include file is not located in the .../include/trace + * with the kernel tracepoint definitions, because we're a loadable + * module. + */ +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH . +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE iavf_trace +#include diff --git a/drivers/net/ethernet/intel/iavf/iavf_txrx.c b/drivers/net/ethernet/intel/iavf/iavf_txrx.c index bdc631ccf0768..7a33a783b80c3 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_txrx.c +++ b/drivers/net/ethernet/intel/iavf/iavf_txrx.c @@ -5,7 +5,7 @@ #include #include "iavf.h" -#include "i40e_trace.h" +#include "iavf_trace.h" #include "i40e_prototype.h" static inline __le64 build_ctob(u32 td_cmd, u32 td_offset, unsigned int size, @@ -211,7 +211,7 @@ static bool i40e_clean_tx_irq(struct i40e_vsi *vsi, /* prevent any other reads prior to eop_desc */ smp_rmb(); - i40e_trace(clean_tx_irq, tx_ring, tx_desc, tx_buf); + iavf_trace(clean_tx_irq, tx_ring, tx_desc, tx_buf); /* if the descriptor isn't done, no work yet to do */ if (!(eop_desc->cmd_type_offset_bsz & cpu_to_le64(IAVF_TX_DESC_DTYPE_DESC_DONE))) @@ -239,7 +239,7 @@ static bool i40e_clean_tx_irq(struct i40e_vsi *vsi, /* unmap remaining buffers */ while (tx_desc != eop_desc) { - i40e_trace(clean_tx_irq_unmap, + iavf_trace(clean_tx_irq_unmap, tx_ring, tx_desc, tx_buf); tx_buf++; @@ -1503,7 +1503,7 @@ static int i40e_clean_rx_irq(struct i40e_ring *rx_ring, int budget) if (!size) break; - i40e_trace(clean_rx_irq, rx_ring, rx_desc, skb); + iavf_trace(clean_rx_irq, rx_ring, rx_desc, skb); rx_buffer = i40e_get_rx_buffer(rx_ring, size); /* retrieve a buffer from the ring */ @@ -1557,7 +1557,7 @@ static int i40e_clean_rx_irq(struct i40e_ring *rx_ring, int budget) vlan_tag = (qword & BIT(IAVF_RX_DESC_STATUS_L2TAG1P_SHIFT)) ? le16_to_cpu(rx_desc->wb.qword0.lo_dword.l2tag1) : 0; - i40e_trace(clean_rx_irq_rx, rx_ring, rx_desc, skb); + iavf_trace(clean_rx_irq_rx, rx_ring, rx_desc, skb); i40e_receive_skb(rx_ring, skb, vlan_tag); skb = NULL; @@ -2407,7 +2407,7 @@ static netdev_tx_t i40e_xmit_frame_ring(struct sk_buff *skb, /* prefetch the data, we'll need it later */ prefetch(skb->data); - i40e_trace(xmit_frame_ring, skb, tx_ring); + iavf_trace(xmit_frame_ring, skb, tx_ring); count = i40e_xmit_descriptor_count(skb); if (i40e_chk_linearize(skb, count)) { @@ -2476,7 +2476,7 @@ static netdev_tx_t i40e_xmit_frame_ring(struct sk_buff *skb, return NETDEV_TX_OK; out_drop: - i40e_trace(xmit_frame_ring_drop, first->skb, tx_ring); + iavf_trace(xmit_frame_ring_drop, first->skb, tx_ring); dev_kfree_skb_any(first->skb); first->skb = NULL; return NETDEV_TX_OK;