Mon, Feb 22, 2021 at 10:02:08PM CET, pgagne(a)redhat.com wrote:
>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.
I'm pretty sure this should be documented. Either directly in the code
or in the patch description.
> 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
_______________________________________________
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