From: Christos Sfakianakis <csfakian(a)redhat.com>
Use existing 'adaptive_coalescing' parameter of BaseEnrtRecipe
and updated Device API to disable adaptive coalesce when opted.
Signed-off-by: Christos Sfakianakis <csfakian(a)redhat.com>
---
lnst/Recipes/ENRT/BondRecipe.py | 8 ++++++++
lnst/Recipes/ENRT/DoubleBondRecipe.py | 10 ++++++++++
lnst/Recipes/ENRT/DoubleTeamRecipe.py | 10 ++++++++++
lnst/Recipes/ENRT/SimplePerfRecipe.py | 8 ++++++++
lnst/Recipes/ENRT/TeamRecipe.py | 8 ++++++++
lnst/Recipes/ENRT/TeamVsBondRecipe.py | 10 ++++++++++
lnst/Recipes/ENRT/VlansOverBondRecipe.py | 8 ++++++++
lnst/Recipes/ENRT/VlansOverTeamRecipe.py | 8 ++++++++
lnst/Recipes/ENRT/VlansRecipe.py | 8 ++++++++
9 files changed, 78 insertions(+)
diff --git a/lnst/Recipes/ENRT/BondRecipe.py b/lnst/Recipes/ENRT/BondRecipe.py
index d2268fb..ca3b3b3 100644
--- a/lnst/Recipes/ENRT/BondRecipe.py
+++ b/lnst/Recipes/ENRT/BondRecipe.py
@@ -54,6 +54,10 @@ class BondRecipe(BaseEnrtRecipe):
m2.eth0.ip_add(ipaddress(net_addr6 + "::2/64"))
m2.eth0.up()
+ if not self.params.adaptive_coalescing:
+ for dev in [m1.eth0, m1.eth1, m2.eth0]:
+ dev.disable_coalesce()
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
@@ -70,3 +74,7 @@ class BondRecipe(BaseEnrtRecipe):
if self.params.dev_intr_cpu:
for m in [m1, m2]:
m.run("service irqbalance start")
+
+ if not self.params.adaptive_coalescing:
+ for dev in [m1.eth0, m1.eth1, m2.eth0]:
+ dev.restore_coalesce()
diff --git a/lnst/Recipes/ENRT/DoubleBondRecipe.py
b/lnst/Recipes/ENRT/DoubleBondRecipe.py
index 2ddbec4..5f91a7c 100644
--- a/lnst/Recipes/ENRT/DoubleBondRecipe.py
+++ b/lnst/Recipes/ENRT/DoubleBondRecipe.py
@@ -53,6 +53,11 @@ class DoubleBondRecipe(BaseEnrtRecipe):
m.eth1.up()
m.bond.up()
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ for dev in [m.eth0, m.eth1]:
+ dev.disable_coalesce()
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
@@ -69,3 +74,8 @@ class DoubleBondRecipe(BaseEnrtRecipe):
if self.params.dev_intr_cpu:
for m in [m1, m2]:
m.run("service irqbalance start")
+
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ for dev in [m.eth0, m.eth1]:
+ dev.restore_coalesce()
diff --git a/lnst/Recipes/ENRT/DoubleTeamRecipe.py
b/lnst/Recipes/ENRT/DoubleTeamRecipe.py
index 1dd5899..0df162e 100644
--- a/lnst/Recipes/ENRT/DoubleTeamRecipe.py
+++ b/lnst/Recipes/ENRT/DoubleTeamRecipe.py
@@ -67,6 +67,11 @@ class DoubleTeamRecipe(BaseEnrtRecipe):
m2.eth2.up()
m2.team.up()
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ for dev in [m.eth1, m.eth2]:
+ dev.disable_coalesce()
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
@@ -83,3 +88,8 @@ class DoubleTeamRecipe(BaseEnrtRecipe):
if self.params.dev_intr_cpu:
for m in [m1, m2]:
m.run("service irqbalance start")
+
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ for dev in [m.eth1, m.eth2]:
+ dev.restore_coalesce()
diff --git a/lnst/Recipes/ENRT/SimplePerfRecipe.py
b/lnst/Recipes/ENRT/SimplePerfRecipe.py
index 92e1e1b..4d35eeb 100644
--- a/lnst/Recipes/ENRT/SimplePerfRecipe.py
+++ b/lnst/Recipes/ENRT/SimplePerfRecipe.py
@@ -51,6 +51,10 @@ class SimplePerfRecipe(BaseEnrtRecipe):
m2.eth0.ip_add(ipaddress("fc00::2/64"))
m2.eth0.up()
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ m.eth0.disable_coalesce()
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
@@ -67,6 +71,10 @@ class SimplePerfRecipe(BaseEnrtRecipe):
for m in [m1, m2]:
m.run("service irqbalance start")
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ m.eth0.restore_coalesce()
+
# redo
# m1.eth0.adaptive_tx_coalescing =
self.saved_coalescing_state["m1_if"]["tx"]
# m1.eth0.adaptive_rx_coalescing =
self.saved_coalescing_state["m1_if"]["rx"]
diff --git a/lnst/Recipes/ENRT/TeamRecipe.py b/lnst/Recipes/ENRT/TeamRecipe.py
index 35bd988..b2b65c2 100644
--- a/lnst/Recipes/ENRT/TeamRecipe.py
+++ b/lnst/Recipes/ENRT/TeamRecipe.py
@@ -58,6 +58,10 @@ class TeamRecipe(BaseEnrtRecipe):
m1.team.up()
m2.eth1.up()
+ if not self.params.adaptive_coalescing:
+ for dev in [m1.eth1, m1.eth2, m2.eth1]:
+ dev.disable_coalesce()
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
@@ -74,3 +78,7 @@ class TeamRecipe(BaseEnrtRecipe):
if self.params.dev_intr_cpu:
for m in [m1, m2]:
m.run("service irqbalance start")
+
+ if not self.params.adaptive_coalescing:
+ for dev in [m1.eth1, m1.eth2, m2.eth1]:
+ dev.restore_coalesce()
diff --git a/lnst/Recipes/ENRT/TeamVsBondRecipe.py
b/lnst/Recipes/ENRT/TeamVsBondRecipe.py
index ed555e0..6bf90fb 100644
--- a/lnst/Recipes/ENRT/TeamVsBondRecipe.py
+++ b/lnst/Recipes/ENRT/TeamVsBondRecipe.py
@@ -71,6 +71,11 @@ class TeamVsBondRecipe(BaseEnrtRecipe):
m2.eth2.up()
m2.bond.up()
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ for dev in [m.eth1, m.eth2]:
+ dev.disable_coalesce()
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
@@ -87,3 +92,8 @@ class TeamVsBondRecipe(BaseEnrtRecipe):
if self.params.dev_intr_cpu:
for m in [m1, m2]:
m.run("service irqbalance start")
+
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ for dev in [m.eth1, m.eth2]:
+ dev.restore_coalesce()
diff --git a/lnst/Recipes/ENRT/VlansOverBondRecipe.py
b/lnst/Recipes/ENRT/VlansOverBondRecipe.py
index d332268..b409bdf 100644
--- a/lnst/Recipes/ENRT/VlansOverBondRecipe.py
+++ b/lnst/Recipes/ENRT/VlansOverBondRecipe.py
@@ -71,6 +71,10 @@ class VlansOverBondRecipe(BaseEnrtRecipe):
m2.vlan1.up()
m2.vlan2.up()
+ if not self.params.adaptive_coalescing:
+ for dev in [m1.eth0, m1.eth1, m2.eth0]:
+ dev.disable_coalesce()
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
@@ -87,3 +91,7 @@ class VlansOverBondRecipe(BaseEnrtRecipe):
if self.params.dev_intr_cpu:
for m in [m1, m2]:
m1.run("service irqbalance start")
+
+ if not self.params.adaptive_coalescing:
+ for dev in [m1.eth0, m1.eth1, m2.eth0]:
+ dev.restore_coalesce()
diff --git a/lnst/Recipes/ENRT/VlansOverTeamRecipe.py
b/lnst/Recipes/ENRT/VlansOverTeamRecipe.py
index 5f5ad0b..303c05d 100644
--- a/lnst/Recipes/ENRT/VlansOverTeamRecipe.py
+++ b/lnst/Recipes/ENRT/VlansOverTeamRecipe.py
@@ -74,6 +74,10 @@ class VlansOverTeamRecipe(BaseEnrtRecipe):
m2.vlan1.up()
m2.vlan2.up()
+ if not self.params.adaptive_coalescing:
+ for dev in [m1.eth1, m1.eth2, m2.eth1]:
+ dev.disable_coalesce()
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
@@ -90,3 +94,7 @@ class VlansOverTeamRecipe(BaseEnrtRecipe):
if self.params.dev_intr_cpu:
for m in [m1, m2]:
m.run("service irqbalance start")
+
+ if not self.params.adaptive_coalescing:
+ for dev in [m1.eth1, m1.eth2, m2.eth1]:
+ dev.restore_coalesce()
diff --git a/lnst/Recipes/ENRT/VlansRecipe.py b/lnst/Recipes/ENRT/VlansRecipe.py
index 44497b9..8caf5d3 100644
--- a/lnst/Recipes/ENRT/VlansRecipe.py
+++ b/lnst/Recipes/ENRT/VlansRecipe.py
@@ -61,6 +61,10 @@ class VlansRecipe(BaseEnrtRecipe):
m2.vlan1.up()
m2.vlan2.up()
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ m.eth0.disable_coalesce()
+
#TODO better service handling through HostAPI
if self.params.dev_intr_cpu:
for m in [m1, m2]:
@@ -76,3 +80,7 @@ class VlansRecipe(BaseEnrtRecipe):
if self.params.dev_intr_cpu:
for m in [m1, m2]:
m.run("service irqbalance start")
+
+ if not self.params.adaptive_coalescing:
+ for m in [m1, m2]:
+ m.eth0.restore_coalesce()
--
2.17.1