histograms: add function to merge histograms
Signed-off-by: Piotr Pelplinski <piotr.pelplinski@intel.com> Change-Id: I75f737a7e0a5490eeb183e6fa922fa8e17d30268 Reviewed-on: https://review.gerrithub.io/432558 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
84c168fa65
commit
a3f7d8aa4d
@ -106,6 +106,12 @@ __spdk_histogram_get_count(const struct spdk_histogram_data *h, uint32_t range,
|
||||
return h->bucket[(range << SPDK_HISTOGRAM_BUCKET_SHIFT(h)) + index];
|
||||
}
|
||||
|
||||
static inline uint64_t *
|
||||
__spdk_histogram_get_bucket(const struct spdk_histogram_data *h, uint32_t range, uint32_t index)
|
||||
{
|
||||
return &h->bucket[(range << SPDK_HISTOGRAM_BUCKET_SHIFT(h)) + index];
|
||||
}
|
||||
|
||||
static inline void
|
||||
spdk_histogram_data_reset(struct spdk_histogram_data *histogram)
|
||||
{
|
||||
@ -203,6 +209,17 @@ spdk_histogram_data_iterate(const struct spdk_histogram_data *histogram,
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
spdk_histogram_data_merge(const struct spdk_histogram_data *dst,
|
||||
const struct spdk_histogram_data *src)
|
||||
{
|
||||
uint64_t i;
|
||||
|
||||
for (i = 0; i < SPDK_HISTOGRAM_NUM_BUCKETS(dst); i++) {
|
||||
dst->bucket[i] += src->bucket[i];
|
||||
}
|
||||
}
|
||||
|
||||
static inline struct spdk_histogram_data *
|
||||
spdk_histogram_data_alloc_sized(uint32_t bucket_shift)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user