vlib: always replace bootstrap vlib_mains
Fixes an obscure issue when spinning up pure pthreads which don't have vlib_main_t clones. VLIB_REGISTER_THREAD () = { <snip> .use_pthreads = 1, .no_data_structure_clone = 1, } Type: improvement Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: Ifae5a2a35865de057eea7782ee71b1011a21c88e
This commit is contained in:

committed by
Florin Coras

parent
2bc1af5578
commit
1c556d19d0
@ -707,16 +707,15 @@ start_workers (vlib_main_t * vm)
|
||||
clib_callback_data_init (&vm->vlib_node_runtime_perf_callbacks,
|
||||
&vm->worker_thread_main_loop_callback_lock);
|
||||
|
||||
/* Replace hand-crafted length-1 vector with a real vector */
|
||||
vlib_mains = 0;
|
||||
|
||||
vec_validate_aligned (vlib_mains, n_vlib_mains - 1, CLIB_CACHE_LINE_BYTES);
|
||||
_vec_len (vlib_mains) = 0;
|
||||
vec_add1_aligned (vlib_mains, vm, CLIB_CACHE_LINE_BYTES);
|
||||
|
||||
if (n_vlib_mains > 1)
|
||||
{
|
||||
/* Replace hand-crafted length-1 vector with a real vector */
|
||||
vlib_mains = 0;
|
||||
|
||||
vec_validate_aligned (vlib_mains, tm->n_vlib_mains - 1,
|
||||
CLIB_CACHE_LINE_BYTES);
|
||||
_vec_len (vlib_mains) = 0;
|
||||
vec_add1_aligned (vlib_mains, vm, CLIB_CACHE_LINE_BYTES);
|
||||
|
||||
vlib_worker_threads->wait_at_barrier =
|
||||
clib_mem_alloc_aligned (sizeof (u32), CLIB_CACHE_LINE_BYTES);
|
||||
vlib_worker_threads->workers_at_barrier =
|
||||
|
Reference in New Issue
Block a user