[PATCH v7 0/3] Introduce node-specific xstats in graph library
pbhagavatula at marvell.com
pbhagavatula at marvell.com
Tue Oct 15 07:42:38 CEST 2024
From: Pavan Nikhilesh <pbhagavatula at marvell.com>
Introduce the ability for nodes to advertise xstats counters during
registration and increment them during the node process function in
the graph library.
This enhancement allows for better stats tracking and debugging
capabilities within the graph framework.
The number of xstats and the mapping of xstat IDs to xstat descriptions
are defined during node registration.
Example:
static struct rte_node_xstats ip4_reassembly_xstats = {
.nb_xstats = 1,
.xstat_desc = {
[0] = "ip4_reassembly_error",
},
};
Here, "ip4_reassembly_error" is mapped to xstat ID 0, and the same ID is
used in the `ip4_reassembly_node_process` function to increment reassembly
errors as an xstat.
Depending on the node, there can be multiple such xstats that can be
updated independently and retrieved using `rte_graph_cluster_stats_get`.
Example:
+-------------------------------+---------------+---------------+--------------+
|Node |calls |objs |realloc_count |
+-------------------------------+---------------+---------------+--------------+
|ip4_lookup |1324083 |338965248 |2 |
| ip4_lookup_error | |338965496 | |
|pkt_drop |1324084 |338965504 |1 |
|ethdev_rx-0-0 |1324086 |338966016 |2 |
|pkt_cls |1324086 |338966016 |1 |
+-------------------------------+---------------+---------------+--------------+
v2 Changes:
- Fix compilation.
v3 Changes:
- Resend as 1/5 didn't make it through.
v4 Changes:
- Address review comments.
- Rebase on main branch.
v5 Changes:
- Shrink structure member names.(Robin)
- add rte_node_error_increment utility function. (Robin)
- Squash patches. (Robin)
- Update RN, DN. (David)
v6 Changes:
- Rename error to xstat. (Robin)
- Rearranges patches, update SVG fonts.
v7 Changes:
- Fix doxygen. (Jerin)
Pavan Nikhilesh (3):
graph: add support for node specific xstats
doc: update graph layout and node anatomy images
node: add xstats for ip4 nodes
doc/guides/prog_guide/graph_lib.rst | 22 +-
.../prog_guide/img/anatomy_of_a_node.svg | 329 +++++--
.../prog_guide/img/graph_mem_layout.svg | 921 +++++++++++++-----
doc/guides/rel_notes/deprecation.rst | 6 -
doc/guides/rel_notes/release_24_11.rst | 8 +
lib/graph/graph_populate.c | 20 +-
lib/graph/graph_private.h | 3 +
lib/graph/graph_stats.c | 79 +-
lib/graph/node.c | 37 +-
lib/graph/rte_graph.h | 15 +
lib/graph/rte_graph_worker_common.h | 23 +
lib/graph/version.map | 7 +
lib/node/ip4_lookup.c | 9 +
lib/node/ip4_lookup_neon.h | 5 +
lib/node/ip4_lookup_sse.h | 6 +
lib/node/ip4_reassembly.c | 9 +
lib/node/node_private.h | 8 +
17 files changed, 1197 insertions(+), 310 deletions(-)
--
2.25.1
More information about the dev
mailing list