Change-Id: I3a33fb81f31ed473811e9e7a6197b81135913865
Signed-off-by: Damjan Marion <damarion@cisco.com>
if (!nm->interrupt_threshold_vector_length)
nm->interrupt_threshold_vector_length = 5;
if (!nm->interrupt_threshold_vector_length)
nm->interrupt_threshold_vector_length = 5;
+ vm->cpu_id = clib_get_current_cpu_id ();
+ vm->numa_node = clib_get_current_numa_node ();
+
/* Start all processes. */
if (is_main)
{
/* Start all processes. */
if (is_main)
{
{
vlib_node_runtime_t *n;
{
vlib_node_runtime_t *n;
- if (PREDICT_FALSE (vm->cpu_id != clib_get_current_cpu_id ()))
- {
- vm->cpu_id = clib_get_current_cpu_id ();
- vm->numa_node = clib_get_current_numa_node ();
- }
-
if (PREDICT_FALSE (_vec_len (vm->pending_rpc_requests) > 0))
{
if (!is_main)
if (PREDICT_FALSE (_vec_len (vm->pending_rpc_requests) > 0))
{
if (!is_main)
ASSERT (vm->thread_index == vlib_get_thread_index ());
ASSERT (vm->thread_index == vlib_get_thread_index ());
vlib_worker_thread_init (w);
clib_time_init (&vm->clib_time);
clib_mem_set_heap (w->thread_mheap);
vlib_worker_thread_init (w);
clib_time_init (&vm->clib_time);
clib_mem_set_heap (w->thread_mheap);
em->epoll_events,
vec_len (em->epoll_events), timeout_ms);
}
em->epoll_events,
vec_len (em->epoll_events), timeout_ms);
}
}
else
{
if (timeout_ms)
usleep (timeout_ms * 1000);
}
else
{
if (timeout_ms)
usleep (timeout_ms * 1000);
vlib_panic_with_error (vm, clib_error_return_unix (0, "epoll_wait"));
/* non fatal error (e.g. EINTR). */
vlib_panic_with_error (vm, clib_error_return_unix (0, "epoll_wait"));
/* non fatal error (e.g. EINTR). */
+done:
+ if (PREDICT_FALSE (vm->cpu_id != clib_get_current_cpu_id ()))
+ {
+ vm->cpu_id = clib_get_current_cpu_id ();
+ vm->numa_node = clib_get_current_numa_node ();
+ }
+
__os_thread_index = 0;
vm->thread_index = 0;
__os_thread_index = 0;
vm->thread_index = 0;
i = clib_calljmp (thread0, (uword) vm,
(void *) (vlib_thread_stacks[0] +
i = clib_calljmp (thread0, (uword) vm,
(void *) (vlib_thread_stacks[0] +