diff options
author | Dave Barach <dave@barachs.net> | 2016-03-02 09:48:04 -0500 |
---|---|---|
committer | Dave Barach <dave@barachs.net> | 2016-03-02 09:48:19 -0500 |
commit | dc03cf4eb4d2cb515d79d26f7b4cdef174ffa677 (patch) | |
tree | e9786bc1a0c2767d9c430a1faa1164ff4c716706 | |
parent | 98efd021195a39d10451fb72f800d6a98e282b1a (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.c | 2 | ||||
-rw-r--r-- | vnet/vnet/devices/dpdk/init.c | 11 |
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, ...) { |