aboutsummaryrefslogtreecommitdiffstats
path: root/src/vcl
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/vcl
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/vcl')
-rw-r--r--src/vcl/test_vcl_listener_server.c2
-rw-r--r--src/vcl/vcl_cfg.c2
-rw-r--r--src/vcl/vcl_test_server.c3
-rw-r--r--src/vcl/vppcom.c9
4 files changed, 8 insertions, 8 deletions
diff --git a/src/vcl/test_vcl_listener_server.c b/src/vcl/test_vcl_listener_server.c
index 560c9604e5e..0963af03e21 100644
--- a/src/vcl/test_vcl_listener_server.c
+++ b/src/vcl/test_vcl_listener_server.c
@@ -62,6 +62,8 @@ main (int argc, char **argv)
uint32_t listen_fd;
vppcom_endpt_t endpt;
+ clib_mem_init_thread_safe (0, 64<<20);
+
//Address stuff
memset (&sin, 0, sizeof (sin));
sin.sin_family = AF_INET;
diff --git a/src/vcl/vcl_cfg.c b/src/vcl/vcl_cfg.c
index 338a6fa6165..f25c8fc033a 100644
--- a/src/vcl/vcl_cfg.c
+++ b/src/vcl/vcl_cfg.c
@@ -200,7 +200,7 @@ defaulted:
ASSERT (vcl_mem != MAP_FAILED);
return;
}
- heap = clib_mem_init (vcl_mem, vcl_cfg->heapsize);
+ heap = clib_mem_init_thread_safe (vcl_mem, vcl_cfg->heapsize);
if (!heap)
{
clib_warning ("VCL<%d>: ERROR: clib_mem_init() failed!", getpid ());
diff --git a/src/vcl/vcl_test_server.c b/src/vcl/vcl_test_server.c
index 5d37b46df93..98c36a43f3e 100644
--- a/src/vcl/vcl_test_server.c
+++ b/src/vcl/vcl_test_server.c
@@ -25,6 +25,7 @@
#include <fcntl.h>
#include <vcl/vcl_test.h>
#include <sys/epoll.h>
+#include <vppinfra/mem.h>
typedef struct
{
@@ -310,6 +311,8 @@ main (int argc, char **argv)
uint16_t port = SOCK_TEST_SERVER_PORT;
vppcom_endpt_t endpt;
+ clib_mem_init_thread_safe (0, 64 << 20);
+
opterr = 0;
while ((c = getopt (argc, argv, "6D")) != -1)
switch (c)
diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c
index 0d077caa797..60c649d325f 100644
--- a/src/vcl/vppcom.c
+++ b/src/vcl/vppcom.c
@@ -367,25 +367,20 @@ int
vppcom_app_create (char *app_name)
{
vppcom_cfg_t *vcl_cfg = &vcm->cfg;
- u8 *heap;
- mheap_t *h;
int rv;
if (!vcm->init)
{
vcm->init = 1;
+ vppcom_cfg (&vcm->cfg);
+
clib_spinlock_init (&vcm->session_fifo_lockp);
clib_fifo_validate (vcm->client_session_index_fifo,
vcm->cfg.listen_queue_size);
clib_spinlock_init (&vcm->sessions_lockp);
- vppcom_cfg (&vcm->cfg);
vcm->main_cpu = os_get_thread_index ();
- heap = clib_mem_get_per_cpu_heap ();
- h = mheap_header (heap);
- /* make the main heap thread-safe */
- h->flags |= MHEAP_FLAG_THREAD_SAFE;
vcm->session_index_by_vpp_handles = hash_create (0, sizeof (uword));