aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp-api
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2018-07-04 10:56:23 -0400
committerDamjan Marion <dmarion@me.com>2018-07-18 12:09:42 +0000
commit6a5adc369591fcac2447e9809deaa22f56b53911 (patch)
treec9a56b1ed0d5e8eb2f21a843552c6c0bc6df5597 /src/vpp-api
parent2a3fb1a28b170ac1d37815983611e83d148811d4 (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.c17
-rw-r--r--src/vpp-api/java/Makefile.am2
-rw-r--r--src/vpp-api/java/jvpp-registry/jvpp_registry.c8
-rw-r--r--src/vpp-api/vapi/Makefile.am2
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