X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fdlmalloc.c;h=36c80b09b87c3d8e3b911571d9ebb11a25e191b8;hb=f2b6b9e29b55075d09cfc3c25852a87c2eade596;hp=23b4dfcac4445731e9117211c8b928781c778fe3;hpb=497dd89432e96d0daba90db9468e630cb469b01a;p=vpp.git diff --git a/src/vppinfra/dlmalloc.c b/src/vppinfra/dlmalloc.c index 23b4dfcac44..36c80b09b87 100644 --- a/src/vppinfra/dlmalloc.c +++ b/src/vppinfra/dlmalloc.c @@ -1249,7 +1249,7 @@ static struct malloc_state _gm_; #define disable_expand(M) ((M)->mflags |= USE_NOEXPAND_BIT) #define use_trace(M) ((M)->mflags & USE_TRACE_BIT) #define enable_trace(M) ((M)->mflags |= USE_TRACE_BIT) -#define disable_trace(M) ((M)->mflags |= USE_TRACE_BIT) +#define disable_trace(M) ((M)->mflags &= ~USE_TRACE_BIT) #define set_lock(M,L)\ ((M)->mflags = (L)?\ @@ -4082,6 +4082,7 @@ int mspace_track_large_chunks(mspace msp, int enable) { return ret; } +CLIB_NOSANITIZE_ADDR size_t destroy_mspace(mspace msp) { size_t freed = 0; mstate ms = (mstate)msp; @@ -4117,7 +4118,7 @@ void mspace_get_address_and_size (mspace msp, char **addrp, size_t *sizep) *sizep = this_seg->size; } -CLIB_NOSANITIZE_ADDR +CLIB_NOSANITIZE_ADDR __clib_export int mspace_is_heap_object (mspace msp, void *p) { msegment *this_seg; @@ -4184,7 +4185,7 @@ int mspace_is_traced (mspace msp) return 0; } -CLIB_NOSANITIZE_ADDR +CLIB_NOSANITIZE_ADDR __clib_export void* mspace_get_aligned (mspace msp, unsigned long n_user_data_bytes, unsigned long align, @@ -4199,28 +4200,7 @@ void* mspace_get_aligned (mspace msp, * the base of the dlmalloc object */ n_user_data_bytes += sizeof(unsigned); - - /* - * Alignment requests less than the size of an mmx vector are ignored - */ - if (align < sizeof (uword)) { - rv = mspace_malloc (msp, n_user_data_bytes); - if (rv == 0) - return rv; - - if (use_trace(ms)) { - mchunkptr p = mem2chunk(rv); - size_t psize = chunksize(p); - - mheap_get_trace ((unsigned long)rv + sizeof (unsigned), psize); - } - - wwp = (unsigned *)rv; - *wwp = 0; - rv += sizeof (unsigned); - - return rv; - } + align = align < MALLOC_ALIGNMENT ? MALLOC_ALIGNMENT : align; /* * Alignment requests greater than 4K must be at offset zero, @@ -4285,7 +4265,7 @@ void* mspace_get_aligned (mspace msp, return (void *) searchp; } -CLIB_NOSANITIZE_ADDR +CLIB_NOSANITIZE_ADDR __clib_export void mspace_put (mspace msp, void *p_arg) { char *object_header; @@ -4335,7 +4315,7 @@ void mspace_put_no_offset (mspace msp, void *p_arg) mspace_free (msp, p_arg); } -CLIB_NOSANITIZE_ADDR +CLIB_NOSANITIZE_ADDR __clib_export size_t mspace_usable_size_with_delta (const void *p) { size_t usable_size;