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
This class defines a common API for any mixin classes that want to perform additional tasks before each iteration of a Perf.Recipe test.
Signed-off-by: Jan Tluka jtluka@redhat.com --- .../BasePerfTestIterationTweakMixin.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestIterationTweakMixin.py
diff --git a/lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestIterationTweakMixin.py b/lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestIterationTweakMixin.py new file mode 100644 index 00000000..6025f76e --- /dev/null +++ b/lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestIterationTweakMixin.py @@ -0,0 +1,18 @@ +class BasePerfTestIterationTweakMixin(object): + """ + This class is an extension to the :any:`Perf.Recipe` and defines common API + for specific mixin classes that want to perform additional actions before + each of the *perf test iterations*. + + The mixin classes should implement each of the methods in collaborative manner. + """ + + def generate_perf_test_iteration_tweak_description(self, perf_config): + return ["Performance test iteration tweaks:"] + + def apply_perf_test_iteration_tweak(self, perf_config): + perf_config.perf_test_iteration_tweak_config = {} + + def remove_perf_test_iteration_tweak(self, perf_config): + # TODO: check if anything left in the perf_config.perf_test_iteration_tweak_config + pass
The Perf.Recipe class is now capable of running additional tasks before each of the measurement iterations.
v2: moved iteration implementation to separate method to reduce the nested try/except blocks
Signed-off-by: Jan Tluka jtluka@redhat.com --- lnst/RecipeCommon/Perf/Recipe.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/lnst/RecipeCommon/Perf/Recipe.py b/lnst/RecipeCommon/Perf/Recipe.py index df69b1b6..03494b29 100644 --- a/lnst/RecipeCommon/Perf/Recipe.py +++ b/lnst/RecipeCommon/Perf/Recipe.py @@ -6,6 +6,10 @@ from lnst.Controller.Recipe import BaseRecipe from lnst.RecipeCommon.Perf.Results import SequentialPerfResult from lnst.RecipeCommon.Perf.Results import ParallelPerfResult
+from lnst.RecipeCommon.Perf.PerfTestMixins import ( + BasePerfTestIterationTweakMixin, +) + class RecipeConf(object): def __init__(self, measurements, iterations): self._measurements = measurements @@ -49,11 +53,20 @@ class RecipeResults(object): aggregated_results, new_results) self._results[measurement] = aggregated_results
-class Recipe(BaseRecipe): +class Recipe(BasePerfTestIterationTweakMixin, BaseRecipe): def perf_test(self, recipe_conf): results = RecipeResults(recipe_conf)
for i in range(recipe_conf.iterations): + self.perf_test_iteration(recipe_conf, results) + + return results + + def perf_test_iteration(self, recipe_conf, results): + self.apply_perf_test_iteration_tweak(recipe_conf) + self.describe_perf_test_iteration_tweak(recipe_conf) + + try: for measurement in recipe_conf.measurements: measurement.start() for measurement in reversed(recipe_conf.measurements): @@ -62,8 +75,12 @@ class Recipe(BaseRecipe): measurement_results = measurement.collect_results() results.add_measurement_results( measurement, measurement_results) + finally: + self.remove_perf_test_iteration_tweak(recipe_conf)
- return results + def describe_perf_test_iteration_tweak(self, perf_config): + description = self.generate_perf_test_iteration_tweak_description(perf_config) + self.add_result(True, "\n".join(description))
def perf_report_and_evaluate(self, results): self.perf_report(results)
It make more sense to have both BasePerfTestTweakMixin and BasePerfTestIterationTweakMixin in one place.
In addition, the BasePerfTestTweakMixin was moved from BaseEnrtRecipe to Perf.Recipe class.
Signed-off-by: Jan Tluka jtluka@redhat.com --- .../Perf}/PerfTestMixins/BasePerfTestTweakMixin.py | 0 lnst/RecipeCommon/Perf/Recipe.py | 13 ++++++++++--- lnst/Recipes/ENRT/BaseEnrtRecipe.py | 9 ++------- .../PerfTestMixins/SctpFirewallPerfTestMixin.py | 2 +- lnst/Recipes/ENRT/PerfTestMixins/__init__.py | 1 - 5 files changed, 13 insertions(+), 12 deletions(-) rename lnst/{Recipes/ENRT => RecipeCommon/Perf}/PerfTestMixins/BasePerfTestTweakMixin.py (100%)
diff --git a/lnst/Recipes/ENRT/PerfTestMixins/BasePerfTestTweakMixin.py b/lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestTweakMixin.py similarity index 100% rename from lnst/Recipes/ENRT/PerfTestMixins/BasePerfTestTweakMixin.py rename to lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestTweakMixin.py diff --git a/lnst/RecipeCommon/Perf/Recipe.py b/lnst/RecipeCommon/Perf/Recipe.py index 03494b29..d1098fa2 100644 --- a/lnst/RecipeCommon/Perf/Recipe.py +++ b/lnst/RecipeCommon/Perf/Recipe.py @@ -7,6 +7,7 @@ from lnst.RecipeCommon.Perf.Results import SequentialPerfResult from lnst.RecipeCommon.Perf.Results import ParallelPerfResult
from lnst.RecipeCommon.Perf.PerfTestMixins import ( + BasePerfTestTweakMixin, BasePerfTestIterationTweakMixin, )
@@ -53,12 +54,18 @@ class RecipeResults(object): aggregated_results, new_results) self._results[measurement] = aggregated_results
-class Recipe(BasePerfTestIterationTweakMixin, BaseRecipe): +class Recipe(BasePerfTestTweakMixin, BasePerfTestIterationTweakMixin, BaseRecipe): def perf_test(self, recipe_conf): results = RecipeResults(recipe_conf)
- for i in range(recipe_conf.iterations): - self.perf_test_iteration(recipe_conf, results) + self.apply_perf_test_tweak(recipe_conf) + self.describe_perf_test_tweak(recipe_conf) + + try: + for i in range(recipe_conf.iterations): + self.perf_test_iteration(recipe_conf, results) + finally: + self.remove_perf_test_tweak(recipe_conf)
return results
diff --git a/lnst/Recipes/ENRT/BaseEnrtRecipe.py b/lnst/Recipes/ENRT/BaseEnrtRecipe.py index d629b726..180f922e 100644 --- a/lnst/Recipes/ENRT/BaseEnrtRecipe.py +++ b/lnst/Recipes/ENRT/BaseEnrtRecipe.py @@ -355,13 +355,8 @@ class BaseEnrtRecipe(CommonPerfTestTweakMixin, methods to execute, report and evaluate the results. """ for perf_config in self.generate_perf_configurations(recipe_config): - self.apply_perf_test_tweak(perf_config) - self.describe_perf_test_tweak(perf_config) - try: - result = self.perf_test(perf_config) - self.perf_report_and_evaluate(result) - finally: - self.remove_perf_test_tweak(perf_config) + result = self.perf_test(perf_config) + self.perf_report_and_evaluate(result)
def generate_ping_configurations(self, config): """Base ping test configuration generator diff --git a/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py b/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py index c0520405..841df3f7 100644 --- a/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py +++ b/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py @@ -1,5 +1,5 @@ from lnst.Controller.RecipeResults import ResultLevel -from lnst.Recipes.ENRT.PerfTestMixins import BasePerfTestTweakMixin +from lnst.RecipeCommon.Perf.PerfTestMixins import BasePerfTestTweakMixin
class SctpFirewallPerfTestMixin(BasePerfTestTweakMixin): def apply_perf_test_tweak(self, perf_config): diff --git a/lnst/Recipes/ENRT/PerfTestMixins/__init__.py b/lnst/Recipes/ENRT/PerfTestMixins/__init__.py index 8a109ad0..addfb641 100644 --- a/lnst/Recipes/ENRT/PerfTestMixins/__init__.py +++ b/lnst/Recipes/ENRT/PerfTestMixins/__init__.py @@ -1,3 +1,2 @@ -from lnst.Recipes.ENRT.PerfTestMixins.BasePerfTestTweakMixin import BasePerfTestTweakMixin from lnst.Recipes.ENRT.PerfTestMixins.SctpFirewallPerfTestMixin import SctpFirewallPerfTestMixin from lnst.Recipes.ENRT.PerfTestMixins.CommonPerfTestTweakMixin import CommonPerfTestTweakMixin
Fri, Oct 30, 2020 at 05:15:01PM CET, jtluka@redhat.com wrote:
It make more sense to have both BasePerfTestTweakMixin and BasePerfTestIterationTweakMixin in one place.
In addition, the BasePerfTestTweakMixin was moved from BaseEnrtRecipe to Perf.Recipe class.
Signed-off-by: Jan Tluka jtluka@redhat.com
.../Perf}/PerfTestMixins/BasePerfTestTweakMixin.py | 0 lnst/RecipeCommon/Perf/Recipe.py | 13 ++++++++++--- lnst/Recipes/ENRT/BaseEnrtRecipe.py | 9 ++------- .../PerfTestMixins/SctpFirewallPerfTestMixin.py | 2 +- lnst/Recipes/ENRT/PerfTestMixins/__init__.py | 1 - 5 files changed, 13 insertions(+), 12 deletions(-) rename lnst/{Recipes/ENRT => RecipeCommon/Perf}/PerfTestMixins/BasePerfTestTweakMixin.py (100%)
diff --git a/lnst/Recipes/ENRT/PerfTestMixins/BasePerfTestTweakMixin.py b/lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestTweakMixin.py similarity index 100% rename from lnst/Recipes/ENRT/PerfTestMixins/BasePerfTestTweakMixin.py rename to lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestTweakMixin.py diff --git a/lnst/RecipeCommon/Perf/Recipe.py b/lnst/RecipeCommon/Perf/Recipe.py index 03494b29..d1098fa2 100644 --- a/lnst/RecipeCommon/Perf/Recipe.py +++ b/lnst/RecipeCommon/Perf/Recipe.py @@ -7,6 +7,7 @@ from lnst.RecipeCommon.Perf.Results import SequentialPerfResult from lnst.RecipeCommon.Perf.Results import ParallelPerfResult
from lnst.RecipeCommon.Perf.PerfTestMixins import (
BasePerfTestTweakMixin, BasePerfTestIterationTweakMixin,
)
@@ -53,12 +54,18 @@ class RecipeResults(object): aggregated_results, new_results) self._results[measurement] = aggregated_results
-class Recipe(BasePerfTestIterationTweakMixin, BaseRecipe): +class Recipe(BasePerfTestTweakMixin, BasePerfTestIterationTweakMixin, BaseRecipe): def perf_test(self, recipe_conf): results = RecipeResults(recipe_conf)
for i in range(recipe_conf.iterations):
self.perf_test_iteration(recipe_conf, results)
self.apply_perf_test_tweak(recipe_conf)
self.describe_perf_test_tweak(recipe_conf)
try:
for i in range(recipe_conf.iterations):
self.perf_test_iteration(recipe_conf, results)
finally:
self.remove_perf_test_tweak(recipe_conf) return results
diff --git a/lnst/Recipes/ENRT/BaseEnrtRecipe.py b/lnst/Recipes/ENRT/BaseEnrtRecipe.py index d629b726..180f922e 100644 --- a/lnst/Recipes/ENRT/BaseEnrtRecipe.py +++ b/lnst/Recipes/ENRT/BaseEnrtRecipe.py @@ -355,13 +355,8 @@ class BaseEnrtRecipe(CommonPerfTestTweakMixin, methods to execute, report and evaluate the results. """ for perf_config in self.generate_perf_configurations(recipe_config):
self.apply_perf_test_tweak(perf_config)
self.describe_perf_test_tweak(perf_config)
try:
result = self.perf_test(perf_config)
self.perf_report_and_evaluate(result)
finally:
self.remove_perf_test_tweak(perf_config)
result = self.perf_test(perf_config)
self.perf_report_and_evaluate(result)
def generate_ping_configurations(self, config): """Base ping test configuration generator
diff --git a/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py b/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py index c0520405..841df3f7 100644 --- a/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py +++ b/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py @@ -1,5 +1,5 @@ from lnst.Controller.RecipeResults import ResultLevel -from lnst.Recipes.ENRT.PerfTestMixins import BasePerfTestTweakMixin +from lnst.RecipeCommon.Perf.PerfTestMixins import BasePerfTestTweakMixin
There's a bug. In a trial run following exception has been detected:
File "/usr/lib/python3.6/site-packages/lnst/RHExtensions/ExtendedRecipes.py", line 3, in <module> import lnst.Recipes.ENRT as enrt_recipes File "/usr/lib/python3.6/site-packages/lnst/Recipes/ENRT/__init__.py", line 53, in <module> from lnst.Recipes.ENRT.SimpleNetworkRecipe import SimpleNetworkRecipe File "/usr/lib/python3.6/site-packages/lnst/Recipes/ENRT/SimpleNetworkRecipe.py", line 4, in <module> from lnst.Recipes.ENRT.BaseEnrtRecipe import BaseEnrtRecipe File "/usr/lib/python3.6/site-packages/lnst/Recipes/ENRT/BaseEnrtRecipe.py", line 16, in <module> from lnst.Recipes.ENRT.PerfTestMixins import CommonPerfTestTweakMixin File "/usr/lib/python3.6/site-packages/lnst/Recipes/ENRT/PerfTestMixins/__init__.py", line 1, in <module> from lnst.Recipes.ENRT.PerfTestMixins.SctpFirewallPerfTestMixin import SctpFirewallPerfTestMixin File "/usr/lib/python3.6/site-packages/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py", line 2, in <module> from lnst.RecipeCommon.Perf.PerfTestMixins import BasePerfTestTweakMixin ModuleNotFoundError: No module named 'lnst.RecipeCommon.Perf.PerfTestMixins'
Will send a fixed patch set.
class SctpFirewallPerfTestMixin(BasePerfTestTweakMixin): def apply_perf_test_tweak(self, perf_config): diff --git a/lnst/Recipes/ENRT/PerfTestMixins/__init__.py b/lnst/Recipes/ENRT/PerfTestMixins/__init__.py index 8a109ad0..addfb641 100644 --- a/lnst/Recipes/ENRT/PerfTestMixins/__init__.py +++ b/lnst/Recipes/ENRT/PerfTestMixins/__init__.py @@ -1,3 +1,2 @@ -from lnst.Recipes.ENRT.PerfTestMixins.BasePerfTestTweakMixin import BasePerfTestTweakMixin from lnst.Recipes.ENRT.PerfTestMixins.SctpFirewallPerfTestMixin import SctpFirewallPerfTestMixin from lnst.Recipes.ENRT.PerfTestMixins.CommonPerfTestTweakMixin import CommonPerfTestTweakMixin -- 2.21.3
The method will be used by mixin classes derived from both BasePerfTestTweakMixin and BasePerfTestIterationTweakMixin.
v2:
The commit renames the function according to the changed return value which is complete list of flow measurements rather than the first entry.
Signed-off-by: Jan Tluka jtluka@redhat.com --- .../Perf/PerfTestMixins/BasePerfTestTweakMixin.py | 6 ------ .../ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py | 9 +++++---- lnst/Recipes/ENRT/PerfTestMixins/Utils.py | 5 +++++ 3 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 lnst/Recipes/ENRT/PerfTestMixins/Utils.py
diff --git a/lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestTweakMixin.py b/lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestTweakMixin.py index 5e008a68..380fc72e 100644 --- a/lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestTweakMixin.py +++ b/lnst/RecipeCommon/Perf/PerfTestMixins/BasePerfTestTweakMixin.py @@ -1,5 +1,3 @@ -from lnst.RecipeCommon.Perf.Measurements.BaseFlowMeasurement import BaseFlowMeasurement - class BasePerfTestTweakMixin(object): """ This is a base class that defines common API for specific *perf test* @@ -15,7 +13,3 @@ 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 841df3f7..437a9a40 100644 --- a/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py +++ b/lnst/Recipes/ENRT/PerfTestMixins/SctpFirewallPerfTestMixin.py @@ -1,12 +1,13 @@ from lnst.Controller.RecipeResults import ResultLevel from lnst.RecipeCommon.Perf.PerfTestMixins import BasePerfTestTweakMixin +from lnst.Recipes.ENRT.PerfTestMixins.Utils import get_flow_measurements_from_config
class SctpFirewallPerfTestMixin(BasePerfTestTweakMixin): def apply_perf_test_tweak(self, perf_config): super().apply_perf_test_tweak(perf_config)
- flow_measurement = self._get_flow_measurement_from_config(perf_config) - flow = flow_measurement.conf[0] + flow_measurements = get_flow_measurements_from_config(perf_config) + flow = flow_measurements[0].conf[0] if flow.type == "sctp_stream": for nic in [flow.generator_nic, flow.receiver_nic]: nic.netns.run( @@ -18,8 +19,8 @@ class SctpFirewallPerfTestMixin(BasePerfTestTweakMixin): tweak_config["iptables_sctp"] = True
def remove_perf_test_tweak(self, perf_config): - flow_measurement = self._get_flow_measurement_from_config(perf_config) - flow = flow_measurement.conf[0] + flow_measurements = get_flow_measurements_from_config(perf_config) + flow = flow_measurements[0].conf[0] if flow.type == "sctp_stream": for nic in [flow.generator_nic, flow.receiver_nic]: nic.netns.run( diff --git a/lnst/Recipes/ENRT/PerfTestMixins/Utils.py b/lnst/Recipes/ENRT/PerfTestMixins/Utils.py new file mode 100644 index 00000000..16dd807e --- /dev/null +++ b/lnst/Recipes/ENRT/PerfTestMixins/Utils.py @@ -0,0 +1,5 @@ +from lnst.RecipeCommon.Perf.Measurements.BaseFlowMeasurement import BaseFlowMeasurement + +def get_flow_measurements_from_config(perf_config): + flow_measurements = [ m for m in perf_config.measurements if isinstance(m, BaseFlowMeasurement) ] + return flow_measurements
This mixin class can be used to drop vm caches before each iteration of the performance test measurements.
v2:
The mixin will drop caches on all machines that were matched by recipe instead of just the generator and receiver machines. This is desired for the scenarios with virtual guests.
Signed-off-by: Jan Tluka jtluka@redhat.com --- .../PerfTestMixins/DropCachesPerfTestMixin.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lnst/Recipes/ENRT/PerfTestMixins/DropCachesPerfTestMixin.py
diff --git a/lnst/Recipes/ENRT/PerfTestMixins/DropCachesPerfTestMixin.py b/lnst/Recipes/ENRT/PerfTestMixins/DropCachesPerfTestMixin.py new file mode 100644 index 00000000..36b946e7 --- /dev/null +++ b/lnst/Recipes/ENRT/PerfTestMixins/DropCachesPerfTestMixin.py @@ -0,0 +1,39 @@ +from lnst.Common.Parameters import BoolParam +from lnst.RecipeCommon.Perf.PerfTestMixins import BasePerfTestIterationTweakMixin + + +class DropCachesPerfTestMixin(BasePerfTestIterationTweakMixin): + """ + This mixin class is an extension to the :any:`BaseEnrtRecipe` class that can + be used to drop vm caches before running each iteration of the performance + measurements. + + :param drop_caches: + (optional test parameter) a boolean, if set to True, the memory caches + are dropped otherwise the mixin has no effect + """ + + drop_caches = BoolParam(default=False) + + def generate_perf_test_iteration_tweak_description(self, perf_config): + description = super().generate_perf_test_iteration_tweak_description( + perf_config + ) + if self.params.drop_caches: + for host in self.matched: + description.append( + "dropped vm caches before iteration on host {}".format(host.hostid) + ) + else: + description.append("skipped dropping vm caches before iteration") + return description + + def apply_perf_test_iteration_tweak(self, perf_config): + super().apply_perf_test_iteration_tweak(perf_config) + + if self.params.drop_caches: + for host in self.matched: + host.run("echo 1 > /proc/sys/vm/drop_caches") + + def remove_perf_test_iteration_tweak(self, perf_config): + super().remove_perf_test_iteration_tweak(perf_config)
Signed-off-by: Jan Tluka jtluka@redhat.com --- lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py | 3 ++- lnst/Recipes/ENRT/PerfTestMixins/__init__.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py b/lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py index 7606ef90..ebe59656 100644 --- a/lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py +++ b/lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py @@ -1,6 +1,7 @@ from lnst.Recipes.ENRT.PerfTestMixins import ( SctpFirewallPerfTestMixin, + DropCachesPerfTestMixin, )
-class CommonPerfTestTweakMixin(SctpFirewallPerfTestMixin): +class CommonPerfTestTweakMixin(SctpFirewallPerfTestMixin, DropCachesPerfTestMixin): pass diff --git a/lnst/Recipes/ENRT/PerfTestMixins/__init__.py b/lnst/Recipes/ENRT/PerfTestMixins/__init__.py index addfb641..93709ad2 100644 --- a/lnst/Recipes/ENRT/PerfTestMixins/__init__.py +++ b/lnst/Recipes/ENRT/PerfTestMixins/__init__.py @@ -1,2 +1,3 @@ from lnst.Recipes.ENRT.PerfTestMixins.SctpFirewallPerfTestMixin import SctpFirewallPerfTestMixin +from lnst.Recipes.ENRT.PerfTestMixins.DropCachesPerfTestMixin import DropCachesPerfTestMixin from lnst.Recipes.ENRT.PerfTestMixins.CommonPerfTestTweakMixin import CommonPerfTestTweakMixin
lnst-developers@lists.fedorahosted.org