stats: memory heap counters
[vpp.git] / src / vlib / threads.c
index c65460e..499a626 100644 (file)
@@ -654,6 +654,7 @@ start_workers (vlib_main_t * vm)
   u32 n_vlib_mains = tm->n_vlib_mains;
   u32 worker_thread_index;
   clib_mem_heap_t *main_heap = clib_mem_get_per_cpu_heap ();
+  vlib_stats_register_mem_heap (main_heap);
 
   vec_reset_length (vlib_worker_threads);
 
@@ -1101,6 +1102,7 @@ vlib_worker_thread_node_refork (void)
 
          /* keep previous node state */
          new_n_clone->state = old_n_clone->state;
+         new_n_clone->flags = old_n_clone->flags;
        }
       vec_add1 (nm_clone->nodes, new_n_clone);
       new_n_clone++;
@@ -1132,6 +1134,7 @@ vlib_worker_thread_node_refork (void)
     {
       rt = vlib_node_get_runtime (vm_clone, old_rt[j].node_index);
       rt->state = old_rt[j].state;
+      rt->flags = old_rt[j].flags;
       clib_memcpy_fast (rt->runtime_data, old_rt[j].runtime_data,
                        VLIB_NODE_RUNTIME_DATA_SIZE);
     }
@@ -1162,6 +1165,7 @@ vlib_worker_thread_node_refork (void)
     {
       rt = vlib_node_get_runtime (vm_clone, old_rt[j].node_index);
       rt->state = old_rt[j].state;
+      rt->flags = old_rt[j].flags;
       clib_memcpy_fast (rt->runtime_data, old_rt[j].runtime_data,
                        VLIB_NODE_RUNTIME_DATA_SIZE);
     }
@@ -1189,6 +1193,7 @@ vlib_worker_thread_node_refork (void)
     {
       rt = vlib_node_get_runtime (vm_clone, old_rt[j].node_index);
       rt->state = old_rt[j].state;
+      rt->flags = old_rt[j].flags;
       clib_memcpy_fast (rt->runtime_data, old_rt[j].runtime_data,
                        VLIB_NODE_RUNTIME_DATA_SIZE);
     }