[v1,2/2] ethdev: pass structure pointer
Checks
Commit Message
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
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>
@@ -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);
)
@@ -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;