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
This method will be reused by other mixin classes.
Signed-off-by: Jan Tluka jtluka@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)
This mixin class extends BaseEnrtRecipe with ability to control the CPU idle states before running the tests.
The class adds 'minimal_idlestates_latency' parameter that is passed as the latency argument (-D) of the 'cpupower idle-set' that will disable all idle states with an equal or higher latency than the specified value.
If the value is 0 this will effectively disable all CPU idle states.
Signed-off-by: Jan Tluka jtluka@redhat.com --- .../ConfigMixins/DisableIdleStatesMixin.py | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py
diff --git a/lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py b/lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py new file mode 100644 index 00000000..ca45dfb3 --- /dev/null +++ b/lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py @@ -0,0 +1,42 @@ +from lnst.Common.Parameters import IntParam +from lnst.Recipes.ENRT.ConfigMixins import BaseSubConfigMixin + +class DisableIdleStatesMixin(BaseSubConfigMixin): + minimal_idlestates_latency = IntParam() + + @property + def disable_idlestates_host_list(self): + """ + The value of this property is a list of hosts for which the CPU idle + states should be turned off. Derived class can override this property. + """ + return [] + + def apply_sub_configuration(self, config): + super().apply_sub_configuration(config) + + latency = getattr(self.params, "minimal_idlestates_latency", None) + if latency is not None: + for host in self.disable_idlestates_host_list: + # TODO: save previous state + host.run("cpupower idle-set -D {}".format(latency)) + + def generate_sub_configuration_description(self, config): + description = super().generate_sub_configuration_description(config) + + latency = getattr(self.params, "minimal_idlestates_latency", None) + if latency is not None: + for host in self.disable_idlestates_host_list: + description.append("disabled idle states with latency higher than "\ + "{} on host {}".format(latency, host.hostid) + ) + else: + description.append("configuration of idle states skipped") + + return description + + def remove_sub_configuration(self, config): + for host in self.disable_idlestates_host_list: + host.run("cpupower idle-set -E") + + return super().remove_sub_configuration(config)
This mixin class provides recipe parameter 'disable_turboboost' that can be used to disable CPU turboboost before running the tests.
It uses intel_pstate sysfs interface to disable the CPU feature and so it is usable only by systems with Intel CPUs.
To use it pass 'disable_turboost=True' parameter when creating an instance of BaseEnrtRecipe.
Signed-off-by: Jan Tluka jtluka@redhat.com --- .../ConfigMixins/DisableTurboboostMixin.py | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py
diff --git a/lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py b/lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py new file mode 100644 index 00000000..dc3c0d62 --- /dev/null +++ b/lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py @@ -0,0 +1,54 @@ +from lnst.Common.Parameters import BoolParam +from lnst.Controller.RecipeResults import ResultLevel +from lnst.Recipes.ENRT.ConfigMixins import BaseSubConfigMixin + +class DisableTurboboostMixin(BaseSubConfigMixin): + disable_turboboost = BoolParam(default=False) + + @property + def disable_turboboost_host_list(self): + """ + The value of this property is a list of hosts for which the CPU turboboost + should be turned off. Derived class can override this property. + """ + return [] + + def _is_turboboost_supported(self, host): + file_check = host.run( + "ls /sys/devices/system/cpu/intel_pstate/no_turbo", + job_level=ResultLevel.DEBUG) + return file_check.passed + + def apply_sub_configuration(self, config): + super().apply_sub_configuration(config) + + if self.params.disable_turboboost: + for host in self.disable_turboboost_host_list: + if self._is_turboboost_supported(host): + # TODO: save previous state + host.run("echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo") + + def generate_sub_configuration_description(self, config): + description = super().generate_sub_configuration_description(config) + + if self.params.disable_turboboost: + for host in self.disable_turboboost_host_list: + if self._is_turboboost_supported(host): + description.append("turboboost disabled through intel_pstate on {}".format(host.hostid)) + else: + description.append("warning: user requested to disable turboboost "\ + "through intel_pstate but the sysfs file is not available "\ + "on host {}".format(host.hostid)) + else: + description.append("configuration of turboboost through intel_pstate skipped") + + return description + + def remove_sub_configuration(self, config): + if self.params.disable_turboboost: + for host in self.disable_turboboost_host_list: + if self._is_turboboost_supported(host): + # TODO: restore previous state + host.run("echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo") + + return super().remove_sub_configuration(config)
This class currently inherits from SctpFirewallPerfTestMixin only but can be extended in the future with other mixin classes for a user convenience.
Signed-off-by: Jan Tluka jtluka@redhat.com --- .../Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py | 6 ++++++ lnst/Recipes/ENRT/PerfTestMixins/__init__.py | 1 + 2 files changed, 7 insertions(+) create mode 100644 lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py
diff --git a/lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py b/lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py new file mode 100644 index 00000000..7606ef90 --- /dev/null +++ b/lnst/Recipes/ENRT/PerfTestMixins/CommonPerfTestTweakMixin.py @@ -0,0 +1,6 @@ +from lnst.Recipes.ENRT.PerfTestMixins import ( + SctpFirewallPerfTestMixin, + ) + +class CommonPerfTestTweakMixin(SctpFirewallPerfTestMixin): + pass diff --git a/lnst/Recipes/ENRT/PerfTestMixins/__init__.py b/lnst/Recipes/ENRT/PerfTestMixins/__init__.py index 9f320118..8a109ad0 100644 --- a/lnst/Recipes/ENRT/PerfTestMixins/__init__.py +++ b/lnst/Recipes/ENRT/PerfTestMixins/__init__.py @@ -1,2 +1,3 @@ from lnst.Recipes.ENRT.PerfTestMixins.BasePerfTestTweakMixin import BasePerfTestTweakMixin from lnst.Recipes.ENRT.PerfTestMixins.SctpFirewallPerfTestMixin import SctpFirewallPerfTestMixin +from lnst.Recipes.ENRT.PerfTestMixins.CommonPerfTestTweakMixin import CommonPerfTestTweakMixin
SctpFirewallPerfTest mixin is replaced with CommonPerfTestTweakMixin to include additional mixins in much simpler way.
Signed-off-by: Jan Tluka jtluka@redhat.com --- lnst/Recipes/ENRT/BaseEnrtRecipe.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lnst/Recipes/ENRT/BaseEnrtRecipe.py b/lnst/Recipes/ENRT/BaseEnrtRecipe.py index 4d0c93c8..a5296e94 100644 --- a/lnst/Recipes/ENRT/BaseEnrtRecipe.py +++ b/lnst/Recipes/ENRT/BaseEnrtRecipe.py @@ -13,7 +13,7 @@ from lnst.Common.Parameters import ( from lnst.Common.IpAddress import AF_INET, AF_INET6
from lnst.Recipes.ENRT.ConfigMixins.BaseSubConfigMixin import BaseSubConfigMixin -from lnst.Recipes.ENRT.PerfTestMixins import SctpFirewallPerfTestMixin +from lnst.Recipes.ENRT.PerfTestMixins import CommonPerfTestTweakMixin
from lnst.RecipeCommon.Ping.Recipe import PingTestAndEvaluate, PingConf from lnst.RecipeCommon.Perf.Recipe import Recipe as PerfRecipe @@ -33,7 +33,7 @@ class EnrtConfiguration(object): """ pass
-class BaseEnrtRecipe(SctpFirewallPerfTestMixin, BaseSubConfigMixin, +class BaseEnrtRecipe(CommonPerfTestTweakMixin, BaseSubConfigMixin, PingTestAndEvaluate, PerfRecipe): """Base Recipe class for the ENRT recipe package
All of the tests that inherit from BaseEnrtRecipe will make use of these mixins so instead of adding them to individual recipes they are included in the base class.
Individual recipes can define the disable_turboboost_host_list and disable_idlestates_host_list properties and relevant mixin recipe parameters to control the behaviour on a recipe level.
Signed-off-by: Jan Tluka jtluka@redhat.com --- lnst/Recipes/ENRT/BaseEnrtRecipe.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lnst/Recipes/ENRT/BaseEnrtRecipe.py b/lnst/Recipes/ENRT/BaseEnrtRecipe.py index a5296e94..15a616a9 100644 --- a/lnst/Recipes/ENRT/BaseEnrtRecipe.py +++ b/lnst/Recipes/ENRT/BaseEnrtRecipe.py @@ -14,6 +14,10 @@ from lnst.Common.IpAddress import AF_INET, AF_INET6
from lnst.Recipes.ENRT.ConfigMixins.BaseSubConfigMixin import BaseSubConfigMixin 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.RecipeCommon.Ping.Recipe import PingTestAndEvaluate, PingConf from lnst.RecipeCommon.Perf.Recipe import Recipe as PerfRecipe @@ -33,7 +37,9 @@ class EnrtConfiguration(object): """ pass
-class BaseEnrtRecipe(CommonPerfTestTweakMixin, BaseSubConfigMixin, +class BaseEnrtRecipe(CommonPerfTestTweakMixin, + DisableTurboboostMixin, DisableIdleStatesMixin, + BaseSubConfigMixin, PingTestAndEvaluate, PerfRecipe): """Base Recipe class for the ENRT recipe package
For all recipes that inherit from BaseEnrtRecipe the properties are identical that is a list of matched baremetal hosts.
Signed-off-by: Jan Tluka jtluka@redhat.com --- lnst/Recipes/ENRT/BondRecipe.py | 28 +++++++++++++++++++ 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 +++++++++++++++++++ .../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 +++++++++++++++++++ 27 files changed, 756 insertions(+)
diff --git a/lnst/Recipes/ENRT/BondRecipe.py b/lnst/Recipes/ENRT/BondRecipe.py index 751d1964..f2747fab 100644 --- a/lnst/Recipes/ENRT/BondRecipe.py +++ b/lnst/Recipes/ENRT/BondRecipe.py @@ -258,3 +258,31 @@ class BondRecipe(PerfReversibleFlowMixin, CommonHWSubConfigMixin, OffloadSubConf """ return [self.matched.host1.eth0, self.matched.host1.eth1, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/DoubleBondRecipe.py b/lnst/Recipes/ENRT/DoubleBondRecipe.py index 73a7222d..20d91ab0 100644 --- a/lnst/Recipes/ENRT/DoubleBondRecipe.py +++ b/lnst/Recipes/ENRT/DoubleBondRecipe.py @@ -118,3 +118,31 @@ class DoubleBondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin, def parallel_stream_qdisc_hw_config_dev_list(self): host1, host2 = self.matched.host1, self.matched.host2 return [host1.eth0, host1.eth1, host2.eth0, host2.eth1] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/DoubleTeamRecipe.py b/lnst/Recipes/ENRT/DoubleTeamRecipe.py index 305ffdeb..a633b8ec 100644 --- a/lnst/Recipes/ENRT/DoubleTeamRecipe.py +++ b/lnst/Recipes/ENRT/DoubleTeamRecipe.py @@ -116,3 +116,31 @@ class DoubleTeamRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin, def parallel_stream_qdisc_hw_config_dev_list(self): host1, host2 = self.matched.host1, self.matched.host2 return [host1.eth0, host1.eth1, host2.eth0, host2.eth1] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/IpsecEspAeadRecipe.py b/lnst/Recipes/ENRT/IpsecEspAeadRecipe.py index 015db74f..e9e27329 100644 --- a/lnst/Recipes/ENRT/IpsecEspAeadRecipe.py +++ b/lnst/Recipes/ENRT/IpsecEspAeadRecipe.py @@ -264,3 +264,31 @@ class IpsecEspAeadRecipe(CommonHWSubConfigMixin, BaseEnrtRecipe, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/IpsecEspAhCompRecipe.py b/lnst/Recipes/ENRT/IpsecEspAhCompRecipe.py index 65e480b4..80aa2efa 100644 --- a/lnst/Recipes/ENRT/IpsecEspAhCompRecipe.py +++ b/lnst/Recipes/ENRT/IpsecEspAhCompRecipe.py @@ -230,3 +230,31 @@ class IpsecEspAhCompRecipe(CommonHWSubConfigMixin, BaseEnrtRecipe, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/NoVirtOvsVxlanRecipe.py b/lnst/Recipes/ENRT/NoVirtOvsVxlanRecipe.py index 92dc3a16..e5480951 100644 --- a/lnst/Recipes/ENRT/NoVirtOvsVxlanRecipe.py +++ b/lnst/Recipes/ENRT/NoVirtOvsVxlanRecipe.py @@ -109,3 +109,31 @@ class NoVirtOvsVxlanRecipe(CommonHWSubConfigMixin, BaseEnrtRecipe): @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py b/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py index 85c768ac..df88f8b5 100644 --- a/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py +++ b/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py @@ -65,3 +65,31 @@ class ShortLivedConnectionsRecipe(CommonHWSubConfigMixin, BaseEnrtRecipe): @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/SimpleMacsecRecipe.py b/lnst/Recipes/ENRT/SimpleMacsecRecipe.py index fded0e63..61deee21 100644 --- a/lnst/Recipes/ENRT/SimpleMacsecRecipe.py +++ b/lnst/Recipes/ENRT/SimpleMacsecRecipe.py @@ -240,3 +240,31 @@ class SimpleMacsecRecipe(CommonHWSubConfigMixin, BaseEnrtRecipe): @property def dev_interrupt_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/SimpleNetworkRecipe.py b/lnst/Recipes/ENRT/SimpleNetworkRecipe.py index 506cbdaa..95ce3f72 100644 --- a/lnst/Recipes/ENRT/SimpleNetworkRecipe.py +++ b/lnst/Recipes/ENRT/SimpleNetworkRecipe.py @@ -134,3 +134,31 @@ class SimpleNetworkRecipe( @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/TeamRecipe.py b/lnst/Recipes/ENRT/TeamRecipe.py index da746ddf..a6238ab0 100644 --- a/lnst/Recipes/ENRT/TeamRecipe.py +++ b/lnst/Recipes/ENRT/TeamRecipe.py @@ -238,3 +238,31 @@ class TeamRecipe(PerfReversibleFlowMixin, CommonHWSubConfigMixin, OffloadSubConf """ host1, host2 = self.matched.host1, self.matched.host2 return [host1.eth0, host1.eth1, host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/TeamVsBondRecipe.py b/lnst/Recipes/ENRT/TeamVsBondRecipe.py index b87402d2..fdfb0bbd 100644 --- a/lnst/Recipes/ENRT/TeamVsBondRecipe.py +++ b/lnst/Recipes/ENRT/TeamVsBondRecipe.py @@ -133,3 +133,31 @@ class TeamVsBondRecipe(PerfReversibleFlowMixin, CommonHWSubConfigMixin, def parallel_stream_qdisc_hw_config_dev_list(self): host1, host2 = self.matched.host1, self.matched.host2 return [host1.eth0, host1.eth1, host2.eth0, host2.eth1] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtOvsVxlanRecipe.py b/lnst/Recipes/ENRT/VirtOvsVxlanRecipe.py index 66e6575f..e962ed9a 100644 --- a/lnst/Recipes/ENRT/VirtOvsVxlanRecipe.py +++ b/lnst/Recipes/ENRT/VirtOvsVxlanRecipe.py @@ -157,3 +157,31 @@ class VirtOvsVxlanRecipe(VlanPingEvaluatorMixin, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestMirroredRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestMirroredRecipe.py index 494e79df..cfb05697 100644 --- a/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestMirroredRecipe.py +++ b/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestMirroredRecipe.py @@ -152,3 +152,31 @@ class VirtualBridgeVlanInGuestMirroredRecipe(CommonHWSubConfigMixin, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestRecipe.py index 65732bb8..6f576679 100644 --- a/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestRecipe.py +++ b/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestRecipe.py @@ -131,3 +131,31 @@ class VirtualBridgeVlanInGuestRecipe(CommonHWSubConfigMixin, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlanInHostMirroredRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlanInHostMirroredRecipe.py index f17228b5..d156af31 100644 --- a/lnst/Recipes/ENRT/VirtualBridgeVlanInHostMirroredRecipe.py +++ b/lnst/Recipes/ENRT/VirtualBridgeVlanInHostMirroredRecipe.py @@ -149,3 +149,31 @@ class VirtualBridgeVlanInHostMirroredRecipe(CommonHWSubConfigMixin, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlanInHostRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlanInHostRecipe.py index d94ed703..f53c1e17 100644 --- a/lnst/Recipes/ENRT/VirtualBridgeVlanInHostRecipe.py +++ b/lnst/Recipes/ENRT/VirtualBridgeVlanInHostRecipe.py @@ -132,3 +132,31 @@ class VirtualBridgeVlanInHostRecipe(CommonHWSubConfigMixin, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlansOverBondRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlansOverBondRecipe.py index eb29fdcc..f3d8b05b 100644 --- a/lnst/Recipes/ENRT/VirtualBridgeVlansOverBondRecipe.py +++ b/lnst/Recipes/ENRT/VirtualBridgeVlansOverBondRecipe.py @@ -222,3 +222,31 @@ class VirtualBridgeVlansOverBondRecipe(VlanPingEvaluatorMixin, def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host1.eth1, self.matched.host2.eth0, self.matched.host2.eth1] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestMirroredRecipe.py b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestMirroredRecipe.py index daba9f4e..81e5c630 100644 --- a/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestMirroredRecipe.py +++ b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestMirroredRecipe.py @@ -145,3 +145,31 @@ class VirtualOvsBridgeVlanInGuestMirroredRecipe(CommonHWSubConfigMixin, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py index 7137600c..4287bf3f 100644 --- a/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py +++ b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py @@ -127,3 +127,31 @@ class VirtualOvsBridgeVlanInGuestRecipe(CommonHWSubConfigMixin, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostMirroredRecipe.py b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostMirroredRecipe.py index 5e688621..51989768 100644 --- a/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostMirroredRecipe.py +++ b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostMirroredRecipe.py @@ -127,3 +127,31 @@ class VirtualOvsBridgeVlanInHostMirroredRecipe(CommonHWSubConfigMixin, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostRecipe.py b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostRecipe.py index 3355cdb8..e64a1a64 100644 --- a/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostRecipe.py +++ b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostRecipe.py @@ -118,3 +118,31 @@ class VirtualOvsBridgeVlanInHostRecipe(CommonHWSubConfigMixin, @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VirtualOvsBridgeVlansOverBondRecipe.py b/lnst/Recipes/ENRT/VirtualOvsBridgeVlansOverBondRecipe.py index b1ace765..effa3689 100644 --- a/lnst/Recipes/ENRT/VirtualOvsBridgeVlansOverBondRecipe.py +++ b/lnst/Recipes/ENRT/VirtualOvsBridgeVlansOverBondRecipe.py @@ -191,3 +191,31 @@ class VirtualOvsBridgeVlansOverBondRecipe(VlanPingEvaluatorMixin, def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host1.eth1, self.matched.host2.eth0, self.matched.host2.eth1] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VlansOverBondRecipe.py b/lnst/Recipes/ENRT/VlansOverBondRecipe.py index d4831616..76fbc30a 100644 --- a/lnst/Recipes/ENRT/VlansOverBondRecipe.py +++ b/lnst/Recipes/ENRT/VlansOverBondRecipe.py @@ -308,3 +308,31 @@ class VlansOverBondRecipe(PerfReversibleFlowMixin, VlanPingEvaluatorMixin, """ host1, host2 = self.matched.host1, self.matched.host2 return [host1.eth0, host1.eth1, host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VlansOverTeamRecipe.py b/lnst/Recipes/ENRT/VlansOverTeamRecipe.py index c9fd8dae..ee9bf5ca 100644 --- a/lnst/Recipes/ENRT/VlansOverTeamRecipe.py +++ b/lnst/Recipes/ENRT/VlansOverTeamRecipe.py @@ -157,3 +157,31 @@ class VlansOverTeamRecipe(PerfReversibleFlowMixin, VlanPingEvaluatorMixin, def parallel_stream_qdisc_hw_config_dev_list(self): host1, host2 = self.matched.host1, self.matched.host2 return [host1.eth0, host1.eth1, host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VlansRecipe.py b/lnst/Recipes/ENRT/VlansRecipe.py index 34e7b206..8a640510 100644 --- a/lnst/Recipes/ENRT/VlansRecipe.py +++ b/lnst/Recipes/ENRT/VlansRecipe.py @@ -255,3 +255,31 @@ class VlansRecipe(VlanPingEvaluatorMixin, :any:`PauseFramesHWConfigMixin.pause_frames_dev_list`. """ return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VxlanMulticastRecipe.py b/lnst/Recipes/ENRT/VxlanMulticastRecipe.py index f6eec481..18b2cd15 100644 --- a/lnst/Recipes/ENRT/VxlanMulticastRecipe.py +++ b/lnst/Recipes/ENRT/VxlanMulticastRecipe.py @@ -125,3 +125,31 @@ class VxlanMulticastRecipe(CommonHWSubConfigMixin, BaseEnrtRecipe): def parallel_stream_qdisc_hw_config_dev_list(self): host1, host2 = (self.matched.host1, self.matched.host2) return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2] diff --git a/lnst/Recipes/ENRT/VxlanRemoteRecipe.py b/lnst/Recipes/ENRT/VxlanRemoteRecipe.py index 465fdc14..e094e844 100644 --- a/lnst/Recipes/ENRT/VxlanRemoteRecipe.py +++ b/lnst/Recipes/ENRT/VxlanRemoteRecipe.py @@ -101,3 +101,31 @@ class VxlanRemoteRecipe(CommonHWSubConfigMixin, BaseEnrtRecipe): @property def parallel_stream_qdisc_hw_config_dev_list(self): return [self.matched.host1.eth0, self.matched.host2.eth0] + + @property + def disable_turboboost_host_list(self): + """ + The `disable_turboboost_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableTurboboostMixin` and + :any:`DisableTurboboostMixin.disable_turboboost_host_list`. + """ + return [self.matched.host1, self.matched.host2] + + @property + def disable_idlestates_host_list(self): + """ + The `disable_idlestates_host_list` property value for this scenario is a list + of the matched hosts: + + host1 and host2 + + For detailed explanation of this property see + :any:`DisableIdleStatesMixin` and + :any:`DisableIdleStatesMixin.disable_idlestates_host_list`. + """ + return [self.matched.host1, self.matched.host2]
Signed-off-by: Jan Tluka jtluka@redhat.com --- .../disable_turboboost_mixin.rst | 6 ++++++ docs/source/config_mixins.rst | 1 + .../ENRT/ConfigMixins/DisableTurboboostMixin.py | 17 +++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 docs/source/config_mixin_classes/disable_turboboost_mixin.rst
diff --git a/docs/source/config_mixin_classes/disable_turboboost_mixin.rst b/docs/source/config_mixin_classes/disable_turboboost_mixin.rst new file mode 100644 index 00000000..4ddfc99f --- /dev/null +++ b/docs/source/config_mixin_classes/disable_turboboost_mixin.rst @@ -0,0 +1,6 @@ +DisableTurboboostMixin +====================== + +.. autoclass:: lnst.Recipes.ENRT.ConfigMixins.DisableTurboboostMixin.DisableTurboboostMixin + :members: + :show-inheritance: diff --git a/docs/source/config_mixins.rst b/docs/source/config_mixins.rst index b766a0cf..53451190 100644 --- a/docs/source/config_mixins.rst +++ b/docs/source/config_mixins.rst @@ -13,3 +13,4 @@ ENRT Config Mixins config_mixin_classes/parallel_stream_qdisc_mixin config_mixin_classes/pause_frames_mixin config_mixin_classes/perf_reverse_mixin.rst + config_mixin_classes/disable_turboboost_mixin.rst diff --git a/lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py b/lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py index dc3c0d62..ed8cf2cc 100644 --- a/lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py +++ b/lnst/Recipes/ENRT/ConfigMixins/DisableTurboboostMixin.py @@ -3,6 +3,23 @@ from lnst.Controller.RecipeResults import ResultLevel from lnst.Recipes.ENRT.ConfigMixins import BaseSubConfigMixin
class DisableTurboboostMixin(BaseSubConfigMixin): + """ + This mixin class is an extension to the :any:`BaseEnrtRecipe` class that can + be used to disable CPU turboboost on hosts before running the tests. + + Any recipe that wants to use the mixin must define the + :attr:`disable_turboboost_host_list` property first. + + Note: The mixin uses intel_pstate sysfs interface to disable the CPU feature + and so it is usable only by systems with Intel CPUs. + + :param disable_turboost: + (optional test parameter) boolean to control the CPU turboboost. When + the parameter is set to **True** the CPU turboboost is disabled on all + hosts defined by :attr:`disable_turboboost_host_list` property. Otherwise + this mixin has no effect. + """ + disable_turboboost = BoolParam(default=False)
@property
Signed-off-by: Jan Tluka jtluka@redhat.com --- .../disable_idlestates_mixin.rst | 6 ++++++ docs/source/config_mixins.rst | 1 + .../ENRT/ConfigMixins/DisableIdleStatesMixin.py | 15 +++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 docs/source/config_mixin_classes/disable_idlestates_mixin.rst
diff --git a/docs/source/config_mixin_classes/disable_idlestates_mixin.rst b/docs/source/config_mixin_classes/disable_idlestates_mixin.rst new file mode 100644 index 00000000..48042da9 --- /dev/null +++ b/docs/source/config_mixin_classes/disable_idlestates_mixin.rst @@ -0,0 +1,6 @@ +DisableIdleStatesMixin +====================== + +.. autoclass:: lnst.Recipes.ENRT.ConfigMixins.DisableIdleStatesMixin.DisableIdleStatesMixin + :members: + :show-inheritance: diff --git a/docs/source/config_mixins.rst b/docs/source/config_mixins.rst index 53451190..240f3f9d 100644 --- a/docs/source/config_mixins.rst +++ b/docs/source/config_mixins.rst @@ -14,3 +14,4 @@ ENRT Config Mixins config_mixin_classes/pause_frames_mixin config_mixin_classes/perf_reverse_mixin.rst config_mixin_classes/disable_turboboost_mixin.rst + config_mixin_classes/disable_idlestates_mixin.rst diff --git a/lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py b/lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py index ca45dfb3..45fc95a8 100644 --- a/lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py +++ b/lnst/Recipes/ENRT/ConfigMixins/DisableIdleStatesMixin.py @@ -2,6 +2,21 @@ from lnst.Common.Parameters import IntParam from lnst.Recipes.ENRT.ConfigMixins import BaseSubConfigMixin
class DisableIdleStatesMixin(BaseSubConfigMixin): + """ + This mixin class is an extension to the :any:`BaseEnrtRecipe` class that can + be used to control the CPU idle states before running the tests. + + Any recipe that wants to use the mixin must define the + :attr:`disable_idlestates_host_list` property first. + + :param minimal_idlestates_latency: + (optional test parameter) an integer, the value is passed as the latency + argument of the **'cpupower idle-set -D'** command that will disable + all idle states with an equal or higher latency than the specified value + on all hosts defined by :attr:`disable_idlestates_host_list` property. + If the value is 0 this will effectively disable all CPU idle states. + """ + minimal_idlestates_latency = IntParam()
@property
lnst-developers@lists.fedorahosted.org