vppinfra: allow handoff to main thread 95/28895/1
authorDamjan Marion <damarion@cisco.com>
Thu, 17 Sep 2020 07:54:07 +0000 (09:54 +0200)
committerDamjan Marion <damarion@cisco.com>
Thu, 17 Sep 2020 07:54:56 +0000 (09:54 +0200)
Type: improvement
Change-Id: If2e907967c9b75997b581ff0c058bd5c15e823f5
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/vlib/main.c

index 912f5a5..8b5611a 100644 (file)
@@ -1773,28 +1773,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;
+         u32 processed = 0;
 
-             if (vm->check_frame_queues)
-               {
-                 frame_queue_check_counter = 100;
-                 vm->check_frame_queues = 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);
+         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--;
-           }
+         /* 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)))