X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fgenerator_plots.py;h=869d2ca21e2b60d2f2fa62dd545a5fce0cab27d5;hb=6b33c89d362623dd46f3a14c497835de6f669101;hp=b828b3c71d515cd2e9eb8dc078026b798367036c;hpb=8a5fee0d46f405a5e7838a99f25862f49b0c8192;p=csit.git
diff --git a/resources/tools/presentation/generator_plots.py b/resources/tools/presentation/generator_plots.py
index b828b3c71d..869d2ca21e 100644
--- a/resources/tools/presentation/generator_plots.py
+++ b/resources/tools/presentation/generator_plots.py
@@ -380,54 +380,66 @@ def plot_perf_box_name(plot, input_data):
multiplier = 1.0
y_vals = OrderedDict()
test_type = u""
- for job in data:
- for build in job:
- for test in build:
- if y_vals.get(test[u"parent"], None) is None:
- y_vals[test[u"parent"]] = list()
- try:
- if test[u"type"] in (u"NDRPDR", ):
- test_type = u"NDRPDR"
-
- if u"-pdr" in plot_title:
- ttype = u"PDR"
- elif u"-ndr" in plot_title:
- ttype = u"NDR"
- else:
- raise RuntimeError(
- u"Wrong title. No information about test type. "
- u"Add '-ndr' or '-pdr' to the test title."
- )
- y_vals[test[u"parent"]].append(
- test[value][ttype][u"LOWER"] * multiplier
- )
-
- elif test[u"type"] in (u"SOAK", ):
- y_vals[test[u"parent"]].\
- append(test[u"throughput"][u"LOWER"])
- test_type = u"SOAK"
+ 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
+ if y_vals.get(test[u"parent"], None) is None:
+ y_vals[test[u"parent"]] = list()
+ try:
+ if test[u"type"] in (u"NDRPDR", u"CPS"):
+ test_type = test[u"type"]
+
+ if u"-pdr" in plot_title:
+ ttype = u"PDR"
+ elif u"-ndr" in plot_title:
+ ttype = u"NDR"
+ else:
+ raise RuntimeError(
+ u"Wrong title. No information about test "
+ u"type. Add '-ndr' or '-pdr' to the test "
+ u"title."
+ )
- elif test[u"type"] in (u"HOSTSTACK", ):
- if u"LDPRELOAD" in test[u"tags"]:
y_vals[test[u"parent"]].append(
- float(test[u"result"][u"bits_per_second"]) / 1e3
+ test[value][ttype][u"LOWER"] * multiplier
)
- elif u"VPPECHO" in test[u"tags"]:
- y_vals[test[u"parent"]].append(
- (float(test[u"result"][u"client"][u"tx_data"])
- * 8 / 1e3) /
- ((float(test[u"result"][u"client"][u"time"]) +
- float(test[u"result"][u"server"][u"time"])) /
- 2)
- )
- test_type = u"HOSTSTACK"
- else:
- continue
+ elif test[u"type"] in (u"SOAK",):
+ y_vals[test[u"parent"]]. \
+ append(test[u"throughput"][u"LOWER"])
+ test_type = u"SOAK"
+
+ elif test[u"type"] in (u"HOSTSTACK",):
+ if u"LDPRELOAD" in test[u"tags"]:
+ y_vals[test[u"parent"]].append(
+ float(
+ test[u"result"][u"bits_per_second"]
+ ) / 1e3
+ )
+ elif u"VPPECHO" in test[u"tags"]:
+ y_vals[test[u"parent"]].append(
+ (float(
+ test[u"result"][u"client"][u"tx_data"]
+ ) * 8 / 1e3) /
+ ((float(
+ test[u"result"][u"client"][u"time"]
+ ) +
+ float(
+ test[u"result"][u"server"][u"time"])
+ ) / 2)
+ )
+ test_type = u"HOSTSTACK"
- except (KeyError, TypeError):
- y_vals[test[u"parent"]].append(None)
+ else:
+ continue
+
+ except (KeyError, TypeError):
+ y_vals[test[u"parent"]].append(None)
# Add None to the lists with missing data
max_len = 0
@@ -479,6 +491,8 @@ def plot_perf_box_name(plot, input_data):
if layout.get(u"title", None):
if test_type in (u"HOSTSTACK", ):
layout[u"title"] = f"Bandwidth: {layout[u'title']}"
+ elif test_type in (u"CPS", ):
+ layout[u"title"] = f"CPS: {layout[u'title']}"
else:
layout[u"title"] = f"Throughput: {layout[u'title']}"
if y_max:
@@ -536,37 +550,43 @@ def plot_tsa_name(plot, input_data):
multiplier = 1.0
y_vals = OrderedDict()
- for job in data:
- for build in job:
- for test in build:
- if y_vals.get(test[u"parent"], None) is None:
- y_vals[test[u"parent"]] = {
- u"1": list(),
- u"2": list(),
- u"4": list()
- }
- try:
- if test[u"type"] not in (u"NDRPDR",):
- continue
-
- if u"-pdr" in plot_title:
- ttype = u"PDR"
- elif u"-ndr" in plot_title:
- ttype = u"NDR"
- else:
- continue
-
- if u"1C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"1"]. \
- append(test[value][ttype][u"LOWER"] * multiplier)
- elif u"2C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"2"]. \
- append(test[value][ttype][u"LOWER"] * multiplier)
- elif u"4C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"4"]. \
- append(test[value][ttype][u"LOWER"] * multiplier)
- except (KeyError, TypeError):
- pass
+ 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 re.match(reg_ex, str(test_id).lower()):
+ if y_vals.get(test[u"parent"], None) is None:
+ y_vals[test[u"parent"]] = {
+ u"1": list(),
+ u"2": list(),
+ u"4": list()
+ }
+ try:
+ if test[u"type"] not in (u"NDRPDR", u"CPS"):
+ continue
+
+ if u"-pdr" in plot_title:
+ ttype = u"PDR"
+ elif u"-ndr" in plot_title:
+ ttype = u"NDR"
+ else:
+ continue
+
+ if u"1C" in test[u"tags"]:
+ y_vals[test[u"parent"]][u"1"].append(
+ test[value][ttype][u"LOWER"] * multiplier
+ )
+ elif u"2C" in test[u"tags"]:
+ y_vals[test[u"parent"]][u"2"].append(
+ test[value][ttype][u"LOWER"] * multiplier
+ )
+ elif u"4C" in test[u"tags"]:
+ y_vals[test[u"parent"]][u"4"].append(
+ test[value][ttype][u"LOWER"] * multiplier
+ )
+ except (KeyError, TypeError):
+ pass
if not y_vals:
logging.warning(f"No data for the plot {plot.get(u'title', u'')}")
@@ -586,7 +606,7 @@ def plot_tsa_name(plot, input_data):
y_max = list()
nic_limit = 0
lnk_limit = 0
- pci_limit = plot[u"limits"][u"pci"][u"pci-g3-x8"]
+ pci_limit = 0
for test_name, test_vals in y_vals.items():
try:
if test_vals[u"1"][1]:
@@ -670,49 +690,53 @@ def plot_tsa_name(plot, input_data):
if limit > lnk_limit:
lnk_limit = limit
+ if u"cx556a" in test_name:
+ limit = plot[u"limits"][u"pci"][u"pci-g3-x8"]
+ else:
+ limit = plot[u"limits"][u"pci"][u"pci-g3-x16"]
+ if limit > pci_limit:
+ pci_limit = limit
+
traces = list()
annotations = list()
x_vals = [1, 2, 4]
# Limits:
- if u"-gbps" not in plot_title:
- try:
- threshold = 1.1 * max(y_max) # 10%
- except ValueError as err:
- logging.error(err)
- return
+ if u"-gbps" not in plot_title and u"-cps-" not in plot_title:
nic_limit /= 1e6
- traces.append(plgo.Scatter(
- x=x_vals,
- y=[nic_limit, ] * len(x_vals),
- name=f"NIC: {nic_limit:.2f}Mpps",
- showlegend=False,
- mode=u"lines",
- line=dict(
- dash=u"dot",
- color=COLORS[-1],
- width=1),
- hoverinfo=u"none"
- ))
- annotations.append(dict(
- x=1,
- y=nic_limit,
- xref=u"x",
- yref=u"y",
- xanchor=u"left",
- yanchor=u"bottom",
- text=f"NIC: {nic_limit:.2f}Mpps",
- font=dict(
- size=14,
- color=COLORS[-1],
- ),
- align=u"left",
- showarrow=False
- ))
- y_max.append(nic_limit)
-
lnk_limit /= 1e6
- if lnk_limit < threshold:
+ pci_limit /= 1e6
+ min_limit = min((nic_limit, lnk_limit, pci_limit))
+ if nic_limit == min_limit:
+ traces.append(plgo.Scatter(
+ x=x_vals,
+ y=[nic_limit, ] * len(x_vals),
+ name=f"NIC: {nic_limit:.2f}Mpps",
+ showlegend=False,
+ mode=u"lines",
+ line=dict(
+ dash=u"dot",
+ color=COLORS[-1],
+ width=1),
+ hoverinfo=u"none"
+ ))
+ annotations.append(dict(
+ x=1,
+ y=nic_limit,
+ xref=u"x",
+ yref=u"y",
+ xanchor=u"left",
+ yanchor=u"bottom",
+ text=f"NIC: {nic_limit:.2f}Mpps",
+ font=dict(
+ size=14,
+ color=COLORS[-1],
+ ),
+ align=u"left",
+ showarrow=False
+ ))
+ y_max.append(nic_limit)
+ elif lnk_limit == min_limit:
traces.append(plgo.Scatter(
x=x_vals,
y=[lnk_limit, ] * len(x_vals),
@@ -741,10 +765,7 @@ def plot_tsa_name(plot, input_data):
showarrow=False
))
y_max.append(lnk_limit)
-
- pci_limit /= 1e6
- if (pci_limit < threshold and
- (pci_limit < lnk_limit * 0.95 or lnk_limit > lnk_limit * 1.05)):
+ elif pci_limit == min_limit:
traces.append(plgo.Scatter(
x=x_vals,
y=[pci_limit, ] * len(x_vals),