From d34fccf1e59ad66874622bb8e2ec573e644389a6 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Mon, 27 Oct 2025 20:20:12 +0100 Subject: [PATCH] vppinfra: clib_mem_init() cleanup removed clib_mem_init_thread_safe() as it doesnt do anything more than clib_mem_init(). For complex cases added vlib_mem_init_ex() Type: improvement Change-Id: Id603769d1c36f43b082d0d3854a9d58ae45b32fb Signed-off-by: Damjan Marion --- src/plugins/hs_apps/sapi/vpp_echo.c | 2 +- src/plugins/hs_apps/vcl/vcl_test_server.c | 2 +- src/plugins/selog/selog_client/selog_client.c | 4 ++-- src/svm/svmdbtool.c | 2 +- src/svm/svmtool.c | 2 +- src/vat/main.c | 2 +- src/vcl/vcl_cfg.c | 2 +- src/vpp/vnet/main.c | 14 ++++++++------ src/vppinfra/mem.h | 11 ++++++++--- src/vppinfra/mem_dlmalloc.c | 27 +++++++++++---------------- 10 files changed, 35 insertions(+), 33 deletions(-) diff --git a/src/plugins/hs_apps/sapi/vpp_echo.c b/src/plugins/hs_apps/sapi/vpp_echo.c index 2b7eff4bdbb..d860604dc41 100644 --- a/src/plugins/hs_apps/sapi/vpp_echo.c +++ b/src/plugins/hs_apps/sapi/vpp_echo.c @@ -1275,7 +1275,7 @@ vpp_echo_init () { /* init memory before proto register themselves */ echo_main_t *em = &echo_main; - clib_mem_init_thread_safe (0, 256 << 20); + clib_mem_init (0, 256 << 20); clib_memset (em, 0, sizeof (*em)); } diff --git a/src/plugins/hs_apps/vcl/vcl_test_server.c b/src/plugins/hs_apps/vcl/vcl_test_server.c index 008539f2585..c7b3bebc5ac 100644 --- a/src/plugins/hs_apps/vcl/vcl_test_server.c +++ b/src/plugins/hs_apps/vcl/vcl_test_server.c @@ -865,7 +865,7 @@ main (int argc, char **argv) vcl_test_main_t *vt = &vcl_test_main; int rv, i; - clib_mem_init_thread_safe (0, 64 << 20); + clib_mem_init (0, 64 << 20); vsm->server_cfg.port = VCL_TEST_SERVER_PORT; vsm->server_cfg.workers = 1; vsm->active_workers = 0; diff --git a/src/plugins/selog/selog_client/selog_client.c b/src/plugins/selog/selog_client/selog_client.c index f35fe9ad5e2..78884c70395 100644 --- a/src/plugins/selog/selog_client/selog_client.c +++ b/src/plugins/selog/selog_client/selog_client.c @@ -44,7 +44,7 @@ selog_client_init_mem (void) abort (); } - heap = clib_mem_init_thread_safe (mem, SELOG_CLIENT_HEAPSIZE); + heap = clib_mem_init (mem, SELOG_CLIENT_HEAPSIZE); if (!heap) { SELOG_LOG_ERROR ("clib_mem_init_thread_safe failed"); @@ -939,4 +939,4 @@ selog_client_init (void) selog_client_main.log_lvl = SELOG_LOG_LEVEL_ERROR; } -selog_client_main_t selog_client_main; \ No newline at end of file +selog_client_main_t selog_client_main; diff --git a/src/svm/svmdbtool.c b/src/svm/svmdbtool.c index b60b86db29d..399ba372f5b 100644 --- a/src/svm/svmdbtool.c +++ b/src/svm/svmdbtool.c @@ -382,7 +382,7 @@ main (int argc, char **argv) struct group _grp, *grp; char *s, buf[128]; - clib_mem_init_thread_safe (0, 128 << 20); + clib_mem_init (0, 128 << 20); svmdbtool_main.uid = geteuid (); svmdbtool_main.gid = getegid (); diff --git a/src/svm/svmtool.c b/src/svm/svmtool.c index 521ddab7eb3..0f3ca9c322e 100644 --- a/src/svm/svmtool.c +++ b/src/svm/svmtool.c @@ -454,7 +454,7 @@ main (int argc, char **argv) char *chroot_path = 0; u8 *chroot_u8; - clib_mem_init_thread_safe (0, 128 << 20); + clib_mem_init (0, 128 << 20); unformat_init_command_line (&input, argv); diff --git a/src/vat/main.c b/src/vat/main.c index f4bb0cddee4..7f45e442abd 100644 --- a/src/vat/main.c +++ b/src/vat/main.c @@ -422,7 +422,7 @@ main (int argc, char **argv) clib_error_t *error; vlib_main_t *vm; - clib_mem_init_thread_safe (0, 128 << 20); + clib_mem_init (0, 128 << 20); vlib_main_init (); vm = vlib_get_first_main (); diff --git a/src/vcl/vcl_cfg.c b/src/vcl/vcl_cfg.c index 48be5a7b28a..3b74b580316 100644 --- a/src/vcl/vcl_cfg.c +++ b/src/vcl/vcl_cfg.c @@ -193,7 +193,7 @@ defaulted: ASSERT (vcl_mem != MAP_FAILED); return; } - heap = clib_mem_init_thread_safe (vcl_mem, vcl_cfg->heapsize); + heap = clib_mem_init (vcl_mem, vcl_cfg->heapsize); if (!heap) { fprintf (stderr, "VCL<%d>: ERROR: clib_mem_init() failed!", getpid ()); diff --git a/src/vpp/vnet/main.c b/src/vpp/vnet/main.c index f149b7fd479..386af04c251 100644 --- a/src/vpp/vnet/main.c +++ b/src/vpp/vnet/main.c @@ -107,8 +107,10 @@ main (int argc, char *argv[]) { int i; void vl_msg_api_set_first_available_msg_id (u16); - uword main_heap_size = (1ULL << 30); - clib_mem_page_sz_t main_heap_log2_page_sz = CLIB_MEM_PAGE_SZ_DEFAULT; + clib_mem_init_ex_args_t mem_init_args = { + .log2_page_sz = CLIB_MEM_PAGE_SZ_DEFAULT, + .memory_size = (1ULL << 30), + }; clib_mem_page_sz_t default_log2_hugepage_sz = CLIB_MEM_PAGE_SZ_UNKNOWN; const size_t config_max_size = 1ULL << 18; unformat_input_t input, sub_input; @@ -280,11 +282,12 @@ main (int argc, char *argv[]) &default_log2_hugepage_sz)) ; else if (unformat (&sub_input, "main-heap-size %U", - unformat_memory_size, &main_heap_size)) + unformat_memory_size, + &mem_init_args.memory_size)) ; else if (unformat (&sub_input, "main-heap-page-size %U", unformat_log2_page_size, - &main_heap_log2_page_sz)) + &mem_init_args.log2_page_sz)) ; else if (unformat (&sub_input, "%v", &v)) vec_reset_length (v); @@ -358,8 +361,7 @@ main (int argc, char *argv[]) clib_mem_destroy (); - main_heap = - clib_mem_init_with_page_size (main_heap_size, main_heap_log2_page_sz); + main_heap = clib_mem_init_ex (&mem_init_args); if (!main_heap) { diff --git a/src/vppinfra/mem.h b/src/vppinfra/mem.h index 993ce5de9f4..6b403efe7ad 100644 --- a/src/vppinfra/mem.h +++ b/src/vppinfra/mem.h @@ -275,9 +275,14 @@ clib_mem_heap_t *clib_mem_create_heap (void *base, uword size, int is_locked, void clib_mem_main_init (); void *clib_mem_init (void *base, uword size); -void *clib_mem_init_with_page_size (uword memory_size, - clib_mem_page_sz_t log2_page_sz); -void *clib_mem_init_thread_safe (void *memory, uword memory_size); + +typedef struct +{ + void *base_addr; + uword memory_size; + clib_mem_page_sz_t log2_page_sz; +} clib_mem_init_ex_args_t; +void *clib_mem_init_ex (clib_mem_init_ex_args_t *args); void clib_mem_exit (void); diff --git a/src/vppinfra/mem_dlmalloc.c b/src/vppinfra/mem_dlmalloc.c index 87a87316dba..bf306ae078c 100644 --- a/src/vppinfra/mem_dlmalloc.c +++ b/src/vppinfra/mem_dlmalloc.c @@ -267,15 +267,15 @@ clib_mem_create_heap_internal (void *base, uword size, /* Initialize CLIB heap based on memory/size given by user. Set memory to 0 and CLIB will try to allocate its own heap. */ static void * -clib_mem_init_internal (void *base, uword size, - clib_mem_page_sz_t log2_page_sz) +clib_mem_init_internal (clib_mem_init_ex_args_t *a) { clib_mem_heap_t *h; clib_mem_main_init (); - h = clib_mem_create_heap_internal (base, size, log2_page_sz, - 1 /*is_locked */ , "main heap"); + h = clib_mem_create_heap_internal (a->base_addr, a->memory_size, + a->log2_page_sz, 1 /*is_locked */, + "main heap"); clib_mem_set_heap (h); @@ -295,22 +295,17 @@ clib_mem_init_internal (void *base, uword size, __clib_export void * clib_mem_init (void *memory, uword memory_size) { - return clib_mem_init_internal (memory, memory_size, - CLIB_MEM_PAGE_SZ_DEFAULT); + return clib_mem_init_internal (&(clib_mem_init_ex_args_t){ + .base_addr = memory, + .memory_size = memory_size, + .log2_page_sz = CLIB_MEM_PAGE_SZ_DEFAULT, + }); } __clib_export void * -clib_mem_init_with_page_size (uword memory_size, - clib_mem_page_sz_t log2_page_sz) +clib_mem_init_ex (clib_mem_init_ex_args_t *a) { - return clib_mem_init_internal (0, memory_size, log2_page_sz); -} - -__clib_export void * -clib_mem_init_thread_safe (void *memory, uword memory_size) -{ - return clib_mem_init_internal (memory, memory_size, - CLIB_MEM_PAGE_SZ_DEFAULT); + return clib_mem_init_internal (a); } __clib_export void -- 2.16.6