ethdev: fix asynchronous destroy and push tracepoints

Message ID 20230518215928.2366851-1-akozyrev@nvidia.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series ethdev: fix asynchronous destroy and push tracepoints |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation warning apply patch failure
ci/Intel-compilation warning apply issues
ci/iol-testing warning apply patch failure

Commit Message

Alexander Kozyrev May 18, 2023, 9:59 p.m. UTC
  The rte_flow_async_destroy() and rte_flow_push() API is
intended to be as fast as possible and tracepoints for
these functions must be marked as fast-path tracepoints.

Fixes: 6679cf21d608 ("ethdev: add trace points")

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
---
 lib/ethdev/ethdev_trace.h | 42 +++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 21 deletions(-)
  

Comments

Ankur Dwivedi May 19, 2023, 5:21 a.m. UTC | #1
>The rte_flow_async_destroy() and rte_flow_push() API is intended to be as
>fast as possible and tracepoints for these functions must be marked as fast-
>path tracepoints.
>
>Fixes: 6679cf21d608 ("ethdev: add trace points")
>
>Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>

Acked-by: Ankur Dwivedi <adwivedi@marvell.com>
>---
> lib/ethdev/ethdev_trace.h | 42 +++++++++++++++++++--------------------
> 1 file changed, 21 insertions(+), 21 deletions(-)
>
>diff --git a/lib/ethdev/ethdev_trace.h b/lib/ethdev/ethdev_trace.h index
>ba7871aa3e..c8498b19e3 100644
>--- a/lib/ethdev/ethdev_trace.h
>+++ b/lib/ethdev/ethdev_trace.h
>@@ -1582,27 +1582,6 @@ RTE_TRACE_POINT(
> 	rte_trace_point_emit_int(ret);
> )
>
>-RTE_TRACE_POINT(
>-	rte_flow_trace_async_destroy,
>-	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
>-		const struct rte_flow_op_attr *op_attr,
>-		const struct rte_flow *flow, const void *user_data, int ret),
>-	rte_trace_point_emit_u16(port_id);
>-	rte_trace_point_emit_u32(queue_id);
>-	rte_trace_point_emit_ptr(op_attr);
>-	rte_trace_point_emit_ptr(flow);
>-	rte_trace_point_emit_ptr(user_data);
>-	rte_trace_point_emit_int(ret);
>-)
>-
>-RTE_TRACE_POINT(
>-	rte_flow_trace_push,
>-	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id, int
>ret),
>-	rte_trace_point_emit_u16(port_id);
>-	rte_trace_point_emit_u32(queue_id);
>-	rte_trace_point_emit_int(ret);
>-)
>-
> RTE_TRACE_POINT(
> 	rte_mtr_trace_capabilities_get,
> 	RTE_TRACE_POINT_ARGS(uint16_t port_id, @@ -2356,6 +2335,19
>@@ RTE_TRACE_POINT_FP(
> 	rte_trace_point_emit_ptr(flow);
> )
>
>+RTE_TRACE_POINT_FP(
>+	rte_flow_trace_async_destroy,
>+	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
>+		const struct rte_flow_op_attr *op_attr,
>+		const struct rte_flow *flow, const void *user_data, int ret),
>+	rte_trace_point_emit_u16(port_id);
>+	rte_trace_point_emit_u32(queue_id);
>+	rte_trace_point_emit_ptr(op_attr);
>+	rte_trace_point_emit_ptr(flow);
>+	rte_trace_point_emit_ptr(user_data);
>+	rte_trace_point_emit_int(ret);
>+)
>+
> RTE_TRACE_POINT_FP(
> 	rte_flow_trace_async_update,
> 	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id, @@ -
>2374,6 +2366,14 @@ RTE_TRACE_POINT_FP(
> 	rte_trace_point_emit_int(ret);
> )
>
>+RTE_TRACE_POINT_FP(
>+	rte_flow_trace_push,
>+	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id, int
>ret),
>+	rte_trace_point_emit_u16(port_id);
>+	rte_trace_point_emit_u32(queue_id);
>+	rte_trace_point_emit_int(ret);
>+)
>+
> RTE_TRACE_POINT_FP(
> 	rte_flow_trace_pull,
> 	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
>--
>2.18.2
  
Ferruh Yigit May 19, 2023, 9 a.m. UTC | #2
On 5/18/2023 10:59 PM, Alexander Kozyrev wrote:

> 
> The rte_flow_async_destroy() and rte_flow_push() API is
> intended to be as fast as possible and tracepoints for
> these functions must be marked as fast-path tracepoints.
> 
> Fixes: 6679cf21d608 ("ethdev: add trace points")
> 
> Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>

<...>
> +RTE_TRACE_POINT_FP(
> +       rte_flow_trace_async_destroy,
> +       RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
> +               const struct rte_flow_op_attr *op_attr,
> +               const struct rte_flow *flow, const void *user_data, int ret),
> +       rte_trace_point_emit_u16(port_id);
> +       rte_trace_point_emit_u32(queue_id);
> +       rte_trace_point_emit_ptr(op_attr);
> +       rte_trace_point_emit_ptr(flow);
> +       rte_trace_point_emit_ptr(user_data);
> +       rte_trace_point_emit_int(ret);
> +)
> +
>  RTE_TRACE_POINT_FP(
>         rte_flow_trace_async_update,
>         RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
> @@ -2374,6 +2366,14 @@ RTE_TRACE_POINT_FP(
>         rte_trace_point_emit_int(ret);
>  )
> 
> +RTE_TRACE_POINT_FP(
> +       rte_flow_trace_push,
> +       RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id, int ret),
> +       rte_trace_point_emit_u16(port_id);
> +       rte_trace_point_emit_u32(queue_id);
> +       rte_trace_point_emit_int(ret);
> +)
> +

Patch doesn't apply cleanly because it can't find
'rte_flow_trace_async_update', is there a dependency?
  
Ori Kam May 21, 2023, 7:09 p.m. UTC | #3
Hi Ankur,

> -----Original Message-----
> From: Ankur Dwivedi <adwivedi@marvell.com>
> Sent: Friday, May 19, 2023 8:21 AM
> 
> >The rte_flow_async_destroy() and rte_flow_push() API is intended to be as
> >fast as possible and tracepoints for these functions must be marked as fast-
> >path tracepoints.
> >
> >Fixes: 6679cf21d608 ("ethdev: add trace points")
> >
> >Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
> 
> Acked-by: Ankur Dwivedi <adwivedi@marvell.com>
> >---

Acked-by: Ori Kam <orika@nvidia.com>
Best,
Ori
  
Alexander Kozyrev May 23, 2023, 5:37 p.m. UTC | #4
> Patch doesn't apply cleanly because it can't find
> 'rte_flow_trace_async_update', is there a dependency?

Fixed in v2. The patch was based on my "update rule" commit.
  

Patch

diff --git a/lib/ethdev/ethdev_trace.h b/lib/ethdev/ethdev_trace.h
index ba7871aa3e..c8498b19e3 100644
--- a/lib/ethdev/ethdev_trace.h
+++ b/lib/ethdev/ethdev_trace.h
@@ -1582,27 +1582,6 @@  RTE_TRACE_POINT(
 	rte_trace_point_emit_int(ret);
 )
 
-RTE_TRACE_POINT(
-	rte_flow_trace_async_destroy,
-	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
-		const struct rte_flow_op_attr *op_attr,
-		const struct rte_flow *flow, const void *user_data, int ret),
-	rte_trace_point_emit_u16(port_id);
-	rte_trace_point_emit_u32(queue_id);
-	rte_trace_point_emit_ptr(op_attr);
-	rte_trace_point_emit_ptr(flow);
-	rte_trace_point_emit_ptr(user_data);
-	rte_trace_point_emit_int(ret);
-)
-
-RTE_TRACE_POINT(
-	rte_flow_trace_push,
-	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id, int ret),
-	rte_trace_point_emit_u16(port_id);
-	rte_trace_point_emit_u32(queue_id);
-	rte_trace_point_emit_int(ret);
-)
-
 RTE_TRACE_POINT(
 	rte_mtr_trace_capabilities_get,
 	RTE_TRACE_POINT_ARGS(uint16_t port_id,
@@ -2356,6 +2335,19 @@  RTE_TRACE_POINT_FP(
 	rte_trace_point_emit_ptr(flow);
 )
 
+RTE_TRACE_POINT_FP(
+	rte_flow_trace_async_destroy,
+	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
+		const struct rte_flow_op_attr *op_attr,
+		const struct rte_flow *flow, const void *user_data, int ret),
+	rte_trace_point_emit_u16(port_id);
+	rte_trace_point_emit_u32(queue_id);
+	rte_trace_point_emit_ptr(op_attr);
+	rte_trace_point_emit_ptr(flow);
+	rte_trace_point_emit_ptr(user_data);
+	rte_trace_point_emit_int(ret);
+)
+
 RTE_TRACE_POINT_FP(
 	rte_flow_trace_async_update,
 	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
@@ -2374,6 +2366,14 @@  RTE_TRACE_POINT_FP(
 	rte_trace_point_emit_int(ret);
 )
 
+RTE_TRACE_POINT_FP(
+	rte_flow_trace_push,
+	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id, int ret),
+	rte_trace_point_emit_u16(port_id);
+	rte_trace_point_emit_u32(queue_id);
+	rte_trace_point_emit_int(ret);
+)
+
 RTE_TRACE_POINT_FP(
 	rte_flow_trace_pull,
 	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,