From: Christos Sfakianakis <csfakian(a)redhat.com>
Use 'adaptive_rx_coalescing'/adaptive_tx_coalescing parameters of
BaseEnrtRecipe and updated Device API to modify adaptive coalescence
when opted.
Signed-off-by: Christos Sfakianakis <csfakian(a)redhat.com>
---
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 3 ++-
lnst/Recipes/ENRT/BondRecipe.py | 7 +++++++
lnst/Recipes/ENRT/DoubleBondRecipe.py | 9 +++++++++
lnst/Recipes/ENRT/DoubleTeamRecipe.py | 9 +++++++++
lnst/Recipes/ENRT/SimplePerfRecipe.py | 7 +++++++
lnst/Recipes/ENRT/TeamRecipe.py | 7 +++++++
lnst/Recipes/ENRT/TeamVsBondRecipe.py | 9 +++++++++
lnst/Recipes/ENRT/VlansOverBondRecipe.py | 7 +++++++
lnst/Recipes/ENRT/VlansOverTeamRecipe.py | 7 +++++++
lnst/Recipes/ENRT/VlansRecipe.py | 7 +++++++
10 files changed, 71 insertions(+), 1 deletion(-)
diff --git a/lnst/Recipes/ENRT/BaseEnrtRecipe.py b/lnst/Recipes/ENRT/BaseEnrtRecipe.py
index df4b456..ba4ff41 100644
--- a/lnst/Recipes/ENRT/BaseEnrtRecipe.py
+++ b/lnst/Recipes/ENRT/BaseEnrtRecipe.py
@@ -72,7 +72,8 @@ class BaseEnrtRecipe(PingTestAndEvaluate, PerfRecipe):
driver = StrParam(default="ixgbe")
- adaptive_coalescing = BoolParam(default=True)
+ adaptive_rx_coalescing = BoolParam(mandatory=False)
+ adaptive_tx_coalescing = BoolParam(mandatory=False)
mtu = IntParam(mandatory=False)
diff --git a/lnst/Recipes/ENRT/BondRecipe.py b/lnst/Recipes/ENRT/BondRecipe.py
index d2268fb..4132f93 100644
--- a/lnst/Recipes/ENRT/BondRecipe.py
+++ b/lnst/Recipes/ENRT/BondRecipe.py
@@ -54,6 +54,13 @@ class BondRecipe(BaseEnrtRecipe):
m2.eth0.ip_add(ipaddress(net_addr6 + "::2/64"))
m2.eth0.up()
+ if "adaptive_rx_coalescing" in self.params:
+ for dev in [m1.eth0, m1.eth1, m2.eth0]:
+ dev.adaptive_rx_coalescing = self.params.adaptive_rx_coalescing
+ if "adaptive_tx_coalescing" in self.params:
+ for dev in [m1.eth0, m1.eth1, m2.eth0]:
+ dev.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
diff --git a/lnst/Recipes/ENRT/DoubleBondRecipe.py
b/lnst/Recipes/ENRT/DoubleBondRecipe.py
index 2ddbec4..a135aee 100644
--- a/lnst/Recipes/ENRT/DoubleBondRecipe.py
+++ b/lnst/Recipes/ENRT/DoubleBondRecipe.py
@@ -53,6 +53,15 @@ class DoubleBondRecipe(BaseEnrtRecipe):
m.eth1.up()
m.bond.up()
+ if "adaptive_tx_coalescing" in self.params:
+ for m in [m1, m2]:
+ for dev in [m.eth0, m.eth1]:
+ dev.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+ if "adaptive_tx_coalescing" in self.params:
+ for m in [m1, m2]:
+ for dev in [m.eth0, m.eth1]:
+ dev.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
diff --git a/lnst/Recipes/ENRT/DoubleTeamRecipe.py
b/lnst/Recipes/ENRT/DoubleTeamRecipe.py
index 1dd5899..cfd7715 100644
--- a/lnst/Recipes/ENRT/DoubleTeamRecipe.py
+++ b/lnst/Recipes/ENRT/DoubleTeamRecipe.py
@@ -67,6 +67,15 @@ class DoubleTeamRecipe(BaseEnrtRecipe):
m2.eth2.up()
m2.team.up()
+ if "adaptive_rx_coalescing" in self.params:
+ for m in [m1, m2]:
+ for dev in [m.eth1, m.eth2]:
+ dev.adaptive_rx_coalescing = self.params.adaptive_rx_coalescing
+ if "adaptive_tx_coalescing" in self.params:
+ for m in [m1, m2]:
+ for dev in [m.eth1, m.eth2]:
+ dev.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
diff --git a/lnst/Recipes/ENRT/SimplePerfRecipe.py
b/lnst/Recipes/ENRT/SimplePerfRecipe.py
index 92e1e1b..32a4fa8 100644
--- a/lnst/Recipes/ENRT/SimplePerfRecipe.py
+++ b/lnst/Recipes/ENRT/SimplePerfRecipe.py
@@ -51,6 +51,13 @@ class SimplePerfRecipe(BaseEnrtRecipe):
m2.eth0.ip_add(ipaddress("fc00::2/64"))
m2.eth0.up()
+ if "adaptive_rx_coalescing" in self.params:
+ for m in [m1, m2]:
+ m.eth0.adaptive_rx_coalescing = self.params.adaptive_rx_coalescing
+ if "adaptive_tx_coalescing" in self.params:
+ for m in [m1, m2]:
+ m.eth0.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
diff --git a/lnst/Recipes/ENRT/TeamRecipe.py b/lnst/Recipes/ENRT/TeamRecipe.py
index 35bd988..036a36e 100644
--- a/lnst/Recipes/ENRT/TeamRecipe.py
+++ b/lnst/Recipes/ENRT/TeamRecipe.py
@@ -58,6 +58,13 @@ class TeamRecipe(BaseEnrtRecipe):
m1.team.up()
m2.eth1.up()
+ if "adaptive_rx_coalescing" in self.params:
+ for dev in [m1.eth1, m1.eth2, m2.eth1]:
+ dev.adaptive_rx_coalescing = self.params.adaptive_rx_coalescing
+ if "adaptive_tx_coalescing" in self.params:
+ for dev in [m1.eth1, m1.eth2, m2.eth1]:
+ dev.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
diff --git a/lnst/Recipes/ENRT/TeamVsBondRecipe.py
b/lnst/Recipes/ENRT/TeamVsBondRecipe.py
index 69d038f..ccf2b21 100644
--- a/lnst/Recipes/ENRT/TeamVsBondRecipe.py
+++ b/lnst/Recipes/ENRT/TeamVsBondRecipe.py
@@ -71,6 +71,15 @@ class TeamVsBondRecipe(BaseEnrtRecipe):
m2.eth2.up()
m2.bond.up()
+ if "adaptive_rx_coalescing" in self.params:
+ for m in [m1, m2]:
+ for dev in [m.eth1, m.eth2]:
+ dev.adaptive_rx_coalescing = self.params.adaptive_rx_coalescing
+ if "adaptive_tx_coalescing" in self.params:
+ for m in [m1, m2]:
+ for dev in [m.eth1, m.eth2]:
+ dev.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
diff --git a/lnst/Recipes/ENRT/VlansOverBondRecipe.py
b/lnst/Recipes/ENRT/VlansOverBondRecipe.py
index da988c7..2eae23e 100644
--- a/lnst/Recipes/ENRT/VlansOverBondRecipe.py
+++ b/lnst/Recipes/ENRT/VlansOverBondRecipe.py
@@ -75,6 +75,13 @@ class VlansOverBondRecipe(BaseEnrtRecipe):
m2.vlan1.up()
m2.vlan2.up()
+ if "adaptive_rx_coalescing" in self.params:
+ for dev in [m1.eth0, m1.eth1, m2.eth0]:
+ dev.adaptive_rx_coalescing = self.params.adaptive_rx_coalescing
+ if "adaptive_tx_coalescing" in self.params:
+ for dev in [m1.eth0, m1.eth1, m2.eth0]:
+ dev.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
diff --git a/lnst/Recipes/ENRT/VlansOverTeamRecipe.py
b/lnst/Recipes/ENRT/VlansOverTeamRecipe.py
index 813e7c3..c5cd954 100644
--- a/lnst/Recipes/ENRT/VlansOverTeamRecipe.py
+++ b/lnst/Recipes/ENRT/VlansOverTeamRecipe.py
@@ -75,6 +75,13 @@ class VlansOverTeamRecipe(BaseEnrtRecipe):
m2.vlan1.up()
m2.vlan2.up()
+ if "adaptive_rx_coalescing" in self.params:
+ for dev in [m1.eth1, m1.eth2, m2.eth1]:
+ dev.adaptive_rx_coalescing = self.params.adaptive_rx_coalescing
+ if "adaptive_tx_coalescing" in self.params:
+ for dev in [m1.eth1, m1.eth2, m2.eth1]:
+ dev.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
diff --git a/lnst/Recipes/ENRT/VlansRecipe.py b/lnst/Recipes/ENRT/VlansRecipe.py
index ffd98f7..6786724 100644
--- a/lnst/Recipes/ENRT/VlansRecipe.py
+++ b/lnst/Recipes/ENRT/VlansRecipe.py
@@ -65,6 +65,13 @@ class VlansRecipe(BaseEnrtRecipe):
m2.vlan1.up()
m2.vlan2.up()
+ if "adaptive_rx_coalescing" in self.params:
+ for m in [m1, m2]:
+ m.eth0.adaptive_rx_coalescing = self.params.adaptive_rx_coalescing
+ if "adaptive_tx_coalescing" in self.params:
+ for m in [m1, m2]:
+ m.eth0.adaptive_tx_coalescing = self.params.adaptive_tx_coalescing
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
--
2.17.1