Lines Matching defs:cluster
15 /* Capture all graphs of cluster */
16 struct cluster {
23 /* Capture same node ID across cluster */
181 stats_mem_init(struct cluster *cluster,
193 const struct rte_graph *graph = cluster->graphs[0]->graph;
201 /* For a given cluster, max nodes will be the max number of graphs */
202 cluster_node_size += cluster->nb_graphs * sizeof(struct rte_node *);
225 struct cluster_node *cluster;
230 cluster = stats->clusters;
232 /* Iterate over cluster node array to find node ID match */
235 if (cluster->stat.id == id) {
243 cluster->nodes[cluster->nb_nodes++] = node;
246 cluster = RTE_PTR_ADD(cluster, stats->cluster_node_size);
256 cluster = RTE_PTR_ADD(stats, stats->sz),
257 memset(cluster, 0, stats->cluster_node_size);
258 memcpy(cluster->stat.name, graph_node->node->name, RTE_NODE_NAMESIZE);
259 cluster->stat.id = graph_node->node->id;
260 cluster->stat.hz = rte_get_timer_hz();
265 cluster->nodes[cluster->nb_nodes++] = node;
267 cluster->stat.xstat_cntrs = graph_node->node->xstats->nb_xstats;
268 cluster->stat.xstat_count = rte_zmalloc_socket(NULL,
271 if (cluster->stat.xstat_count == NULL)
275 cluster->stat.xstat_desc = rte_zmalloc_socket(NULL,
278 if (cluster->stat.xstat_desc == NULL) {
279 rte_free(cluster->stat.xstat_count);
284 for (i = 0; i < cluster->stat.xstat_cntrs; i++) {
285 if (rte_strscpy(cluster->stat.xstat_desc[i],
288 rte_free(cluster->stat.xstat_count);
289 rte_free(cluster->stat.xstat_desc);
315 cluster_init(struct cluster *cluster)
317 memset(cluster, 0, sizeof(*cluster));
321 cluster_add(struct cluster *cluster, struct graph *graph)
326 /* Skip the if graph is already added to cluster */
327 for (count = 0; count < cluster->nb_graphs; count++)
328 if (cluster->graphs[count] == graph)
331 /* Expand the cluster if required to store graph objects */
332 if (cluster->nb_graphs + 1 > cluster->size) {
333 cluster->size = RTE_MAX(1, cluster->size * 2);
334 sz = sizeof(struct graph *) * cluster->size;
335 cluster->graphs = realloc(cluster->graphs, sz);
336 if (cluster->graphs == NULL)
340 /* Add graph to cluster */
341 cluster->graphs[cluster->nb_graphs++] = graph;
349 cluster_fini(struct cluster *cluster)
351 free(cluster->graphs);
355 expand_pattern_to_cluster(struct cluster *cluster, const char *pattern)
364 if (cluster_add(cluster, graph))
383 struct cluster cluster;
398 cluster_init(&cluster);
401 /* Expand graph pattern and add the graph to the cluster */
404 if (expand_pattern_to_cluster(&cluster, pattern))
409 stats = stats_mem_init(&cluster, prm);
414 for (i = 0; i < cluster.nb_graphs; i++) {
415 graph = cluster.graphs[i];
436 cluster_fini(&cluster);
444 struct cluster_node *cluster;
447 cluster = stat->clusters;
449 if (cluster->stat.xstat_cntrs) {
450 rte_free(cluster->stat.xstat_count);
451 rte_free(cluster->stat.xstat_desc);
454 cluster = RTE_PTR_ADD(cluster, stat->cluster_node_size);
460 cluster_node_arregate_stats(struct cluster_node *cluster, bool dispatch)
463 struct rte_graph_cluster_node_stats *stat = &cluster->stat;
471 for (count = 0; count < cluster->nb_nodes; count++) {
472 node = cluster->nodes[count];
505 cluster_node_store_prev_stats(struct cluster_node *cluster)
507 struct rte_graph_cluster_node_stats *stat = &cluster->stat;
518 struct cluster_node *cluster;
522 cluster = stat->clusters;
525 cluster_node_arregate_stats(cluster, stat->dispatch);
528 stat->cookie, &cluster->stat);
529 cluster_node_store_prev_stats(cluster);
532 cluster = RTE_PTR_ADD(cluster, stat->cluster_node_size);
539 struct cluster_node *cluster;
543 cluster = stat->clusters;
546 struct rte_graph_cluster_node_stats *node = &cluster->stat;
559 cluster = RTE_PTR_ADD(cluster, stat->cluster_node_size);