vlib: fix initial stats time for the process nodes 45/40445/2
authorVladislav Grishenko <themiron@yandex-team.ru>
Wed, 14 Jul 2021 13:16:02 +0000 (18:16 +0500)
committerDamjan Marion <dmarion@0xa5.net>
Tue, 5 Mar 2024 18:49:49 +0000 (18:49 +0000)
Uninitialized stats time for new dynamic processes (like unix
cli) leads to invalid and too high clocks diff, breaking the
stats collecting.

  $ sudo vppctl sh runtime | grep unix
  unix-cli-new-session  any wait      0  0  30   2.72e3  0.00
  unix-cli-process-0      active     14  0  27  3.73e15  0.00
  unix-epoll-input       polling   6464  0   0   3.56e6  0.00
  unix-epoll-input       polling  68360  0   0   1.31e3  0.00

Type: fix
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
Change-Id: Ic70678b67a3fb3f78ed4a1a03077ae243ed5d7cd

src/vlib/main.c

index 6d91db7..5f070f6 100644 (file)
@@ -1354,7 +1354,8 @@ vlib_start_process (vlib_main_t * vm, uword process_index)
 {
   vlib_node_main_t *nm = &vm->node_main;
   vlib_process_t *p = vec_elt (nm->processes, process_index);
-  dispatch_process (vm, p, /* frame */ 0, /* cpu_time_now */ 0);
+  u64 cpu_time_now = clib_cpu_time_now ();
+  dispatch_process (vm, p, /* frame */ 0, cpu_time_now);
 }
 
 static u64