vppinfra: allow handoff to main thread

Type: improvement
Change-Id: If2e907967c9b75997b581ff0c058bd5c15e823f5
Signed-off-by: Damjan Marion <damarion@cisco.com>
(cherry picked from commit f6e6c78807)
This commit is contained in:
Damjan Marion
2020-09-17 09:54:07 +02:00
committed by Andrew Yourtchenko
parent cc4f3d9102
commit dccf863d79

View File

@ -1771,28 +1771,26 @@ vlib_main_or_worker_loop (vlib_main_t * vm, int is_main)
}
if (!is_main)
vlib_worker_thread_barrier_check ();
if (PREDICT_FALSE (vm->check_frame_queues + frame_queue_check_counter))
{
vlib_worker_thread_barrier_check ();
if (PREDICT_FALSE (vm->check_frame_queues +
frame_queue_check_counter))
u32 processed = 0;
if (vm->check_frame_queues)
{
u32 processed = 0;
if (vm->check_frame_queues)
{
frame_queue_check_counter = 100;
vm->check_frame_queues = 0;
}
vec_foreach (fqm, tm->frame_queue_mains)
processed += vlib_frame_queue_dequeue (vm, fqm);
/* No handoff queue work found? */
if (processed)
frame_queue_check_counter = 100;
else
frame_queue_check_counter--;
frame_queue_check_counter = 100;
vm->check_frame_queues = 0;
}
vec_foreach (fqm, tm->frame_queue_mains)
processed += vlib_frame_queue_dequeue (vm, fqm);
/* No handoff queue work found? */
if (processed)
frame_queue_check_counter = 100;
else
frame_queue_check_counter--;
}
if (PREDICT_FALSE (vec_len (vm->worker_thread_main_loop_callbacks)))