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>
This commit is contained in:
@ -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 =
|
||||
|
@ -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, ...)
|
||||
{
|
||||
|
Reference in New Issue
Block a user