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);
+ /* bundle type will be unknown if no cpu_supports matched */
+ if (vb[i]->type != PERFMON_BUNDLE_TYPE_UNKNOWN)
+ vlib_cli_output (vm, "%U\n", format_perfmon_bundle, vb[i], verbose);
vec_free (vb);
return 0;
perfmon_instance_t *in;
u8 *s = 0;
int n_row = 0;
- u8 raw = 0;
if (b == 0)
return clib_error_return (0, "no bundle selected");
- while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
- {
- if (unformat (input, "raw"))
- raw = 1;
- else
- break;
- }
-
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);
char **hdr = b->column_headers;
while (hdr[0])
table_format_cell (t, -1, n_row++, "%s", hdr++[0]);
-
- if (b->raw_column_headers && raw)
- {
- hdr = b->raw_column_headers;
- while (hdr[0])
- table_format_cell (t, -1, n_row++, "%s", hdr++[0]);
- }
}
int col = 0;
{
in = vec_elt_at_index (it->instances, i);
r = vec_elt_at_index (readings, i);
- table_format_cell (t, col, -1, "%s", in->name);
+ table_format_cell (t, col, -1, "%s", in->name, b->type);
if (b->type == PERFMON_BUNDLE_TYPE_NODE)
{
perfmon_thread_runtime_t *tr;
{
perfmon_node_stats_t ns;
table_format_cell (t, ++col, -1, "%U", format_vlib_node_name,
- vm, j);
+ vm, j, b->type);
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);
+ table_format_cell (t, col, j, "%U", b->format_fn, &ns, j,
+ b->type);
}
}
else
{
for (int j = 0; j < n_row; j++)
- table_format_cell (t, i, j, "%U", b->format_fn, r, j);
+ table_format_cell (t, i, j, "%U", b->format_fn, r, j, b->type);
}
col++;
}
vlib_cli_output (vm, "%U\n", format_table, t);
table_free (t);
- if (raw)
- vlib_cli_output (vm, "Sample time is %.4f seconds \n", pm->sample_time);
-
if (b->footer)
vlib_cli_output (vm, "\n%s\n", b->footer);