From f553a2cbbb8cca84ebf033335ebd2cd26dc19d69 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Fri, 26 Mar 2021 13:45:37 +0100 Subject: vlib: introduce vlib_get_elog_main() Type: improvement Change-Id: I73383eb15186021cd6527d112da8443a0082f129 Signed-off-by: Damjan Marion --- src/vlib/cli.c | 16 ++++++++-------- src/vlib/error_funcs.h | 2 +- src/vlib/global_funcs.h | 7 +++++++ src/vlib/log.c | 5 +++-- src/vlib/main.c | 21 ++++++++++----------- src/vlib/node.c | 3 ++- src/vlib/threads.c | 6 +++--- src/vlib/threads.h | 6 ++---- src/vlib/unix/main.c | 4 ++-- 9 files changed, 38 insertions(+), 32 deletions(-) (limited to 'src/vlib') diff --git a/src/vlib/cli.c b/src/vlib/cli.c index 85ec6cbc43c..3215a3264f5 100644 --- a/src/vlib/cli.c +++ b/src/vlib/cli.c @@ -575,8 +575,8 @@ vlib_cli_dispatch_sub_commands (vlib_main_t * vm, { u32 c; } *ed; - ed = ELOG_DATA (&vm->elog_main, e); - ed->c = elog_string (&vm->elog_main, "%v", c->path); + ed = ELOG_DATA (vlib_get_elog_main (), e); + ed->c = elog_string (vlib_get_elog_main (), "%v", c->path); } if (!c->is_mp_safe) @@ -607,17 +607,17 @@ vlib_cli_dispatch_sub_commands (vlib_main_t * vm, { u32 c, err; } *ed; - ed = ELOG_DATA (&vm->elog_main, e); - ed->c = elog_string (&vm->elog_main, "%v", c->path); + ed = ELOG_DATA (vlib_get_elog_main (), e); + ed->c = elog_string (vlib_get_elog_main (), "%v", c->path); if (c_error) { vec_add1 (c_error->what, 0); - ed->err = - elog_string (&vm->elog_main, (char *) c_error->what); + ed->err = elog_string (vlib_get_elog_main (), + (char *) c_error->what); _vec_len (c_error->what) -= 1; } else - ed->err = elog_string (&vm->elog_main, "OK"); + ed->err = elog_string (vlib_get_elog_main (), "OK"); } if (c_error) @@ -1547,7 +1547,7 @@ event_logger_trace_command_fn (vlib_main_t * vm, */ if (dispatch || circuit) { - elog_main_t *em = &vm->elog_main; + elog_main_t *em = &vlib_global_main.elog_main; em->n_total_events_disable_limit = em->n_total_events + vec_len (em->event_ring); diff --git a/src/vlib/error_funcs.h b/src/vlib/error_funcs.h index ab281ba2ef8..4fea1ce6dc0 100644 --- a/src/vlib/error_funcs.h +++ b/src/vlib/error_funcs.h @@ -47,7 +47,7 @@ vlib_error_elog_count (vlib_main_t * vm, uword counter, uword increment) { if (VLIB_ELOG_MAIN_LOOP > 0 && increment > 0) { - elog_main_t *em = &vm->elog_main; + elog_main_t *em = vlib_get_elog_main (); elog (em, vec_elt_at_index (vm->error_elog_event_types, counter), increment); } diff --git a/src/vlib/global_funcs.h b/src/vlib/global_funcs.h index b1d636f7ce4..63f8115a181 100644 --- a/src/vlib/global_funcs.h +++ b/src/vlib/global_funcs.h @@ -52,6 +52,13 @@ vlib_get_thread_main () return &vlib_thread_main; } +always_inline elog_main_t * +vlib_get_elog_main () +{ + vlib_main_t *vm = vlib_get_first_main (); + return &vm->elog_main; +} + #endif /* included_vlib_global_funcs_h_ */ /* diff --git a/src/vlib/log.c b/src/vlib/log.c index ed14d9ecdc6..fc67a1f8903 100644 --- a/src/vlib/log.c +++ b/src/vlib/log.c @@ -249,9 +249,10 @@ vlib_log (vlib_log_level_t level, vlib_log_class_t class, char *fmt, ...) u32 string_index; } *ed; /* *INDENT-ON* */ - ed = ELOG_DATA (&vm->elog_main, ee); + ed = ELOG_DATA (&vlib_global_main.elog_main, ee); ed->log_level = level; - ed->string_index = elog_string (&vm->elog_main, "%v", e->string); + ed->string_index = + elog_string (&vlib_global_main.elog_main, "%v", e->string); } lm->next = (lm->next + 1) % lm->size; diff --git a/src/vlib/main.c b/src/vlib/main.c index fc6fadb625e..62da7b9ff0a 100644 --- a/src/vlib/main.c +++ b/src/vlib/main.c @@ -694,7 +694,7 @@ static clib_error_t * vlib_cli_elog_clear (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { - elog_reset_buffer (&vm->elog_main); + elog_reset_buffer (&vlib_global_main.elog_main); return 0; } @@ -711,7 +711,7 @@ static clib_error_t * elog_save_buffer (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { - elog_main_t *em = &vm->elog_main; + elog_main_t *em = &vlib_global_main.elog_main; char *file, *chroot_file; clib_error_t *error = 0; @@ -765,7 +765,7 @@ static clib_error_t * elog_stop (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { - elog_main_t *em = &vm->elog_main; + elog_main_t *em = &vlib_global_main.elog_main; em->n_total_events_disable_limit = em->n_total_events; @@ -785,7 +785,7 @@ static clib_error_t * elog_restart (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { - elog_main_t *em = &vm->elog_main; + elog_main_t *em = &vlib_global_main.elog_main; em->n_total_events_disable_limit = ~0; @@ -805,11 +805,11 @@ static clib_error_t * elog_resize_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { - elog_main_t *em = &vm->elog_main; + elog_main_t *em = &vlib_global_main.elog_main; u32 tmp; /* Stop the parade */ - elog_reset_buffer (&vm->elog_main); + elog_reset_buffer (em); if (unformat (input, "%d", &tmp)) { @@ -836,7 +836,7 @@ VLIB_CLI_COMMAND (elog_resize_cli, static) = { static void elog_show_buffer_internal (vlib_main_t * vm, u32 n_events_to_show) { - elog_main_t *em = &vm->elog_main; + elog_main_t *em = &vlib_global_main.elog_main; elog_event_t *e, *es; f64 dt; @@ -902,7 +902,7 @@ vlib_elog_main_loop_event (vlib_main_t * vm, u64 time, u32 n_vectors, u32 is_return) { vlib_main_t *evm = &vlib_global_main; - elog_main_t *em = &evm->elog_main; + elog_main_t *em = vlib_get_elog_main (); int enabled = evm->elog_trace_graph_dispatch | evm->elog_trace_graph_circuit; @@ -1819,8 +1819,7 @@ vlib_add_del_post_mortem_callback (void *cb, int is_add) static void elog_post_mortem_dump (void) { - vlib_main_t *vm = &vlib_global_main; - elog_main_t *em = &vm->elog_main; + elog_main_t *em = vlib_get_elog_main (); u8 *filename; clib_error_t *error; @@ -1933,7 +1932,7 @@ vlib_main (vlib_main_t * volatile vm, unformat_input_t * input) if (vm->configured_elog_ring_size && vm->configured_elog_ring_size != vm->elog_main.event_ring_size) elog_resize (&vm->elog_main, vm->configured_elog_ring_size); - vl_api_set_elog_main (&vm->elog_main); + vl_api_set_elog_main (vlib_get_elog_main ()); (void) vl_api_set_elog_trace_api_messages (1); /* Default name. */ diff --git a/src/vlib/node.c b/src/vlib/node.c index 3c96d9d2a04..9de4c690c3f 100644 --- a/src/vlib/node.c +++ b/src/vlib/node.c @@ -68,7 +68,8 @@ node_set_elog_name (vlib_main_t * vm, uword node_index) vec_free (t->format); t->format = (char *) format (0, "%v-return: %%d%c", n->name, 0); - n->name_elog_string = elog_string (&vm->elog_main, "%v%c", n->name, 0); + n->name_elog_string = + elog_string (&vlib_global_main.elog_main, "%v%c", n->name, 0); } void diff --git a/src/vlib/threads.c b/src/vlib/threads.c index 939f9107556..cf82e1802d6 100644 --- a/src/vlib/threads.c +++ b/src/vlib/threads.c @@ -686,7 +686,7 @@ start_workers (vlib_main_t * vm) /* Set up the main thread */ vec_add2_aligned (vlib_worker_threads, w, 1, CLIB_CACHE_LINE_BYTES); w->elog_track.name = "main thread"; - elog_track_register (&vm->elog_main, &w->elog_track); + elog_track_register (vlib_get_elog_main (), &w->elog_track); if (vec_len (tm->thread_prefix)) { @@ -770,7 +770,7 @@ start_workers (vlib_main_t * vm) w->elog_track.name = (char *) format (0, "%s %d", tr->name, k + 1); vec_add1 (w->elog_track.name, 0); - elog_track_register (&vm->elog_main, &w->elog_track); + elog_track_register (vlib_get_elog_main (), &w->elog_track); if (tr->no_data_structure_clone) continue; @@ -944,7 +944,7 @@ start_workers (vlib_main_t * vm) (char *) format (0, "%s %d", tr->name, j + 1); w->registration = tr; vec_add1 (w->elog_track.name, 0); - elog_track_register (&vm->elog_main, &w->elog_track); + elog_track_register (vlib_get_elog_main (), &w->elog_track); } } } diff --git a/src/vlib/threads.h b/src/vlib/threads.h index eb31edc2706..b514ba415ec 100644 --- a/src/vlib/threads.h +++ b/src/vlib/threads.h @@ -425,8 +425,7 @@ vlib_worker_thread_barrier_check (void) u32 thread_index; } __clib_packed *ed; - ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, - w->elog_track); + ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); ed->thread_index = thread_index; } @@ -503,8 +502,7 @@ vlib_worker_thread_barrier_check (void) u32 duration; } __clib_packed *ed; - ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, - w->elog_track); + ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); ed->thread_index = thread_index; ed->duration = (int) (1000000.0 * t); } diff --git a/src/vlib/unix/main.c b/src/vlib/unix/main.c index f73f9ca325f..a0a13f3affa 100644 --- a/src/vlib/unix/main.c +++ b/src/vlib/unix/main.c @@ -708,8 +708,8 @@ vlib_unix_main (int argc, char *argv[]) /* Turn on the event logger at the first possible moment */ vm->configured_elog_ring_size = 128 << 10; - elog_init (&vm->elog_main, vm->configured_elog_ring_size); - elog_enable_disable (&vm->elog_main, 1); + elog_init (vlib_get_elog_main (), vm->configured_elog_ring_size); + elog_enable_disable (vlib_get_elog_main (), 1); unformat_init_command_line (&input, (char **) vm->argv); if ((e = vlib_plugin_config (vm, &input))) -- cgit 1.2.3-korg