1*99a2dd95SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause
2*99a2dd95SBruce Richardson * Copyright(C) 2020 Marvell International Ltd.
3*99a2dd95SBruce Richardson */
4*99a2dd95SBruce Richardson
5*99a2dd95SBruce Richardson
6*99a2dd95SBruce Richardson #include "graph_private.h"
7*99a2dd95SBruce Richardson
8*99a2dd95SBruce Richardson void
graph_dump(FILE * f,struct graph * g)9*99a2dd95SBruce Richardson graph_dump(FILE *f, struct graph *g)
10*99a2dd95SBruce Richardson {
11*99a2dd95SBruce Richardson struct graph_node *graph_node;
12*99a2dd95SBruce Richardson rte_edge_t i = 0;
13*99a2dd95SBruce Richardson
14*99a2dd95SBruce Richardson fprintf(f, "graph <%s>\n", g->name);
15*99a2dd95SBruce Richardson fprintf(f, " id=%" PRIu32 "\n", g->id);
16*99a2dd95SBruce Richardson fprintf(f, " cir_start=%" PRIu32 "\n", g->cir_start);
17*99a2dd95SBruce Richardson fprintf(f, " cir_mask=%" PRIu32 "\n", g->cir_mask);
18*99a2dd95SBruce Richardson fprintf(f, " addr=%p\n", g);
19*99a2dd95SBruce Richardson fprintf(f, " graph=%p\n", g->graph);
20*99a2dd95SBruce Richardson fprintf(f, " mem_sz=%zu\n", g->mem_sz);
21*99a2dd95SBruce Richardson fprintf(f, " node_count=%" PRIu32 "\n", g->node_count);
22*99a2dd95SBruce Richardson fprintf(f, " src_node_count=%" PRIu32 "\n", g->src_node_count);
23*99a2dd95SBruce Richardson
24*99a2dd95SBruce Richardson STAILQ_FOREACH(graph_node, &g->node_list, next)
25*99a2dd95SBruce Richardson fprintf(f, " node[%d] <%s>\n", i++, graph_node->node->name);
26*99a2dd95SBruce Richardson }
27*99a2dd95SBruce Richardson
28*99a2dd95SBruce Richardson void
node_dump(FILE * f,struct node * n)29*99a2dd95SBruce Richardson node_dump(FILE *f, struct node *n)
30*99a2dd95SBruce Richardson {
31*99a2dd95SBruce Richardson rte_edge_t i;
32*99a2dd95SBruce Richardson
33*99a2dd95SBruce Richardson fprintf(f, "node <%s>\n", n->name);
34*99a2dd95SBruce Richardson fprintf(f, " id=%" PRIu32 "\n", n->id);
35*99a2dd95SBruce Richardson fprintf(f, " flags=0x%" PRIx64 "\n", n->flags);
36*99a2dd95SBruce Richardson fprintf(f, " addr=%p\n", n);
37*99a2dd95SBruce Richardson fprintf(f, " process=%p\n", n->process);
38*99a2dd95SBruce Richardson fprintf(f, " nb_edges=%d\n", n->nb_edges);
39*99a2dd95SBruce Richardson
40*99a2dd95SBruce Richardson for (i = 0; i < n->nb_edges; i++)
41*99a2dd95SBruce Richardson fprintf(f, " edge[%d] <%s>\n", i, n->next_nodes[i]);
42*99a2dd95SBruce Richardson }
43*99a2dd95SBruce Richardson
44*99a2dd95SBruce Richardson void
rte_graph_obj_dump(FILE * f,struct rte_graph * g,bool all)45*99a2dd95SBruce Richardson rte_graph_obj_dump(FILE *f, struct rte_graph *g, bool all)
46*99a2dd95SBruce Richardson {
47*99a2dd95SBruce Richardson rte_node_t count;
48*99a2dd95SBruce Richardson rte_graph_off_t off;
49*99a2dd95SBruce Richardson struct rte_node *n;
50*99a2dd95SBruce Richardson rte_edge_t i;
51*99a2dd95SBruce Richardson
52*99a2dd95SBruce Richardson fprintf(f, "graph <%s> @ %p\n", g->name, g);
53*99a2dd95SBruce Richardson fprintf(f, " id=%" PRIu32 "\n", g->id);
54*99a2dd95SBruce Richardson fprintf(f, " head=%" PRId32 "\n", (int32_t)g->head);
55*99a2dd95SBruce Richardson fprintf(f, " tail=%" PRId32 "\n", (int32_t)g->tail);
56*99a2dd95SBruce Richardson fprintf(f, " cir_mask=0x%" PRIx32 "\n", g->cir_mask);
57*99a2dd95SBruce Richardson fprintf(f, " nb_nodes=%" PRId32 "\n", g->nb_nodes);
58*99a2dd95SBruce Richardson fprintf(f, " socket=%d\n", g->socket);
59*99a2dd95SBruce Richardson fprintf(f, " fence=0x%" PRIx64 "\n", g->fence);
60*99a2dd95SBruce Richardson fprintf(f, " nodes_start=0x%" PRIx32 "\n", g->nodes_start);
61*99a2dd95SBruce Richardson fprintf(f, " cir_start=%p\n", g->cir_start);
62*99a2dd95SBruce Richardson
63*99a2dd95SBruce Richardson rte_graph_foreach_node(count, off, g, n) {
64*99a2dd95SBruce Richardson if (!all && n->idx == 0)
65*99a2dd95SBruce Richardson continue;
66*99a2dd95SBruce Richardson fprintf(f, " node[%d] <%s>\n", count, n->name);
67*99a2dd95SBruce Richardson fprintf(f, " fence=0x%" PRIx64 "\n", n->fence);
68*99a2dd95SBruce Richardson fprintf(f, " objs=%p\n", n->objs);
69*99a2dd95SBruce Richardson fprintf(f, " process=%p\n", n->process);
70*99a2dd95SBruce Richardson fprintf(f, " id=0x%" PRIx32 "\n", n->id);
71*99a2dd95SBruce Richardson fprintf(f, " offset=0x%" PRIx32 "\n", n->off);
72*99a2dd95SBruce Richardson fprintf(f, " nb_edges=%" PRId32 "\n", n->nb_edges);
73*99a2dd95SBruce Richardson fprintf(f, " realloc_count=%d\n", n->realloc_count);
74*99a2dd95SBruce Richardson fprintf(f, " size=%d\n", n->size);
75*99a2dd95SBruce Richardson fprintf(f, " idx=%d\n", n->idx);
76*99a2dd95SBruce Richardson fprintf(f, " total_objs=%" PRId64 "\n", n->total_objs);
77*99a2dd95SBruce Richardson fprintf(f, " total_calls=%" PRId64 "\n", n->total_calls);
78*99a2dd95SBruce Richardson for (i = 0; i < n->nb_edges; i++)
79*99a2dd95SBruce Richardson fprintf(f, " edge[%d] <%s>\n", i,
80*99a2dd95SBruce Richardson n->nodes[i]->name);
81*99a2dd95SBruce Richardson }
82*99a2dd95SBruce Richardson }
83