aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2021-02-23 11:57:27 +0100
committerTibor Frank <tifrank@cisco.com>2021-02-24 08:13:50 +0100
commit5f0782b8bd0db96a6496d55f44d157146b08de12 (patch)
tree536a4ef802dfc9ab04397cbd44e7f7c8e4f8f846
parent0d30d69d515130098eab5d21d8dd59c21400a433 (diff)
Report: Set .08 revision, fix GSO graphs
Change-Id: I5948dbaf69d183caddbefd16f2198b54a24ff904 Signed-off-by: Tibor Frank <tifrank@cisco.com>
-rw-r--r--docs/report/introduction/report_history.rst3
-rw-r--r--resources/tools/presentation/conf.py2
-rw-r--r--resources/tools/presentation/generator_plots.py91
-rw-r--r--resources/tools/presentation/input_data_parser.py1
-rwxr-xr-xresources/tools/presentation/run_report.sh2
-rw-r--r--resources/tools/presentation/specification.yaml45
6 files changed, 118 insertions, 26 deletions
diff --git a/docs/report/introduction/report_history.rst b/docs/report/introduction/report_history.rst
index 29cbf11ae2..191ce28bdc 100644
--- a/docs/report/introduction/report_history.rst
+++ b/docs/report/introduction/report_history.rst
@@ -7,6 +7,9 @@ below.
+----------------+------------------------------------------------------------+
| .[ww] Revision | Changes |
+================+============================================================+
+| .08 | Added GSO tests |
+| | |
++----------------+------------------------------------------------------------+
| .07 | Initial revision |
+----------------+------------------------------------------------------------+
diff --git a/resources/tools/presentation/conf.py b/resources/tools/presentation/conf.py
index dcfd8d6ed9..ba6f947e1b 100644
--- a/resources/tools/presentation/conf.py
+++ b/resources/tools/presentation/conf.py
@@ -46,7 +46,7 @@ source_suffix = [u'.rst', u'.md']
master_doc = u'index'
# General information about the project.
-report_week = u'07'
+report_week = u'08'
project = u'FD.io CSIT-2101.{week}'.format(week=report_week)
copyright = u'2021, FD.io'
author = u'FD.io CSIT'
diff --git a/resources/tools/presentation/generator_plots.py b/resources/tools/presentation/generator_plots.py
index 11892a7f7e..4bdb84739f 100644
--- a/resources/tools/presentation/generator_plots.py
+++ b/resources/tools/presentation/generator_plots.py
@@ -83,7 +83,8 @@ def generate_plots(spec, data):
u"plot_nf_heatmap": plot_nf_heatmap,
u"plot_hdrh_lat_by_percentile": plot_hdrh_lat_by_percentile,
u"plot_hdrh_lat_by_percentile_x_log": plot_hdrh_lat_by_percentile_x_log,
- u"plot_mrr_error_bars_name": plot_mrr_error_bars_name
+ u"plot_mrr_error_bars_name": plot_mrr_error_bars_name,
+ u"plot_mrr_box_name": plot_mrr_box_name
}
logging.info(u"Generating the plots ...")
@@ -699,6 +700,94 @@ def plot_perf_box_name(plot, input_data):
return
+def plot_mrr_box_name(plot, input_data):
+ """Generate the plot(s) with algorithm: plot_mrr_box_name
+ specified in the specification file.
+
+ :param plot: Plot to generate.
+ :param input_data: Data to process.
+ :type plot: pandas.Series
+ :type input_data: InputData
+ """
+
+ # Transform the data
+ logging.info(
+ f" Creating data set for the {plot.get(u'type', u'')} "
+ f"{plot.get(u'title', u'')}."
+ )
+ data = input_data.filter_tests_by_name(
+ plot,
+ params=[u"result", u"parent", u"tags", u"type"])
+ if data is None:
+ logging.error(u"No data.")
+ return
+
+ # Prepare the data for the plot
+ data_x = list()
+ data_names = list()
+ data_y = list()
+ data_y_max = list()
+ idx = 1
+ for item in plot.get(u"include", tuple()):
+ reg_ex = re.compile(str(item).lower())
+ for job in data:
+ for build in job:
+ for test_id, test in build.iteritems():
+ if not re.match(reg_ex, str(test_id).lower()):
+ continue
+ try:
+ data_x.append(idx)
+ name = re.sub(REGEX_NIC, u'', test[u'parent'].lower().
+ replace(u'-mrr', u'').
+ replace(u'2n1l-', u''))
+ data_y.append(test[u"result"][u"samples"])
+ data_names.append(
+ f"{idx}."
+ f"({len(data_y[-1]):02d} "
+ f"run{u's' if len(data_y[-1]) > 1 else u''}) "
+ f"{name}"
+ )
+ data_y_max.append(max(test[u"result"][u"samples"]))
+ idx += 1
+ except (KeyError, TypeError):
+ pass
+
+ # Add plot traces
+ traces = list()
+ for idx in range(len(data_x)):
+ traces.append(
+ plgo.Box(
+ x=[data_x[idx], ] * len(data_y[idx]),
+ y=data_y[idx],
+ name=data_names[idx],
+ hoverinfo=u"y+name"
+ )
+ )
+
+ try:
+ # Create plot
+ layout = deepcopy(plot[u"layout"])
+ if layout.get(u"title", None):
+ layout[u"title"] = f"<b>Throughput:</b> {layout[u'title']}"
+ if data_y_max:
+ layout[u"yaxis"][u"range"] = [0, max(data_y_max) + 1]
+ plpl = plgo.Figure(data=traces, layout=layout)
+
+ # Export Plot
+ logging.info(f" Writing file {plot[u'output-file']}.html.")
+ ploff.plot(
+ plpl,
+ show_link=False,
+ auto_open=False,
+ filename=f"{plot[u'output-file']}.html"
+ )
+ except PlotlyError as err:
+ logging.error(
+ f" Finished with error: {repr(err)}".replace(u"\n", u" ")
+ )
+ return
+
+
def plot_mrr_error_bars_name(plot, input_data):
"""Generate the plot(s) with algorithm: plot_mrr_error_bars_name
specified in the specification file.
diff --git a/resources/tools/presentation/input_data_parser.py b/resources/tools/presentation/input_data_parser.py
index 6742439be6..cc98bb702f 100644
--- a/resources/tools/presentation/input_data_parser.py
+++ b/resources/tools/presentation/input_data_parser.py
@@ -1182,6 +1182,7 @@ class ExecutionChecker(ResultVisitor):
]
# Use whole list in CSIT-1180.
stats = jumpavg.AvgStdevStats.for_runs(items_float)
+ test_result[u"result"][u"samples"] = items_float
test_result[u"result"][u"receive-rate"] = stats.avg
test_result[u"result"][u"receive-stdev"] = stats.stdev
else:
diff --git a/resources/tools/presentation/run_report.sh b/resources/tools/presentation/run_report.sh
index cac3cdc881..181d9db647 100755
--- a/resources/tools/presentation/run_report.sh
+++ b/resources/tools/presentation/run_report.sh
@@ -38,7 +38,7 @@ export PYTHONPATH=`pwd`:`pwd`/../../../:`pwd`/../../libraries/python
python pal.py \
--specification specification.yaml \
--release ${RELEASE} \
- --week "07" \
+ --week "08" \
--logging INFO \
--force
diff --git a/resources/tools/presentation/specification.yaml b/resources/tools/presentation/specification.yaml
index 669d13fde2..72afd35297 100644
--- a/resources/tools/presentation/specification.yaml
+++ b/resources/tools/presentation/specification.yaml
@@ -2487,7 +2487,7 @@
size: 14
zeroline: False
yaxis:
- title: "<b>Packet Throughput [Gbps]</b>"
+ title: "<b>Data Throughput [Gbps]</b>"
titlefont:
size: 14
gridcolor: "rgb(230, 230, 230)"
@@ -3106,7 +3106,7 @@
size: 14
zeroline: False
yaxis:
- title: "<b>Traffic Throughput [Gbps]</b>"
+ title: "<b>Data Throughput [Gbps]</b>"
titlefont:
size: 14
gridcolor: "rgb(230, 230, 230)"
@@ -3293,7 +3293,6 @@
- 35 # rls2101.rel NDRPDR cov env 6 3n-hsw-vhost-01
- 36 # rls2101.rel NDRPDR cov env 6 3n-hsw-vhost-02
-
csit-vpp-perf-report-iterative-2009-3n-skx:
- 17 # rls2005 MRR iter env 5
- 13 # rls2005 NDRPDR iter env 5
@@ -4126,8 +4125,8 @@
format:
html:
- full
-# pdf:
-# - minimal
+ pdf:
+ - minimal
################################################################################
### T A B L E S ###
@@ -25642,7 +25641,7 @@
- type: "plot"
title: "Throughput: 2n-skx-128kb-1t1c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-skx-128kb-1t1c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-skx"
include:
@@ -25652,11 +25651,11 @@
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-1t1c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-skx-128kb-1t1c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-skx-128kb-2t2c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-skx-128kb-2t2c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-skx"
include:
@@ -25666,11 +25665,11 @@
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-2t2c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-skx-128kb-2t2c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-skx-128kb-4t4c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-skx-128kb-4t4c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-skx"
include:
@@ -25680,11 +25679,11 @@
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-4t4c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-skx-128kb-4t4c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-clx-128kb-1t1c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-clx-128kb-1t1c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-clx"
include:
@@ -25694,11 +25693,11 @@
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-1t1c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-clx-128kb-1t1c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-clx-128kb-2t2c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-clx-128kb-2t2c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-clx"
include:
@@ -25708,11 +25707,11 @@
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-2t2c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-clx-128kb-2t2c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-clx-128kb-4t4c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-clx-128kb-4t4c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-clx"
include:
@@ -25722,11 +25721,11 @@
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-4t4c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-clx-128kb-4t4c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-zn2-128kb-1t1c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-zn2-128kb-1t1c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-zn2"
include:
@@ -25736,11 +25735,11 @@
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-1t1c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-zn2-128kb-1t1c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-zn2-128kb-2t2c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-zn2-128kb-2t2c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-zn2"
include:
@@ -25750,11 +25749,11 @@
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-2t2c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-zn2-128kb-2t2c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-zn2-128kb-4t4c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-zn2-128kb-4t4c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-zn2"
include:
@@ -25764,4 +25763,4 @@
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-4t4c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-zn2-128kb-4t4c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"