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

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

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/intel-Functional success Functional PASS
ci/iol-broadcom-Performance fail Performance Testing issues
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-abi-testing success 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
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS

Commit Message

Ankur Dwivedi March 3, 2023, 11:31 a.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>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 lib/ethdev/ethdev_trace.h | 4 ++--
 lib/ethdev/rte_ethdev.c   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
  

Patch

diff --git a/lib/ethdev/ethdev_trace.h b/lib/ethdev/ethdev_trace.h
index bfcb024ac1..c57ed08d36 100644
--- a/lib/ethdev/ethdev_trace.h
+++ b/lib/ethdev/ethdev_trace.h
@@ -513,11 +513,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;