diff options
author | Dave Barach <dave@barachs.net> | 2018-07-04 10:56:23 -0400 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2018-07-18 12:09:42 +0000 |
commit | 6a5adc369591fcac2447e9809deaa22f56b53911 (patch) | |
tree | c9a56b1ed0d5e8eb2f21a843552c6c0bc6df5597 /src/vpp-api | |
parent | 2a3fb1a28b170ac1d37815983611e83d148811d4 (diff) |
Add config option to use dlmalloc instead of mheap
Configure w/ --enable-dlmalloc, see .../build-data/platforms/vpp.mk
src/vppinfra/dlmalloc.[ch] are slightly modified versions of the
well-known Doug Lea malloc. Main advantage: dlmalloc mspaces have no
inherent size limit.
Change-Id: I19b3f43f3c65bcfb82c1a265a97922d01912446e
Signed-off-by: Dave Barach <dave@barachs.net>
Diffstat (limited to 'src/vpp-api')
-rw-r--r-- | src/vpp-api/client/client.c | 17 | ||||
-rw-r--r-- | src/vpp-api/java/Makefile.am | 2 | ||||
-rw-r--r-- | src/vpp-api/java/jvpp-registry/jvpp_registry.c | 8 | ||||
-rw-r--r-- | src/vpp-api/vapi/Makefile.am | 2 |
4 files changed, 21 insertions, 8 deletions
diff --git a/src/vpp-api/client/client.c b/src/vpp-api/client/client.c index cd0b5b9e45d..f1488e2e513 100644 --- a/src/vpp-api/client/client.c +++ b/src/vpp-api/client/client.c @@ -79,13 +79,18 @@ __attribute__((constructor)) static void vac_client_constructor (void) { - u8 *heap; - mheap_t *h; clib_mem_init (0, 1 << 30); - heap = clib_mem_get_per_cpu_heap (); - h = mheap_header (heap); - /* make the main heap thread-safe */ - h->flags |= MHEAP_FLAG_THREAD_SAFE; +#if USE_DLMALLOC == 0 + { + u8 *heap; + mheap_t *h; + + heap = clib_mem_get_per_cpu_heap (); + h = mheap_header (heap); + /* make the main heap thread-safe */ + h->flags |= MHEAP_FLAG_THREAD_SAFE; + } +#endif if (mem_trace) clib_mem_trace (1); } diff --git a/src/vpp-api/java/Makefile.am b/src/vpp-api/java/Makefile.am index 321ba33cb53..6d60a24e66d 100644 --- a/src/vpp-api/java/Makefile.am +++ b/src/vpp-api/java/Makefile.am @@ -15,7 +15,7 @@ AUTOMAKE_OPTIONS = foreign ACLOCAL_AMFLAGS = -I m4 AM_LIBTOOLFLAGS = --quiet -AM_CFLAGS = @CPU_FLAGS@ -Wall -I${top_srcdir} -I${top_builddir} \ +AM_CFLAGS = @CPU_FLAGS@ @DLMALLOC@ -Wall -I${top_srcdir} -I${top_builddir} \ -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux \ -I@top_srcdir@/plugins -I@top_builddir@/plugins diff --git a/src/vpp-api/java/jvpp-registry/jvpp_registry.c b/src/vpp-api/java/jvpp-registry/jvpp_registry.c index c90822d7262..bbe9719c30f 100644 --- a/src/vpp-api/java/jvpp-registry/jvpp_registry.c +++ b/src/vpp-api/java/jvpp-registry/jvpp_registry.c @@ -245,11 +245,19 @@ static int send_initial_control_ping() { return rv; } +#if USE_DLMALLOC == 1 +void * __jvpp_heap; +#endif + static int connect_to_vpe(char *shm_prefix, char *name) { jvpp_main_t * jm = &jvpp_main; api_main_t * am = &api_main; jvpp_registry_main_t * rm = &jvpp_registry_main; +#if USE_DLMALLOC == 1 + __jvpp_heap = clib_mem_init (0, 1<<20); +#endif + if (vl_client_connect_to_vlib(shm_prefix, name, 32) < 0) return -1; jm->my_client_index = am->my_client_index; diff --git a/src/vpp-api/vapi/Makefile.am b/src/vpp-api/vapi/Makefile.am index 07ef46ef296..e1bd813df13 100644 --- a/src/vpp-api/vapi/Makefile.am +++ b/src/vpp-api/vapi/Makefile.am @@ -15,7 +15,7 @@ AUTOMAKE_OPTIONS = foreign ACLOCAL_AMFLAGS = -I m4 AM_LIBTOOLFLAGS = --quiet -AM_CFLAGS = @CPU_FLAGS@ -Wall -I${top_srcdir} -I${top_builddir} -I. -I$(top_srcdir)/vpp-api/ +AM_CFLAGS = @CPU_FLAGS@ @DLMALLOC@ -Wall -I${top_srcdir} -I${top_builddir} -I. -I$(top_srcdir)/vpp-api/ AM_LDFLAGS = -shared -avoid-version -rpath /none -no-undefined |