X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fpmalloc.c;h=546a4fe336bcd49735520f4509ad87ef7ef72096;hb=67d7acd05;hp=f6171dbf4588b7792641cb8270d6c24941c369f9;hpb=6bfd07670b991c30761ef74fb09f42181dbfd182;p=vpp.git diff --git a/src/vppinfra/pmalloc.c b/src/vppinfra/pmalloc.c index f6171dbf458..546a4fe336b 100644 --- a/src/vppinfra/pmalloc.c +++ b/src/vppinfra/pmalloc.c @@ -60,7 +60,7 @@ pmalloc_validate_numa_node (u32 * numa_node) return 0; } -int +__clib_export int clib_pmalloc_init (clib_pmalloc_main_t * pm, uword base_addr, uword size) { uword base, pagesize; @@ -288,10 +288,7 @@ pmalloc_map_pages (clib_pmalloc_main_t * pm, clib_pmalloc_arena_t * a, if (a->flags & CLIB_PMALLOC_ARENA_F_SHARED_MEM) { mmap_flags |= MAP_SHARED; - if (a->log2_subpage_sz != clib_mem_get_log2_page_size ()) - pm->error = clib_mem_create_hugetlb_fd ((char *) a->name, &a->fd); - else - pm->error = clib_mem_create_fd ((char *) a->name, &a->fd); + a->fd = clib_mem_vm_create_fd (a->log2_subpage_sz, "%s", a->name); if (a->fd == -1) goto error; if ((ftruncate (a->fd, size)) == -1) @@ -385,7 +382,7 @@ error: return 0; } -void * +__clib_export void * clib_pmalloc_create_shared_arena (clib_pmalloc_main_t * pm, char *name, uword size, u32 log2_page_sz, u32 numa_node) { @@ -487,7 +484,7 @@ clib_pmalloc_alloc_inline (clib_pmalloc_main_t * pm, clib_pmalloc_arena_t * a, return 0; } -void * +__clib_export void * clib_pmalloc_alloc_aligned_on_numa (clib_pmalloc_main_t * pm, uword size, uword align, u32 numa_node) { @@ -531,7 +528,7 @@ pmalloc_chunks_mergeable (clib_pmalloc_arena_t * a, clib_pmalloc_page_t * pp, return 1; } -void +__clib_export void clib_pmalloc_free (clib_pmalloc_main_t * pm, void *va) { clib_pmalloc_page_t *pp; @@ -620,7 +617,7 @@ format_pmalloc_page (u8 * s, va_list * va) return s; } -u8 * +__clib_export u8 * format_pmalloc (u8 * s, va_list * va) { clib_pmalloc_main_t *pm = va_arg (*va, clib_pmalloc_main_t *); @@ -646,7 +643,7 @@ format_pmalloc (u8 * s, va_list * va) /* *INDENT-OFF* */ - pool_foreach (a, pm->arenas, + pool_foreach (a, pm->arenas) { u32 *page_index; s = format (s, "\n%Uarena '%s' pages %u subpage-size %U numa-node %u", @@ -662,13 +659,13 @@ format_pmalloc (u8 * s, va_list * va) s = format (s, "\n%U%U", format_white_space, indent + 4, format_pmalloc_page, pp, verbose); } - }); + } /* *INDENT-ON* */ return s; } -u8 * +__clib_export u8 * format_pmalloc_map (u8 * s, va_list * va) { clib_pmalloc_main_t *pm = va_arg (*va, clib_pmalloc_main_t *);