stats: fix per-worker stat vector length

Type: fix

Change-Id: I198a2312f5fc6e922c8a6c51ba7248ce6e236f81
Signed-off-by: Benoît Ganne <bganne@cisco.com>
(cherry picked from commit dba00cad1a2e41b4974911793cc76eab81a6e30e)
This commit is contained in:
Benoît Ganne 2019-09-30 12:39:55 +02:00 committed by Ole Trøan
parent 6af2886a08
commit b7c4a5c76f

View File

@ -558,13 +558,14 @@ do_stat_segment_updates (stat_segment_main_t * sm)
if (PREDICT_FALSE (num_worker_threads_set == 0))
{
void *oldheap = clib_mem_set_heap (sm->heap);
int workers = clib_max (1, vec_len (vlib_mains) - 1);
vlib_stat_segment_lock ();
sm->directory_vector[STAT_COUNTER_NUM_WORKER_THREADS].value =
vec_len (vlib_mains) > 1 ? vec_len (vlib_mains) - 1 : 1;
sm->directory_vector[STAT_COUNTER_NUM_WORKER_THREADS].value = workers;
stat_validate_counter_vector (&sm->directory_vector
[STAT_COUNTER_VECTOR_RATE_PER_WORKER], 0);
[STAT_COUNTER_VECTOR_RATE_PER_WORKER],
workers);
num_worker_threads_set = 1;
vlib_stat_segment_unlock ();
clib_mem_set_heap (oldheap);