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/vcl | |
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/vcl')
-rw-r--r-- | src/vcl/test_vcl_listener_server.c | 2 | ||||
-rw-r--r-- | src/vcl/vcl_cfg.c | 2 | ||||
-rw-r--r-- | src/vcl/vcl_test_server.c | 3 | ||||
-rw-r--r-- | src/vcl/vppcom.c | 9 |
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)); |