int
ssvm_master_init_private (ssvm_private_t * ssvm)
{
+ uword pagesize = clib_mem_get_page_size (), rnd_size = 0;
ssvm_shared_header_t *sh;
- u32 pagesize = clib_mem_get_page_size ();
- u32 rnd_size = 0;
u8 *heap;
rnd_size = clib_max (ssvm->ssvm_size + (pagesize - 1), ssvm->ssvm_size);
}
mspace_disable_expand (heap);
+
+ /* Find actual size because mspace size is rounded up by dlmalloc */
+ struct dlmallinfo dlminfo;
+ dlminfo = mspace_mallinfo (heap);
+ rnd_size = dlminfo.fordblks;
#endif
ssvm->ssvm_size = rnd_size;
clib_memset (sh, 0, sizeof (*sh));
sh->heap = heap;
+ sh->ssvm_size = rnd_size;
sh->ssvm_va = pointer_to_uword (heap);
sh->type = SSVM_SEGMENT_PRIVATE;
sh->name = ssvm->name;