/* If the user requested a NUMA heap, create it... */
if (tm->numa_heap_size)
{
- numa_heap = clib_mem_init_thread_safe_numa
- (0 /* DIY */ , tm->numa_heap_size, w->numa_id);
+ clib_mem_set_numa_affinity (w->numa_id, 1 /* force */ );
+ numa_heap = clib_mem_create_heap (0 /* DIY */ , tm->numa_heap_size,
+ 1 /* is_locked */ ,
+ "numa %u heap", w->numa_id);
+ clib_mem_set_default_numa_affinity ();
mm->per_numa_mheaps[w->numa_id] = numa_heap;
}
else
clib_callback_data_init (&vm->vlib_node_runtime_perf_callbacks,
&vm->worker_thread_main_loop_callback_lock);
- if (n_vlib_mains > 1)
- {
- /* Replace hand-crafted length-1 vector with a real vector */
- vlib_mains = 0;
+ /* 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);
+ 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)
+ {
vlib_worker_threads->wait_at_barrier =
clib_mem_alloc_aligned (sizeof (u32), CLIB_CACHE_LINE_BYTES);
vlib_worker_threads->workers_at_barrier =