From 8973b07eecbbfe23a5267975f8052a5c6339c756 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Tue, 1 Mar 2022 15:51:18 +0100 Subject: stats: refactor Type: refactor Change-Id: Ifd533a095d979dc55bfbe5fac7e0b7510a4d900c Signed-off-by: Damjan Marion --- src/vlib/error.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/vlib/error.c') diff --git a/src/vlib/error.c b/src/vlib/error.c index 9a9ca4a535d..e513a7d673b 100644 --- a/src/vlib/error.c +++ b/src/vlib/error.c @@ -39,7 +39,7 @@ #include #include -#include +#include uword vlib_error_drop_buffers (vlib_main_t * vm, @@ -158,7 +158,7 @@ vlib_register_errors (vlib_main_t *vm, u32 node_index, u32 n_errors, vec_validate (vm->error_elog_event_types, l - 1); /* Switch to the stats segment ... */ - oldheap = vlib_stats_push_heap (0); + oldheap = vlib_stats_set_heap (); /* Allocate a counter/elog type for each error. */ vec_validate (em->counters, l - 1); @@ -172,25 +172,23 @@ vlib_register_errors (vlib_main_t *vm, u32 node_index, u32 n_errors, clib_memset (em->counters + n->error_heap_index, 0, n_errors * sizeof (em->counters[0])); + oldheap = clib_mem_set_heap (oldheap); + /* Register counter indices in the stat segment directory */ { int i; - u8 *error_name = 0; for (i = 0; i < n_errors; i++) { - vec_reset_length (error_name); - error_name = - format (error_name, "/err/%v/%s%c", n->name, counters[i].name, 0); - vlib_stats_register_error_index (oldheap, error_name, em->counters, - n->error_heap_index + i); + vlib_stats_register_error_index (em->counters, n->error_heap_index + i, + "/err/%v/%s", n->name, + counters[i].name); } - vec_free (error_name); } /* (re)register the em->counters base address, switch back to main heap */ - vlib_stats_pop_heap2 (em->counters, vm->thread_index, oldheap, 1); + vlib_stats_update_error_vector (em->counters, vm->thread_index, 1); { elog_event_type_t t; -- cgit 1.2.3-korg