From: Perry Gagne <pgagne(a)redhat.com>
When ShortLivedConnectionsRecipe was originally ported to LNST next it was trying to use
iPerf
However, iperf does not support Request/Response (RR) style tests.
The lnst-legacy version used netperf, which did support RR tests, but we wanted to use a
different tool
that was easier to wrap.
This patch creates a new super class LatencyEnrtRecipe that uses the
Neper (
https://github.com/google/neper) support from earlier patches.
ShortLivedConnectionsRecipe is a implementation of this class.
Signed-off-by: Perry Gagne <pgagne(a)redhat.com>
---
lnst/Recipes/ENRT/LatencyEnrtRecipe.py | 47 +++++++++++++++++++
.../ENRT/ShortLivedConnectionsRecipe.py | 8 ++--
2 files changed, 51 insertions(+), 4 deletions(-)
create mode 100644 lnst/Recipes/ENRT/LatencyEnrtRecipe.py
diff --git a/lnst/Recipes/ENRT/LatencyEnrtRecipe.py
b/lnst/Recipes/ENRT/LatencyEnrtRecipe.py
new file mode 100644
index 0000000..765ab29
--- /dev/null
+++ b/lnst/Recipes/ENRT/LatencyEnrtRecipe.py
@@ -0,0 +1,47 @@
+from lnst.Recipes.ENRT.BaseEnrtRecipe import BaseEnrtRecipe
+from lnst.Recipes.ENRT.PerfTestMixins import CommonPerfTestTweakMixin
+from lnst.Recipes.ENRT.ConfigMixins.DisableTurboboostMixin import (
+ DisableTurboboostMixin,
+)
+from lnst.Recipes.ENRT.ConfigMixins.DisableIdleStatesMixin import (
+ DisableIdleStatesMixin,
+)
+
+from lnst.Recipes.ENRT.MeasurementGenerators.NeperMeasurementGenerator import (
+ NeperMeasurementGenerator,
+)
+from lnst.Recipes.ENRT.MeasurementGenerators.FlowEndpointsStatCPUMeasurementGenerator
import (
+ FlowEndpointsStatCPUMeasurementGenerator,
+)
+
+class LatencyEnrtRecipe(
+ CommonPerfTestTweakMixin,
+ DisableTurboboostMixin,
+ DisableIdleStatesMixin,
+ FlowEndpointsStatCPUMeasurementGenerator,
+ NeperMeasurementGenerator,
+ BaseEnrtRecipe,
+):
+ @property
+ def disable_idlestates_host_list(self):
+ """
+ The `disable_idlestates_host_list` property value is the list of all
+ matched baremetal hosts for the recipe.
+
+ For detailed explanation of this property see
+ :any:`DisableIdleStatesMixin` and
+ :any:`DisableIdleStatesMixin.disable_idlestates_host_list`.
+ """
+ return self.matched
+
+ @property
+ def disable_turboboost_host_list(self):
+ """
+ The `disable_turboboost_host_list` property value is the list of all
+ matched baremetal hosts for the recipe.
+
+ For detailed explanation of this property see
+ :any:`DisableTurboboostMixin` and
+ :any:`DisableTurboboostMixin.disable_turboboost_host_list`.
+ """
+ return self.matched
diff --git a/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py
b/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py
index 5323672..8cada01 100644
--- a/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py
+++ b/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py
@@ -1,20 +1,20 @@
from lnst.Common.IpAddress import ipaddress
from lnst.Controller import HostReq, DeviceReq, RecipeParam
-from lnst.Recipes.ENRT.BaremetalEnrtRecipe import BaremetalEnrtRecipe
+from lnst.Recipes.ENRT.LatencyEnrtRecipe import LatencyEnrtRecipe
from lnst.Common.Parameters import Param, IntParam, ListParam
from lnst.Recipes.ENRT.ConfigMixins.CommonHWSubConfigMixin import (
CommonHWSubConfigMixin)
-class ShortLivedConnectionsRecipe(CommonHWSubConfigMixin, BaremetalEnrtRecipe):
+class ShortLivedConnectionsRecipe(CommonHWSubConfigMixin, LatencyEnrtRecipe):
host1 = HostReq()
host1.eth0 = DeviceReq(label="to_switch",
driver=RecipeParam("driver"))
host2 = HostReq()
host2.eth0 = DeviceReq(label="to_switch",
driver=RecipeParam("driver"))
- perf_tests = Param(default=("TCP_RR", "TCP_CRR"))
+ perf_tests = Param(default=("tcp_rr", "tcp_crr",
"udp_rr"))
ip_versions = Param(default=("ipv4",))
- perf_parallel_streams = IntParam(default=2)
+ #perf_parallel_streams = IntParam(default=2)
If this is a temporary removal due to issues with parallelism of neper,
please add a TODO or some comment in the code that helps with understanding
this change.
perf_msg_sizes = ListParam(default=[1000, 5000, 7000, 10000,
12000])
def test_wide_configuration(self):
--
2.26.2
_______________________________________________
LNST-developers mailing list -- lnst-developers(a)lists.fedorahosted.org
To unsubscribe send an email to lnst-developers-leave(a)lists.fedorahosted.org
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedorahosted.org/archives/list/lnst-developers@lists.fedora...
Do not reply to spam on the list, report it:
https://pagure.io/fedora-infrastructure