perfmon: top down level 1 support
[vpp.git] / src / plugins / perfmon / cli.c
index 39e0319..f667877 100644 (file)
@@ -128,7 +128,8 @@ show_perfmon_bundle_command_fn (vlib_main_t *vm, unformat_input_t *input,
     vlib_cli_output (vm, "%U\n", format_perfmon_bundle, 0, 0);
 
   for (int i = 0; i < vec_len (vb); i++)
-    vlib_cli_output (vm, "%U\n", format_perfmon_bundle, vb[i], verbose);
+    if (!vb[i]->cpu_supports || vb[i]->cpu_supports ())
+      vlib_cli_output (vm, "%U\n", format_perfmon_bundle, vb[i], verbose);
 
   vec_free (vb);
   return 0;
@@ -290,7 +291,8 @@ show_perfmon_stats_command_fn (vlib_main_t *vm, unformat_input_t *input,
   n_instances = vec_len (it->instances);
   vec_validate (readings, n_instances - 1);
 
-  for (int i = 0; i < n_instances; i++)
+  /*Only perform read() for THREAD or SYSTEM bundles*/
+  for (int i = 0; i < n_instances && b->type != PERFMON_BUNDLE_TYPE_NODE; i++)
     {
       in = vec_elt_at_index (it->instances, i);
       r = vec_elt_at_index (readings, i);
@@ -340,6 +342,7 @@ show_perfmon_stats_command_fn (vlib_main_t *vm, unformat_input_t *input,
                table_set_cell_align (t, col, -1, TTAA_RIGHT);
                table_set_cell_fg_color (t, col, -1, TTAC_CYAN);
                clib_memcpy_fast (&ns, tr->node_stats + j, sizeof (ns));
+
                for (int j = 0; j < n_row; j++)
                  table_format_cell (t, col, j, "%U", b->format_fn, &ns, j);
              }