[PATCH v2 0/6] add per-iteration perf_test tweaks
by Jan Tluka
This patchset modifies the current implementation of the performance test
tweaks.
Before the patch set the user was unable to add performance test tweaks
on per iteration basis. It was only possible to add/remove tweaks
before/after the whole set of the performance test measurement iterations.
The patchset adds BasePerfTestIterationTweakMixin to RecipeCommon.Perf.Recipe
that provides a common API for that. The actual tasks to be performed
before/after each iteration needs to be defined by a specific mixin
class.
In the same manner the already existing BasePerfTestTweakMixin has been
moved to RecipeCommon.Perf.Recipe to have both APIs at the same place.
Jan Tluka (6):
RecipeCommon.Perf.PerfTestMixins: add BasePerfTestIterationTweakMixin
RecipeCommon.Perf.Recipe: add per-iteration tweaks using
BasePerfTestIterationTweakMixin
lnst.Recipes.ENRT.PerfTestMixins: move BasePerfTestTweakMixin to
RecipeCommon
RecipeCommon.Perf.PerfTestMixins.BasePerfTestTweakMixin: move
get_flow_measurement_from_config to standalone function
lnst.Recipes.ENRT.PerfTestMixins: add DropCachesPerfTestMixin
Recipes.ENRT.PerfTestMixins: extend CommonPerfTestTweakMixin with
DropCachesMixin
.../BasePerfTestIterationTweakMixin.py | 18 +++++++++
.../PerfTestMixins/BasePerfTestTweakMixin.py | 6 ---
lnst/RecipeCommon/Perf/Recipe.py | 30 ++++++++++++--
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 9 +----
.../CommonPerfTestTweakMixin.py | 3 +-
.../PerfTestMixins/DropCachesPerfTestMixin.py | 39 +++++++++++++++++++
.../SctpFirewallPerfTestMixin.py | 11 +++---
lnst/Recipes/ENRT/PerfTestMixins/Utils.py | 5 +++
lnst/Recipes/ENRT/PerfTestMixins/__init__.py | 2 +-
9 files changed, 100 insertions(+), 23 deletions(-)
create mode 100644 lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestIterationTweakMixin.py
rename lnst/{Recipes/ENRT => RecipeCommon/Perf}/PerfTestMixins/BasePerfTestTweakMixin.py (63%)
create mode 100644 lnst/Recipes/ENRT/PerfTestMixins/DropCachesPerfTestMixin.py
create mode 100644 lnst/Recipes/ENRT/PerfTestMixins/Utils.py
--
2.21.3
3 months, 3 weeks
[PATCH 0/6] add per-iteration perf_test tweaks
by Jan Tluka
This patchset modifies the current implementation of the performance test
tweaks.
Before the patch set the user was unable to add performance test tweaks
on per iteration basis. It was only possible to add/remove tweaks
before/after the whole set of the performance test measurement iterations.
The patchset adds BasePerfTestIterationTweakMixin to RecipeCommon.Perf.Recipe
that provides a common API for that. The actual tasks to be performed
before/after each iteration needs to be defined by a specific mixin
class.
In the same manner the already existing BasePerfTestTweakMixin has been
moved to RecipeCommon.Perf.Recipe to have both APIs at the same place.
Jan Tluka (6):
RecipeCommon.Perf.PerfTestMixins: add BasePerfTestIterationTweakMixin
RecipeCommon.Perf.Recipe: add per-iteration tweaks using
BasePerfTestIterationTweakMixin
lnst.Recipes.ENRT.PerfTestMixins: move BasePerfTestTweakMixin to
RecipeCommon
RecipeCommon.Perf.PerfTestMixins.BasePerfTestTweakMixin: move
get_flow_measurements_from_config to standalone function
lnst.Recipes.ENRT.PerfTestMixins: add DropCachesPerfTestMixin
Recipes.ENRT.PerfTestMixins: extend CommonPerfTestTweakMixin with
DropCachesMixin
.../BasePerfTestIterationTweakMixin.py | 18 ++++++++
.../PerfTestMixins/BasePerfTestTweakMixin.py | 6 ---
lnst/RecipeCommon/Perf/Recipe.py | 41 ++++++++++++++-----
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 9 +---
.../CommonPerfTestTweakMixin.py | 3 +-
.../PerfTestMixins/DropCachesPerfTestMixin.py | 36 ++++++++++++++++
.../SctpFirewallPerfTestMixin.py | 7 ++--
lnst/Recipes/ENRT/PerfTestMixins/Utils.py | 5 +++
lnst/Recipes/ENRT/PerfTestMixins/__init__.py | 2 +-
9 files changed, 99 insertions(+), 28 deletions(-)
create mode 100644 lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestIterationTweakMixin.py
rename lnst/{Recipes/ENRT => RecipeCommon/Perf}/PerfTestMixins/BasePerfTestTweakMixin.py (63%)
create mode 100644 lnst/Recipes/ENRT/PerfTestMixins/DropCachesPerfTestMixin.py
create mode 100644 lnst/Recipes/ENRT/PerfTestMixins/Utils.py
--
2.21.3
4 months
[PATCH] README.md: Adding Perry as contributor.
by pgagne@redhat.com
From: Perry Gagne <pgagne(a)redhat.com>
Signed-off-by: Perry Gagne <pgagne(a)redhat.com>
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 7932f74..6f28f03 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,7 @@ Documentation is available in the `docs/` directory, you can build it with
* Jan Tluka <jtluka(a)redhat.com>
* Ondrej Lichtner <olichtne(a)redhat.com> (current maintainer)
* Jozef Urbanovsky <jurbanov(a)redhat.com>
+* Perry Gagne <pgagne(a)redhat.com>
* Christos Sfakianakis (not active anymore)
* Jiri Prochazka (not active anymore)
* Kamil Jerabek (not active anymore)
--
2.26.2
4 months
[PATCH v3 0/8] add DisableIdleStatesMixin and DisableIdleStatesMixin
by Jan Tluka
The following patch set is another iteration of the implementation of mixin
classes to control CPU features - idle states and turboboost.
Differences to v2:
* since the host_list properties are equivalent for all of the recipes
that inherit from BaseEnrtRecipe, the definition of these properties
is moved to the BaseEnrtRecipe
Differences to v1:
* mixin classes now inherit from BaseSubConfigMixin instead of
PerfTestTweakMixin
* added disable_turboboost_host_list and disable_idlestates properties
to specify on which hosts the CPU feature should be disabled
* added documentation for both mixins
Jan Tluka (8):
Recipes.ENRT.PerfTestMixins.SctpFirewallPerfTestMixin: move
_get_flow_measurement_from_config() to base class
Recipes.ENRT.ConfigMixins: add DisableIdleStatesMixin
Recipes.ENRT.ConfigMixins: add DisableTurboboostMixin
Recipes.ENRT.PerfTestMixins: add CommonPerfTestTweakMixin
Recipes.ENRT.BaseEnrtRecipe: inherit from CommonPerfTestTweakMixin
Recipes.ENRT.BaseEnrtRecipe: add DisableTurboboost and
DisableIdleStates mixins
docs: add DisableTurboboostMixin documentation
docs: add DisableIdleStatesMixin documentation
.../disable_idlestates_mixin.rst | 6 ++
.../disable_turboboost_mixin.rst | 6 ++
docs/source/config_mixins.rst | 2 +
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 40 ++++++++++-
.../ConfigMixins/DisableIdleStatesMixin.py | 57 +++++++++++++++
.../ConfigMixins/DisableTurboboostMixin.py | 71 +++++++++++++++++++
.../PerfTestMixins/BasePerfTestTweakMixin.py | 6 ++
.../CommonPerfTestTweakMixin.py | 6 ++
.../SctpFirewallPerfTestMixin.py | 6 --
lnst/Recipes/ENRT/PerfTestMixins/__init__.py | 1 +
10 files changed, 193 insertions(+), 8 deletions(-)
create mode 100644 docs/source/config_mixin_classes/disable_idlestates_mixin.rst
create mode 100644 docs/source/config_mixin_classes/disable_turboboost_mixin.rst
create mode 100644 lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py
create mode 100644 lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py
create mode 100644 lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py
--
2.21.3
4 months, 1 week
[PATCH 0/2] Recipe Run export API change
by pgagne@redhat.com
From: Perry Gagne <pgagne(a)redhat.com>
These patches rework the API for exporting RecipeRuns.
Rather then using a wrapper object RecipeRunData, we just export the
RecipeRun itself. Also, compression was added to reduce file size.
Perry Gagne (2):
RecipeResults.py: Stop excluding RemoteDevices from export
Recipe.py: Changed run export/import API, added compression, fixedup
docs.
docs/source/recipe_run_export.rst | 16 +++++
docs/source/tester_api.rst | 1 +
lnst/Common/ConnectionHandler.py | 7 ++
lnst/Controller/Controller.py | 2 +-
lnst/Controller/Machine.py | 8 +++
lnst/Controller/Recipe.py | 97 ++++++++++++++++++++++++-
lnst/Controller/RecipeResults.py | 5 --
lnst/Controller/RecipeRunExport.py | 112 -----------------------------
lnst/Devices/RemoteDevice.py | 2 +
9 files changed, 131 insertions(+), 119 deletions(-)
create mode 100644 docs/source/recipe_run_export.rst
delete mode 100644 lnst/Controller/RecipeRunExport.py
--
2.26.2
4 months, 1 week
[PATCH 0/5] Recipe Run API Fix
by pgagne@redhat.com
From: Perry Gagne <pgagne(a)redhat.com>
These patches rework the API for exporting RecipeRuns.
Rather then using a wrapper object RecipeRunData, we just export the
RecipeRun itself. Also, compression was added to reduce file size.
fixes https://gitlab.cee.redhat.com/lnst-team/lnst/-/issues/29
Perry Gagne (5):
RecipeResults.py: Stop excluding RemoteDevices from export
RecipeRunExport.py: Changed API, added compression, fixedup docs.
Recipe.py: Made Recipe pickle-able
Recipe.py: Make export/import of runs based on RecipeRun directly
Recipe.py: Removed Recipe name property.
docs/source/recipe_run_export.rst | 16 +++++
docs/source/tester_api.rst | 1 +
lnst/Common/ConnectionHandler.py | 7 ++
lnst/Controller/Controller.py | 2 +-
lnst/Controller/Machine.py | 8 +++
lnst/Controller/Recipe.py | 97 ++++++++++++++++++++++++-
lnst/Controller/RecipeResults.py | 5 --
lnst/Controller/RecipeRunExport.py | 112 -----------------------------
lnst/Devices/RemoteDevice.py | 2 +
9 files changed, 131 insertions(+), 119 deletions(-)
create mode 100644 docs/source/recipe_run_export.rst
delete mode 100644 lnst/Controller/RecipeRunExport.py
--
2.26.2
4 months, 1 week
[PATCH v2 0/9] add DisableIdleStatesMixin and DisableIdleStatesMixin
by Jan Tluka
The following patch set is a second iteration of the implementation of mixin
classes to control CPU features - idle states and turboboost.
Differences to v1:
* mixin classes now inherit from BaseSubConfigMixin instead of
PerfTestTweakMixin
* added disable_turboboost_host_list and disable_idlestates properties
to specify on which hosts the CPU feature should be disabled
* added documentation for both mixins
*** BLURB HERE ***
Jan Tluka (9):
Recipes.ENRT.PerfTestMixins.SctpFirewallPerfTestMixin: move
_get_flow_measurement_from_config() to base class
Recipes.ENRT.ConfigMixins: add DisableIdleStatesMixin
Recipes.ENRT.ConfigMixins: add DisableTurboboostMixin
Recipes.ENRT.PerfTestMixins: add CommonPerfTestTweakMixin
Recipes.ENRT.BaseEnrtRecipe: inherit from CommonPerfTestTweakMixin
Recipes.ENRT.BaseEnrtRecipe: add DisableTurboboost and
DisableIdleStates mixins
Recipes.ENRT: define disable_turboboost_host_list and
disable_idlestates_host_list properties
docs: add DisableTurboboostMixin documentation
docs: add DisableIdleStatesMixin documentation
.../disable_idlestates_mixin.rst | 6 ++
.../disable_turboboost_mixin.rst | 6 ++
docs/source/config_mixins.rst | 2 +
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 10 ++-
lnst/Recipes/ENRT/BondRecipe.py | 28 ++++++++
.../ConfigMixins/DisableIdleStatesMixin.py | 57 +++++++++++++++
.../ConfigMixins/DisableTurboboostMixin.py | 71 +++++++++++++++++++
lnst/Recipes/ENRT/DoubleBondRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/DoubleTeamRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/IpsecEspAeadRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/IpsecEspAhCompRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/NoVirtOvsVxlanRecipe.py | 28 ++++++++
.../PerfTestMixins/BasePerfTestTweakMixin.py | 6 ++
.../CommonPerfTestTweakMixin.py | 6 ++
.../SctpFirewallPerfTestMixin.py | 6 --
lnst/Recipes/ENRT/PerfTestMixins/__init__.py | 1 +
.../ENRT/ShortLivedConnectionsRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/SimpleMacsecRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/SimpleNetworkRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/TeamRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/TeamVsBondRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/VirtOvsVxlanRecipe.py | 28 ++++++++
.../VirtualBridgeVlanInGuestMirroredRecipe.py | 28 ++++++++
.../ENRT/VirtualBridgeVlanInGuestRecipe.py | 28 ++++++++
.../VirtualBridgeVlanInHostMirroredRecipe.py | 28 ++++++++
.../ENRT/VirtualBridgeVlanInHostRecipe.py | 28 ++++++++
.../ENRT/VirtualBridgeVlansOverBondRecipe.py | 28 ++++++++
...rtualOvsBridgeVlanInGuestMirroredRecipe.py | 28 ++++++++
.../ENRT/VirtualOvsBridgeVlanInGuestRecipe.py | 28 ++++++++
...irtualOvsBridgeVlanInHostMirroredRecipe.py | 28 ++++++++
.../ENRT/VirtualOvsBridgeVlanInHostRecipe.py | 28 ++++++++
.../VirtualOvsBridgeVlansOverBondRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/VlansOverBondRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/VlansOverTeamRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/VlansRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/VxlanMulticastRecipe.py | 28 ++++++++
lnst/Recipes/ENRT/VxlanRemoteRecipe.py | 28 ++++++++
37 files changed, 919 insertions(+), 8 deletions(-)
create mode 100644 docs/source/config_mixin_classes/disable_idlestates_mixin.rst
create mode 100644 docs/source/config_mixin_classes/disable_turboboost_mixin.rst
create mode 100644 lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py
create mode 100644 lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py
create mode 100644 lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py
--
2.21.3
4 months, 1 week
[PATCH 1/5] Recipes.ENRT.PerfTestMixins.SctpFirewallPerfTestMixin: move _get_flow_measurement_from_config() to base class
by Jan Tluka
This method will be reused by other mixin classes.
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
lnst/Recipes/ENRT/PerfTestMixins/BasePerfTestTweakMixin.py | 6 ++++++
.../ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py | 6 ------
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/lnst/Recipes/ENRT/PerfTestMixins/BasePerfTestTweakMixin.py b/lnst/Recipes/ENRT/PerfTestMixins/BasePerfTestTweakMixin.py
index 380fc72e..5e008a68 100644
--- a/lnst/Recipes/ENRT/PerfTestMixins/BasePerfTestTweakMixin.py
+++ b/lnst/Recipes/ENRT/PerfTestMixins/BasePerfTestTweakMixin.py
@@ -1,3 +1,5 @@
+from lnst.RecipeCommon.Perf.Measurements.BaseFlowMeasurement import BaseFlowMeasurement
+
class BasePerfTestTweakMixin(object):
"""
This is a base class that defines common API for specific *perf test*
@@ -13,3 +15,7 @@ class BasePerfTestTweakMixin(object):
def remove_perf_test_tweak(self, perf_config):
# TODO: check if anything left in the perf_config.perf_test_tweak_config
pass
+
+ def _get_flow_measurement_from_config(self, perf_config):
+ flow_measurements = [ m for m in perf_config.measurements if isinstance(m, BaseFlowMeasurement) ]
+ return flow_measurements[0]
diff --git a/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py b/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py
index 6c6cc416..c0520405 100644
--- a/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py
+++ b/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py
@@ -1,13 +1,7 @@
from lnst.Controller.RecipeResults import ResultLevel
from lnst.Recipes.ENRT.PerfTestMixins import BasePerfTestTweakMixin
-from lnst.RecipeCommon.Perf.Measurements.BaseFlowMeasurement import BaseFlowMeasurement
class SctpFirewallPerfTestMixin(BasePerfTestTweakMixin):
-
- def _get_flow_measurement_from_config(self, perf_config):
- flow_measurements = [ m for m in perf_config.measurements if isinstance(m, BaseFlowMeasurement) ]
- return flow_measurements[0]
-
def apply_perf_test_tweak(self, perf_config):
super().apply_perf_test_tweak(perf_config)
--
2.21.3
4 months, 2 weeks
[PATCH] Recipes.ENRT.ConfigMixins.BaseHWConfigMixin: do not
initialize config if dev_list is empty
by Jan Tluka
If a specific config mixin's dev_list property is left unset, the mixin's description
would be silently discarded. In such cases the mixin should report that configuration
of the feature has been skipped. That should be similar to the case when the parameter
controlling the mixin is not specified.
Fixes issue 199
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py b/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
index c860291c..6fce028d 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
@@ -10,7 +10,9 @@ class BaseHWConfigMixin(object):
def _configure_dev_attribute(self, config, dev_list, attr_name, value):
hw_config = config.hw_config
- attr_cfg = hw_config[attr_name + "_configuration"] = {}
+ if len(dev_list) > 0:
+ attr_cfg = hw_config[attr_name + "_configuration"] = {}
+
for dev in dev_list:
attr_cfg[dev] = {}
attr_cfg[dev]["original"] = getattr(dev, attr_name)
--
2.21.3
4 months, 2 weeks
[PATCH] Slave.Job: add missing json keyword when passing argument to
exec_cmd()
by Jan Tluka
The self._what["json"] value is passed as the value of die_on_err argument
(positional-argument-wise), which makes every command running through this
method return with success.
Instead the value should be passed with the keyword, that is
exec_cmd(...json=self._what["json"]).
Fixes issue 196
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
lnst/Slave/Job.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lnst/Slave/Job.py b/lnst/Slave/Job.py
index b4cdac44..1a1755fe 100644
--- a/lnst/Slave/Job.py
+++ b/lnst/Slave/Job.py
@@ -239,7 +239,7 @@ class GenericJob(object):
class ShellExecJob(GenericJob):
def run(self):
try:
- stdout, stderr = exec_cmd(self._what["command"], self._what["json"])
+ stdout, stderr = exec_cmd(self._what["command"], json=self._what["json"])
self._result["passed"] = True
self._result["res_data"] = {"stdout": stdout, "stderr": stderr}
except ExecCmdFail as e:
--
2.21.3
4 months, 2 weeks