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