From: Christos Sfakianakis <csfakian(a)redhat.com>
Replace the generic 'hw_dev_list' in BaseHWConfigMixin class with a
specialized list in each subclass. This allows needed flexibility
for customized h/w configuration.
Signed-off-by: Christos Sfakianakis <csfakian(a)redhat.com>
---
lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py | 8 ++------
lnst/Recipes/ENRT/ConfigMixins/CoalescingHWConfigMixin.py | 6 ++++++
.../ENRT/ConfigMixins/DevInterruptHWConfigMixin.py | 8 ++++++--
lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py | 6 +++++-
.../ENRT/ConfigMixins/ParallelStreamQDiscHWConfigMixin.py | 6 +++++-
5 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
b/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
index 1550691..633a0fe 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
@@ -1,8 +1,4 @@
class BaseHWConfigMixin(object):
- @property
- def hw_config_dev_list(self):
- return []
-
def hw_config(self, config):
config.hw_config = {}
@@ -12,11 +8,11 @@ class BaseHWConfigMixin(object):
def describe_hw_config(self, config):
return []
- def _configure_dev_attribute(self, config, attr_name, value):
+ def _configure_dev_attribute(self, config, dev_list, attr_name, value):
hw_config = config.hw_config
if value:
attr_cfg = hw_config[attr_name + "_configuration"] = {}
- for dev in self.hw_config_dev_list:
+ for dev in dev_list:
attr_cfg[dev] = {}
attr_cfg[dev]["original"] = getattr(dev, attr_name)
setattr(dev, attr_name, value)
diff --git a/lnst/Recipes/ENRT/ConfigMixins/CoalescingHWConfigMixin.py
b/lnst/Recipes/ENRT/ConfigMixins/CoalescingHWConfigMixin.py
index d2e0eae..23fb208 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/CoalescingHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/CoalescingHWConfigMixin.py
@@ -7,16 +7,22 @@ class CoalescingHWConfigMixin(BaseHWConfigMixin):
adaptive_rx_coalescing = BoolParam(mandatory=False)
adaptive_tx_coalescing = BoolParam(mandatory=False)
+ @property
+ def coalescing_hw_config_dev_list(self):
+ return []
+
def hw_config(self, config):
super().hw_config(config)
self._configure_dev_attribute(
config,
+ self.coalescing_hw_config_dev_list,
"adaptive_rx_coalescing",
getattr(self.params, "adaptive_rx_coalescing", None),
)
self._configure_dev_attribute(
config,
+ self.coalescing_hw_config_dev_list,
"adaptive_tx_coalescing",
getattr(self.params, "adaptive_tx_coalescing", None),
)
diff --git a/lnst/Recipes/ENRT/ConfigMixins/DevInterruptHWConfigMixin.py
b/lnst/Recipes/ENRT/ConfigMixins/DevInterruptHWConfigMixin.py
index 0a47255..4eb6c59 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/DevInterruptHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/DevInterruptHWConfigMixin.py
@@ -9,6 +9,10 @@ from lnst.Recipes.ENRT.ConfigMixins.BaseHWConfigMixin import
BaseHWConfigMixin
class DevInterruptHWConfigMixin(BaseHWConfigMixin):
dev_intr_cpu = IntParam(mandatory=False)
+ @property
+ def dev_interrupt_hw_config_dev_list(self):
+ return []
+
def hw_config(self, config):
super().hw_config(config)
@@ -20,14 +24,14 @@ class DevInterruptHWConfigMixin(BaseHWConfigMixin):
intr_cfg["irqbalance_hosts"] = []
hosts = []
- for dev in self.hw_config_dev_list:
+ for dev in self.dev_interrupt_hw_config_dev_list:
if dev.host not in hosts:
hosts.append(dev.host)
for host in hosts:
host.run("service irqbalance stop")
intr_cfg["irqbalance_hosts"].append(host)
- for dev in self.hw_config_dev_list:
+ for dev in self.dev_interrupt_hw_config_dev_list:
# TODO better service handling through HostAPI
self._pin_dev_interrupts(dev, self.params.dev_intr_cpu)
intr_cfg["irq_devs"][dev] = self.params.dev_intr_cpu
diff --git a/lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py
b/lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py
index 6bcf0c5..143c0ea 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/MTUHWConfigMixin.py
@@ -6,11 +6,15 @@ from lnst.Recipes.ENRT.ConfigMixins.BaseHWConfigMixin import
BaseHWConfigMixin
class MTUHWConfigMixin(BaseHWConfigMixin):
mtu = IntParam(mandatory=False)
+ @property
+ def mtu_hw_config_dev_list(self):
+ return []
+
def hw_config(self, config):
super().hw_config(config)
self._configure_dev_attribute(
- config, "mtu", getattr(self.params, "mtu", None)
+ config, self.mtu_hw_config_dev_list, "mtu", getattr(self.params,
"mtu", None)
)
def describe_hw_config(self, config):
diff --git a/lnst/Recipes/ENRT/ConfigMixins/ParallelStreamQDiscHWConfigMixin.py
b/lnst/Recipes/ENRT/ConfigMixins/ParallelStreamQDiscHWConfigMixin.py
index 7ca5741..dc6e011 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/ParallelStreamQDiscHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/ParallelStreamQDiscHWConfigMixin.py
@@ -2,6 +2,10 @@ from lnst.Recipes.ENRT.ConfigMixins.BaseHWConfigMixin import
BaseHWConfigMixin
class ParallelStreamQDiscHWConfigMixin(BaseHWConfigMixin):
+ @property
+ def parallel_stream_qdisc_hw_config_dev_list(self):
+ return []
+
def hw_config(self, config):
super().hw_config(config)
@@ -10,7 +14,7 @@ class ParallelStreamQDiscHWConfigMixin(BaseHWConfigMixin):
parallel_streams = getattr(self.params, "perf_parallel_streams", None)
if parallel_streams is not None and parallel_streams > 1:
hw_config["parallel_stream_devs"] = []
- for dev in self.hw_config_dev_list:
+ for dev in self.parallel_stream_qdisc_hw_config_dev_list:
dev.host.run("tc qdisc replace dev %s root mq" % dev.name)
hw_config["parallel_stream_devs"].append(dev)
--
2.17.1