aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2016-03-02 09:48:04 -0500
committerDave Barach <dave@barachs.net>2016-03-02 09:48:19 -0500
commitdc03cf4eb4d2cb515d79d26f7b4cdef174ffa677 (patch)
treee9786bc1a0c2767d9c430a1faa1164ff4c716706
parent98efd021195a39d10451fb72f800d6a98e282b1a (diff)
Remove spurious call to unix_physmem_init(...)
It turns out that unix_physmem_init(...) has been effectively disabled for a very long time. The vnet library supplied a weak symbol override for the vlib_app_physmem_init(...) which returned 1, meaning "do nothing." When we switched libvnet.a -> libvnet.so, the symbol override stopped working. Presto: unix_physmem_init(...) romps all over the data set up by vlib_buffer_pool_create(...), leading to ASSERT failures and/or bus errors, but only when using worker threads. Even then, the failure depended in some complicated way on library dynamic load order. We should remove .../vlib/vlib/unix/physmem.c entirely once we're sure we'll never want it back. Change-Id: I27747edbeb0de88d2f2d8728f7f8eb3135e7f0cf Signed-off-by: Dave Barach <dave@barachs.net>
-rw-r--r--vlib/vlib/threads.c2
-rw-r--r--vnet/vnet/devices/dpdk/init.c11
2 files changed, 0 insertions, 13 deletions
diff --git a/vlib/vlib/threads.c b/vlib/vlib/threads.c
index 1f3c141b040..15eb959938e 100644
--- a/vlib/vlib/threads.c
+++ b/vlib/vlib/threads.c
@@ -674,8 +674,6 @@ static clib_error_t * start_workers (vlib_main_t * vm)
clib_mem_set_heap (oldheap);
vec_add1 (vlib_mains, vm_clone);
- unix_physmem_init (vm_clone, 0 /* physmem not required */);
-
vm_clone->error_main.counters =
vec_dup(vlib_mains[0]->error_main.counters);
vm_clone->error_main.counters_last_clear =
diff --git a/vnet/vnet/devices/dpdk/init.c b/vnet/vnet/devices/dpdk/init.c
index 35285b89b05..e8fe554c32f 100644
--- a/vnet/vnet/devices/dpdk/init.c
+++ b/vnet/vnet/devices/dpdk/init.c
@@ -715,17 +715,6 @@ dpdk_lib_init (dpdk_main_t * dm)
return 0;
}
-/*
- * Tell the vlib physical memory allocator that we've handled
- * the initialization. We don't actually do so until
- * vlib_main(...) callls the dpdk config function.
- */
-int vlib_app_physmem_init (vlib_main_t * vm, physmem_main_t * pm,
- int physmem_required)
-{
- return 1;
-}
-
static clib_error_t *
write_sys_fs (char * file_name, char * fmt, ...)
{