[24.11 PATCH v3 1/5] graph: add support for node specific errors

Yan, Zhirun zhirun.yan at intel.com
Fri Feb 23 08:13:23 CET 2024


> -----Original Message-----
> From: pbhagavatula at marvell.com <pbhagavatula at marvell.com>
> Sent: Thursday, February 22, 2024 8:24 PM
> To: jerinj at marvell.com; ndabilpuram at marvell.com; kirankumark at marvell.com;
> Yan, Zhirun <zhirun.yan at intel.com>
> Cc: dev at dpdk.org; Pavan Nikhilesh <pbhagavatula at marvell.com>
> Subject: [24.11 PATCH v3 1/5] graph: add support for node specific errors
> 
> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
> 
> Add ability for Nodes to advertise error counters
> during registration.
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
> ---
>  v2 Changes:
>  - Fix compilation.
>  v3 Changes:
>  - Resend as 1/5 didn't make it through.
> 
>  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 +++++++++++++-----
>  lib/graph/graph_private.h                     |   1 +
>  lib/graph/node.c                              |  37 +-
>  lib/graph/rte_graph.h                         |   7 +
>  6 files changed, 1016 insertions(+), 301 deletions(-)
> 
> diff --git a/doc/guides/prog_guide/graph_lib.rst
> b/doc/guides/prog_guide/graph_lib.rst
> index ad09bdfe26..018900caea 100644
> --- a/doc/guides/prog_guide/graph_lib.rst
> +++ b/doc/guides/prog_guide/graph_lib.rst
> @@ -21,6 +21,7 @@ Features of the Graph library are:
>  - Nodes as plugins.
>  - Support for out of tree nodes.
>  - Inbuilt nodes for packet processing.
> +- Node specific error counts.
>  - Multi-process support.
>  - Low overhead graph walk and node enqueue.
>  - Low overhead statistics collection infrastructure.
> @@ -124,6 +125,18 @@ Source nodes are static nodes created using
> ``RTE_NODE_REGISTER`` by passing
>  While performing the graph walk, the ``process()`` function of all the source
>  nodes will be called first. So that these nodes can be used as input nodes for a
> graph.
> 
> +nb_errors:
> +^^^^^^^^^^
> +
> +The number of errors that this node can report. The ``err_desc[]`` stores the
> error
> +descriptions which will later be propagated to stats.
> +
> +err_desc[]:
> +^^^^^^^^^^^
> +
> +The dynamic array to store the error descriptions that will be reported by this
> +node.

If there are no more detail infos reported by node, why not reuse the node->name directly.

> +
>  Node creation and registration
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  * Node implementer creates the node by implementing ops and attributes of
> @@ -141,13 +154,13 @@ Link the Nodes to create the graph topology
>     Topology after linking the nodes
> 
>  Once nodes are available to the program, Application or node public API
> -functions can links them together to create a complex packet processing graph.
> +functions can link them together to create a complex packet processing graph.
> 
>  There are multiple different types of strategies to link the nodes.
> 
>  Method (a):
>  ^^^^^^^^^^^
> -Provide the ``next_nodes[]`` at the node registration time. See  ``struct
> rte_node_register::nb_edges``.
> +Provide the ``next_nodes[]`` at the node registration time. See ``struct
> rte_node_register::nb_edges``.

No need to change this line.



More information about the dev mailing list