From 0e7bcacc6c235feaf486262b580de4d48d090df6 Mon Sep 17 00:00:00 2001 From: Mohammed Hawari Date: Tue, 7 Oct 2025 15:25:53 +0200 Subject: [PATCH] vlib: move vlib_global_main.elog_main to the heap Change-Id: Ie35a21e69f43c2cadefbc767e1100798c6f0f7fb Type: refactor Signed-off-by: Mohammed Hawari --- src/vlib/global_funcs.h | 2 +- src/vlib/main.c | 4 ++-- src/vlib/main.h | 2 +- src/vlib/threads.c | 4 ++-- src/vlib/unix/main.c | 6 ++++-- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/vlib/global_funcs.h b/src/vlib/global_funcs.h index 2558e611750..23f7c57705e 100644 --- a/src/vlib/global_funcs.h +++ b/src/vlib/global_funcs.h @@ -62,7 +62,7 @@ always_inline elog_main_t * vlib_get_elog_main () { vlib_global_main_t *vgm = vlib_get_global_main (); - return &vgm->elog_main; + return vgm->elog_main; } #endif /* included_vlib_global_funcs_h_ */ diff --git a/src/vlib/main.c b/src/vlib/main.c index 61d010d2b3c..046973df320 100644 --- a/src/vlib/main.c +++ b/src/vlib/main.c @@ -1895,8 +1895,8 @@ vlib_main (vlib_main_t * volatile vm, unformat_input_t * input) /* Reconfigure event log which is enabled very early */ if (vgm->configured_elog_ring_size && - vgm->configured_elog_ring_size != vgm->elog_main.event_ring_size) - elog_resize (&vgm->elog_main, vgm->configured_elog_ring_size); + vgm->configured_elog_ring_size != vgm->elog_main->event_ring_size) + elog_resize (vgm->elog_main, vgm->configured_elog_ring_size); vl_api_set_elog_main (vlib_get_elog_main ()); /* Default name. */ diff --git a/src/vlib/main.h b/src/vlib/main.h index 1700369738d..96c418ab4b0 100644 --- a/src/vlib/main.h +++ b/src/vlib/main.h @@ -309,7 +309,7 @@ typedef struct vlib_global_main_t vlib_node_registration_t *node_registrations; /* Event logger. */ - elog_main_t elog_main; + elog_main_t *elog_main; u32 configured_elog_ring_size; /* Packet trace capture filter */ diff --git a/src/vlib/threads.c b/src/vlib/threads.c index b20e49078e4..971f51209a5 100644 --- a/src/vlib/threads.c +++ b/src/vlib/threads.c @@ -602,9 +602,9 @@ start_workers (vlib_main_t * vm) vlib_set_thread_name ((char *) w->name); } - vgm->elog_main.lock = + vgm->elog_main->lock = clib_mem_alloc_aligned (CLIB_CACHE_LINE_BYTES, CLIB_CACHE_LINE_BYTES); - vgm->elog_main.lock[0] = 0; + vgm->elog_main->lock[0] = 0; clib_callback_data_init (&vm->vlib_node_runtime_perf_callbacks, &vm->worker_thread_main_loop_callback_lock); diff --git a/src/vlib/unix/main.c b/src/vlib/unix/main.c index 2fe78e98568..505714c5f00 100644 --- a/src/vlib/unix/main.c +++ b/src/vlib/unix/main.c @@ -738,8 +738,10 @@ vlib_unix_main (int argc, char *argv[]) /* Turn on the event logger at the first possible moment */ vgm->configured_elog_ring_size = 128 << 10; - elog_init (vlib_get_elog_main (), vgm->configured_elog_ring_size); - elog_enable_disable (vlib_get_elog_main (), 1); + vgm->elog_main = + clib_mem_alloc_aligned (sizeof (elog_main_t), CLIB_CACHE_LINE_BYTES); + elog_init (vgm->elog_main, vgm->configured_elog_ring_size); + elog_enable_disable (vgm->elog_main, 1); unformat_init_command_line (&input, (char **) vgm->argv); if ((e = vlib_plugin_config (vm, &input))) -- 2.16.6