[v1,2/2] ethdev: pass structure pointer

Message ID 20230223123029.2117781-3-adwivedi@marvell.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series bug fix in ethdev trace |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS

Commit Message

Ankur Dwivedi Feb. 23, 2023, 12:30 p.m. UTC
  The rte_eth_xstat_name structure is of size 64 bytes. Instead of passing
the structure as value it is passed as a pointer, to avoid copy of 64 bytes
in function call stack.

Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
---
 lib/ethdev/ethdev_trace.h | 4 ++--
 lib/ethdev/rte_ethdev.c   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
  

Comments

Ferruh Yigit Feb. 28, 2023, 3:01 p.m. UTC | #1
On 2/23/2023 12:30 PM, Ankur Dwivedi wrote:
> The rte_eth_xstat_name structure is of size 64 bytes. Instead of passing
> the structure as value it is passed as a pointer, to avoid copy of 64 bytes
> in function call stack.
> 
> Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
> ---
>  lib/ethdev/ethdev_trace.h | 4 ++--
>  lib/ethdev/rte_ethdev.c   | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/ethdev/ethdev_trace.h b/lib/ethdev/ethdev_trace.h
> index a13e33fe64..7518c902d1 100644
> --- a/lib/ethdev/ethdev_trace.h
> +++ b/lib/ethdev/ethdev_trace.h
> @@ -551,11 +551,11 @@ RTE_TRACE_POINT(
>  RTE_TRACE_POINT(
>  	rte_eth_trace_xstats_get_names,
>  	RTE_TRACE_POINT_ARGS(uint16_t port_id, int i,
> -		struct rte_eth_xstat_name xstats_names,
> +		const struct rte_eth_xstat_name *xstats_names,
>  		unsigned int size, int cnt_used_entries),
>  	rte_trace_point_emit_u16(port_id);
>  	rte_trace_point_emit_int(i);
> -	rte_trace_point_emit_string(xstats_names.name);
> +	rte_trace_point_emit_string(xstats_names->name);
>  	rte_trace_point_emit_u32(size);
>  	rte_trace_point_emit_int(cnt_used_entries);
>  )
> diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
> index 0266cc82ac..3b07e6feb8 100644
> --- a/lib/ethdev/rte_ethdev.c
> +++ b/lib/ethdev/rte_ethdev.c
> @@ -3260,7 +3260,7 @@ rte_eth_xstats_get_names(uint16_t port_id,
>  	}
>  
>  	for (i = 0; i < cnt_used_entries; i++)
> -		rte_eth_trace_xstats_get_names(port_id, i, xstats_names[i],
> +		rte_eth_trace_xstats_get_names(port_id, i, &xstats_names[i],
>  					       size, cnt_used_entries);
>  
>  	return cnt_used_entries;

Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
  

Patch

diff --git a/lib/ethdev/ethdev_trace.h b/lib/ethdev/ethdev_trace.h
index a13e33fe64..7518c902d1 100644
--- a/lib/ethdev/ethdev_trace.h
+++ b/lib/ethdev/ethdev_trace.h
@@ -551,11 +551,11 @@  RTE_TRACE_POINT(
 RTE_TRACE_POINT(
 	rte_eth_trace_xstats_get_names,
 	RTE_TRACE_POINT_ARGS(uint16_t port_id, int i,
-		struct rte_eth_xstat_name xstats_names,
+		const struct rte_eth_xstat_name *xstats_names,
 		unsigned int size, int cnt_used_entries),
 	rte_trace_point_emit_u16(port_id);
 	rte_trace_point_emit_int(i);
-	rte_trace_point_emit_string(xstats_names.name);
+	rte_trace_point_emit_string(xstats_names->name);
 	rte_trace_point_emit_u32(size);
 	rte_trace_point_emit_int(cnt_used_entries);
 )
diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index 0266cc82ac..3b07e6feb8 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -3260,7 +3260,7 @@  rte_eth_xstats_get_names(uint16_t port_id,
 	}
 
 	for (i = 0; i < cnt_used_entries; i++)
-		rte_eth_trace_xstats_get_names(port_id, i, xstats_names[i],
+		rte_eth_trace_xstats_get_names(port_id, i, &xstats_names[i],
 					       size, cnt_used_entries);
 
 	return cnt_used_entries;