X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp-api%2Fclient%2Fstat_client.c;h=0eaec15ffb6c6416300000fcc0d2ec116ad7a447;hb=3ffe6cadf;hp=a386eec30c3afec3983014ab22da1dac3f87a2c3;hpb=cbb8f589638c2634b44ee2de24c76696f983645a;p=vpp.git diff --git a/src/vpp-api/client/stat_client.c b/src/vpp-api/client/stat_client.c index a386eec30c3..0eaec15ffb6 100644 --- a/src/vpp-api/client/stat_client.c +++ b/src/vpp-api/client/stat_client.c @@ -182,6 +182,9 @@ stat_segment_access_start (stat_segment_access_t * sa, sa->epoch = shared_header->epoch; while (shared_header->in_progress != 0) ; + sm->directory_vector = stat_segment_pointer (sm->shared_header, + sm-> + shared_header->directory_offset); } static bool @@ -231,7 +234,6 @@ copy_data (stat_segment_directory_entry_t * ep, stat_client_main_t * sm) int i; vlib_counter_t **combined_c; /* Combined counter */ counter_t **simple_c; /* Simple counter */ - counter_t *error_base; uint64_t *offset_vector; assert (sm->shared_header); @@ -275,10 +277,16 @@ copy_data (stat_segment_directory_entry_t * ep, stat_client_main_t * sm) break; case STAT_DIR_TYPE_ERROR_INDEX: - error_base = - stat_segment_pointer (sm->shared_header, - sm->shared_header->error_offset); - result.error_value = error_base[ep->index]; + /* Gather errors from all threads into a vector */ + offset_vector = stat_segment_pointer (sm->shared_header, + sm->shared_header->error_offset); + vec_validate (result.error_vector, vec_len (offset_vector) - 1); + for (i = 0; i < vec_len (offset_vector); i++) + { + counter_t *cb = + stat_segment_pointer (sm->shared_header, offset_vector[i]); + result.error_vector[i] = cb[ep->index]; + } break; case STAT_DIR_TYPE_NAME_VECTOR: @@ -504,6 +512,20 @@ stat_segment_index_to_name (uint32_t index) return stat_segment_index_to_name_r (index, sm); } +uint64_t +stat_segment_version_r (stat_client_main_t * sm) +{ + ASSERT (sm->shared_header); + return sm->shared_header->version; +} + +uint64_t +stat_segment_version (void) +{ + stat_client_main_t *sm = &stat_client_main; + return stat_segment_version_r (sm); +} + /* * fd.io coding-style-patch-verification: ON *