From bd0cf4ce9c30c8aae9b7a96cf9c8ea073cd9a548 Mon Sep 17 00:00:00 2001 From: Pierrick Louin Date: Sun, 8 Nov 2020 21:49:49 +0100 Subject: NFVBENCH-192: Complete/fix hdrh related processings to consider all cases (multiple service chains, distribution n/a with intel VFs) Signed-off-by: Pierrick Louin Change-Id: I80e38601292a7777d37ed05959c8ef205505c2ac --- nfvbench/packet_stats.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'nfvbench/packet_stats.py') diff --git a/nfvbench/packet_stats.py b/nfvbench/packet_stats.py index d6b9a68..d3ec78a 100644 --- a/nfvbench/packet_stats.py +++ b/nfvbench/packet_stats.py @@ -239,18 +239,21 @@ class PacketPathStats(object): results = {'lat_min_usec': latency.min_usec, 'lat_max_usec': latency.max_usec, 'lat_avg_usec': latency.avg_usec} - if latency.hdrh: + if latency.hdrh_available(): results['hdrh'] = latency.hdrh decoded_histogram = HdrHistogram.decode(latency.hdrh) - # override min max and avg from hdrh - results['lat_min_usec'] = decoded_histogram.get_min_value() - results['lat_max_usec'] = decoded_histogram.get_max_value() - results['lat_avg_usec'] = decoded_histogram.get_mean_value() results['lat_percentile'] = {} - for percentile in self.config.lat_percentiles: - results['lat_percentile'][percentile] = decoded_histogram.\ - get_value_at_percentile(percentile) - + # override min max and avg from hdrh (only if histogram is valid) + if decoded_histogram.get_total_count() != 0: + results['lat_min_usec'] = decoded_histogram.get_min_value() + results['lat_max_usec'] = decoded_histogram.get_max_value() + results['lat_avg_usec'] = decoded_histogram.get_mean_value() + for percentile in self.config.lat_percentiles: + results['lat_percentile'][percentile] = decoded_histogram.\ + get_value_at_percentile(percentile) + else: + for percentile in self.config.lat_percentiles: + results['lat_percentile'][percentile] = 'n/a' else: results = {} results['packets'] = counters -- cgit 1.2.3-korg