[PATCH-next 00/16] CPU Utilization measurement and Perf refactoring
by olichtne@redhat.com
From: Ondrej Lichtner <olichtne(a)redhat.com>
Hi all,
the core of this patchset is refactorization of the PerfTestAndEvaluate
recipe template into the lnst.RecipeCommon.Perf package implementing a
template for generic performance measurement tests, moving the
current MeasurementTools (Iperf and TRex) to fit this new model and
adding CPUUtilization measurements.
All of this is then incorporated into the BaseEnrtRecipe which is
currently the main user of the Perf recipe template.
There's also a couple of minor bug fixes and updates to the generic LNST
API based on the experience of using them wrt. the main changes of this
patchset.
!!!!!!!!
Some of these feel more like Proposals at this point though and I'm not
sure if they're good ideas. This is mostly related to the prepare_job
method of the Namespace class. It should definitely be considered and
thought about before fully accepting it.
!!!!!!!!
Additional note: this patchset breaks the ENRT/OvS_DPDK_PvP.py due to
the reorganization of the PerfRecipe. I wanted to send the patchset ASAP
so that it can get some reviews. I'll work on updating the OvS_DPDK_PvP
recipe while those reviews are coming in. And I won't merge this
patchset without the additional fixes for Ovs_DPDK_PvP...
Thanks,
-Ondrej
Ondrej Lichtner (16):
lnst.Common.Utils: change std_deviation calculation
lnst.Tests.Iperf: set target bitrate to 0
lnst.Common.Parameters: add ListParam
lnst.Tests.Iperf: fix parallel parameter
lnst.Tests.Iperf: add runtime_estimate method
lnst.Tests.Iperf: cleanup imports
lnst.Controller.Job: change wait default timeout
lnst.Controller.RecipeResults: add data_level attribute
lnst.Controller.RunSummaryFormatter: fix header format
lnst.Controller.Namespace: add prepare_job method for delayed start
lnst.Controller.Job: expose the what attribute
add lnst.Tests.CPUStatMonitor
lnst.RecipeCommon.{Perf, PerfResult}: refactoring
add lnst.RecipeCommon.Perf.Measurements package
lnst.Controller.RecipeResults: rename desc to description
lnst.Controller.RunSummaryFormatter: improve multiline result
descriptions
lnst/Common/Parameters.py | 18 ++
lnst/Common/Utils.py | 8 +-
lnst/Controller/Job.py | 21 +-
lnst/Controller/Namespace.py | 5 +
lnst/Controller/Recipe.py | 6 +-
lnst/Controller/RecipeResults.py | 41 ++--
lnst/Controller/RunSummaryFormatter.py | 10 +-
lnst/RecipeCommon/IperfMeasurementTool.py | 83 -------
lnst/RecipeCommon/Perf.py | 120 -----------
.../Perf/Measurements/BaseCPUMeasurement.py | 109 ++++++++++
.../Perf/Measurements/BaseFlowMeasurement.py | 202 ++++++++++++++++++
.../Perf/Measurements/BaseMeasurement.py | 29 +++
.../Perf/Measurements/IperfFlowMeasurement.py | 157 ++++++++++++++
.../Perf/Measurements/MeasurementError.py | 4 +
.../Perf/Measurements/StatCPUMeasurement.py | 88 ++++++++
.../Measurements/TRexMeasurement.py} | 0
.../Perf/Measurements/__init__.py | 3 +
lnst/RecipeCommon/Perf/Recipe.py | 73 +++++++
.../{PerfResult.py => Perf/Results.py} | 65 +++---
lnst/RecipeCommon/Perf/__init__.py | 0
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 45 ++--
lnst/Tests/CPUStatMonitor.py | 113 ++++++++++
lnst/Tests/Iperf.py | 14 +-
23 files changed, 923 insertions(+), 291 deletions(-)
delete mode 100644 lnst/RecipeCommon/IperfMeasurementTool.py
delete mode 100644 lnst/RecipeCommon/Perf.py
create mode 100644 lnst/RecipeCommon/Perf/Measurements/BaseCPUMeasurement.py
create mode 100644 lnst/RecipeCommon/Perf/Measurements/BaseFlowMeasurement.py
create mode 100644 lnst/RecipeCommon/Perf/Measurements/BaseMeasurement.py
create mode 100644 lnst/RecipeCommon/Perf/Measurements/IperfFlowMeasurement.py
create mode 100644 lnst/RecipeCommon/Perf/Measurements/MeasurementError.py
create mode 100644 lnst/RecipeCommon/Perf/Measurements/StatCPUMeasurement.py
rename lnst/RecipeCommon/{TRexMeasurementTool.py => Perf/Measurements/TRexMeasurement.py} (100%)
create mode 100644 lnst/RecipeCommon/Perf/Measurements/__init__.py
create mode 100644 lnst/RecipeCommon/Perf/Recipe.py
rename lnst/RecipeCommon/{PerfResult.py => Perf/Results.py} (72%)
create mode 100644 lnst/RecipeCommon/Perf/__init__.py
create mode 100644 lnst/Tests/CPUStatMonitor.py
--
2.19.1
5 years, 5 months
[PATCH-next 00/11] Ported phase2 recipes (v3)
by csfakian@redhat.com
From: Christos Sfakianakis <csfakian(a)redhat.com>
This patch set includes:
- ported python recipes [1-9] corresponding to old recipes
under /regression/tests/phase2/.
- a commit [10] that modifies device naming to better account
for tap devices
- a commit [11] that modifies lnst/Devices/OvsBridgeDevice and
is logically separate from the previous
Christos Sfakianakis (11):
lnst.Recipes.ENRT: add TeamRecipe
lnst.Recipes.ENRT: add DoubleTeamRecipe
lnst.Recipes.ENRT: add TeamVsBondRecipe
lnst.Recipes.ENRT: add VlansOverTeamRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlanInGuestRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlanInHostRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlanInGuestMirroredRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlanInHostMirroredRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlansOverBondRecipe
lnst.Recipes.ENRT: update names of guest devices
lnst.Devices: modify _type_init of OvsBridgeDevice
lnst/Devices/OvsBridgeDevice.py | 13 +-
lnst/Recipes/ENRT/DoubleTeamRecipe.py | 83 ++++++++++
lnst/Recipes/ENRT/TeamRecipe.py | 74 +++++++++
lnst/Recipes/ENRT/TeamVsBondRecipe.py | 87 +++++++++++
...rtualOvsBridgeVlanInGuestMirroredRecipe.py | 110 +++++++++++++
.../ENRT/VirtualOvsBridgeVlanInGuestRecipe.py | 89 +++++++++++
...irtualOvsBridgeVlanInHostMirroredRecipe.py | 102 ++++++++++++
.../ENRT/VirtualOvsBridgeVlanInHostRecipe.py | 87 +++++++++++
.../VirtualOvsBridgeVlansOverBondRecipe.py | 147 ++++++++++++++++++
lnst/Recipes/ENRT/VlansOverTeamRecipe.py | 91 +++++++++++
10 files changed, 871 insertions(+), 12 deletions(-)
create mode 100644 lnst/Recipes/ENRT/DoubleTeamRecipe.py
create mode 100644 lnst/Recipes/ENRT/TeamRecipe.py
create mode 100644 lnst/Recipes/ENRT/TeamVsBondRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestMirroredRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostMirroredRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlansOverBondRecipe.py
create mode 100644 lnst/Recipes/ENRT/VlansOverTeamRecipe.py
--
2.17.1
5 years, 5 months
[PATCH-next] lnst.Recipes.ENRT: modify naming for tap devices
by csfakian@redhat.com
From: Christos Sfakianakis <csfakian(a)redhat.com>
Rename all devices that have "to_guest" label to tap[0-9] instead
of eth[0-9] to avoid confusion.
v2: Remove 'tap' names from guest machines (they are 'eth'
from their point of view)
Signed-off-by: Christos Sfakianakis <csfakian(a)redhat.com>
---
.../VirtualBridgeVlanInGuestMirroredRecipe.py | 16 ++++++++--------
.../ENRT/VirtualBridgeVlanInGuestRecipe.py | 8 ++++----
.../VirtualBridgeVlanInHostMirroredRecipe.py | 16 ++++++++--------
.../ENRT/VirtualBridgeVlanInHostRecipe.py | 8 ++++----
.../ENRT/VirtualBridgeVlansOverBondRecipe.py | 8 ++++----
5 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestMirroredRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestMirroredRecipe.py
index d349d5b..84fb0ea 100644
--- a/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestMirroredRecipe.py
+++ b/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestMirroredRecipe.py
@@ -12,11 +12,11 @@ from lnst.Devices import BridgeDevice
class VirtualBridgeVlanInGuestMirroredRecipe(BaseEnrtRecipe):
host1 = HostReq()
host1.eth0 = DeviceReq(label="to_switch")
- host1.eth1 = DeviceReq(label="to_guest1")
+ host1.tap0 = DeviceReq(label="to_guest1")
host2 = HostReq()
host2.eth0 = DeviceReq(label="to_switch")
- host2.eth1 = DeviceReq(label="to_guest2")
+ host2.tap0 = DeviceReq(label="to_guest2")
guest1 = HostReq()
guest1.eth0 = DeviceReq(label="to_guest1")
@@ -35,16 +35,16 @@ class VirtualBridgeVlanInGuestMirroredRecipe(BaseEnrtRecipe):
host1, host2, guest1, guest2 = self.matched.host1, self.matched.host2, self.matched.guest1, self.matched.guest2
host1.eth0.down()
- host1.eth1.down()
+ host1.tap0.down()
host1.br0 = BridgeDevice()
host1.br0.slave_add(host1.eth0)
- host1.br0.slave_add(host1.eth1)
+ host1.br0.slave_add(host1.tap0)
host2.eth0.down()
- host2.eth1.down()
+ host2.tap0.down()
host2.br0 = BridgeDevice()
host2.br0.slave_add(host2.eth0)
- host2.br0.slave_add(host2.eth1)
+ host2.br0.slave_add(host2.tap0)
guest1.eth0.down()
guest1.vlan1 = VlanDevice(realdev=guest1.eth0, vlan_id=10)
@@ -75,10 +75,10 @@ class VirtualBridgeVlanInGuestMirroredRecipe(BaseEnrtRecipe):
guest2.vlan1.ip_add(ipaddress(net_addr6_1 + "::4/64"))
host1.eth0.up()
- host1.eth1.up()
+ host1.tap0.up()
host1.br0.up()
host2.eth0.up()
- host2.eth1.up()
+ host2.tap0.up()
host2.br0.up()
guest1.eth0.up()
guest1.vlan1.up()
diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestRecipe.py
index 4a90a1b..e78d420 100644
--- a/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestRecipe.py
+++ b/lnst/Recipes/ENRT/VirtualBridgeVlanInGuestRecipe.py
@@ -12,7 +12,7 @@ from lnst.Devices import BridgeDevice
class VirtualBridgeVlanInGuestRecipe(BaseEnrtRecipe):
host1 = HostReq()
host1.eth0 = DeviceReq(label="to_switch")
- host1.eth1 = DeviceReq(label="to_guest")
+ host1.tap0 = DeviceReq(label="to_guest")
host2 = HostReq()
host2.eth0 = DeviceReq(label="to_switch")
@@ -31,10 +31,10 @@ class VirtualBridgeVlanInGuestRecipe(BaseEnrtRecipe):
host1, host2, guest1 = self.matched.host1, self.matched.host2, self.matched.guest1
host1.eth0.down()
- host1.eth1.down()
+ host1.tap0.down()
host1.br0 = BridgeDevice()
host1.br0.slave_add(host1.eth0)
- host1.br0.slave_add(host1.eth1)
+ host1.br0.slave_add(host1.tap0)
host2.eth0.down()
host2.vlan1 = VlanDevice(realdev=host2.eth0, vlan_id=10)
@@ -63,7 +63,7 @@ class VirtualBridgeVlanInGuestRecipe(BaseEnrtRecipe):
guest1.vlan1.ip_add(ipaddress(net_addr6_1 + "::3/64"))
host1.eth0.up()
- host1.eth1.up()
+ host1.tap0.up()
host1.br0.up()
host2.eth0.up()
host2.vlan1.up()
diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlanInHostMirroredRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlanInHostMirroredRecipe.py
index e85b54c..f1c42e6 100644
--- a/lnst/Recipes/ENRT/VirtualBridgeVlanInHostMirroredRecipe.py
+++ b/lnst/Recipes/ENRT/VirtualBridgeVlanInHostMirroredRecipe.py
@@ -12,11 +12,11 @@ from lnst.Devices import BridgeDevice
class VirtualBridgeVlanInHostMirroredRecipe(BaseEnrtRecipe):
host1 = HostReq()
host1.eth0 = DeviceReq(label="to_switch")
- host1.eth1 = DeviceReq(label="to_guest1")
+ host1.tap0 = DeviceReq(label="to_guest1")
host2 = HostReq()
host2.eth0 = DeviceReq(label="to_switch")
- host2.eth1 = DeviceReq(label="to_guest2")
+ host2.tap0 = DeviceReq(label="to_guest2")
guest1 = HostReq()
guest1.eth0 = DeviceReq(label="to_guest1")
@@ -35,18 +35,18 @@ class VirtualBridgeVlanInHostMirroredRecipe(BaseEnrtRecipe):
host1, host2, guest1, guest2 = self.matched.host1, self.matched.host2, self.matched.guest1, self.matched.guest2
host1.eth0.down()
- host1.eth1.down()
+ host1.tap0.down()
host1.vlan1 = VlanDevice(realdev=host1.eth0, vlan_id=10)
host1.br0 = BridgeDevice()
host1.br0.slave_add(host1.vlan1)
- host1.br0.slave_add(host1.eth1)
+ host1.br0.slave_add(host1.tap0)
host2.eth0.down()
- host2.eth1.down()
+ host2.tap0.down()
host2.vlan1 = VlanDevice(realdev=host2.eth0, vlan_id=10)
host2.br0 = BridgeDevice()
host2.br0.slave_add(host2.vlan1)
- host2.br0.slave_add(host2.eth1)
+ host2.br0.slave_add(host2.tap0)
guest1.eth0.down()
@@ -73,11 +73,11 @@ class VirtualBridgeVlanInHostMirroredRecipe(BaseEnrtRecipe):
guest2.eth0.ip_add(ipaddress(net_addr6_1 + "::4/64"))
host1.eth0.up()
- host1.eth1.up()
+ host1.tap0.up()
host1.vlan1.up()
host1.br0.up()
host2.eth0.up()
- host2.eth1.up()
+ host2.tap0.up()
host2.vlan1.up()
host2.br0.up()
guest1.eth0.up()
diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlanInHostRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlanInHostRecipe.py
index 1382b2b..466a2a2 100644
--- a/lnst/Recipes/ENRT/VirtualBridgeVlanInHostRecipe.py
+++ b/lnst/Recipes/ENRT/VirtualBridgeVlanInHostRecipe.py
@@ -12,7 +12,7 @@ from lnst.Devices import BridgeDevice
class VirtualBridgeVlanInHostRecipe(BaseEnrtRecipe):
host1 = HostReq()
host1.eth0 = DeviceReq(label="to_switch")
- host1.eth1 = DeviceReq(label="to_guest")
+ host1.tap0 = DeviceReq(label="to_guest")
host2 = HostReq()
host2.eth0 = DeviceReq(label="to_switch")
@@ -31,11 +31,11 @@ class VirtualBridgeVlanInHostRecipe(BaseEnrtRecipe):
host1, host2, guest1 = self.matched.host1, self.matched.host2, self.matched.guest1
host1.eth0.down()
- host1.eth1.down()
+ host1.tap0.down()
host1.vlan1 = VlanDevice(realdev=host1.eth0, vlan_id=10)
host1.br0 = BridgeDevice()
host1.br0.slave_add(host1.vlan1)
- host1.br0.slave_add(host1.eth1)
+ host1.br0.slave_add(host1.tap0)
host2.eth0.down()
host2.vlan1 = VlanDevice(realdev=host2.eth0, vlan_id=10)
@@ -61,7 +61,7 @@ class VirtualBridgeVlanInHostRecipe(BaseEnrtRecipe):
guest1.eth0.ip_add(ipaddress(net_addr6_1 + "::3/64"))
host1.eth0.up()
- host1.eth1.up()
+ host1.tap0.up()
host1.vlan1.up()
host1.br0.up()
host2.eth0.up()
diff --git a/lnst/Recipes/ENRT/VirtualBridgeVlansOverBondRecipe.py b/lnst/Recipes/ENRT/VirtualBridgeVlansOverBondRecipe.py
index 587bd95..5917b88 100644
--- a/lnst/Recipes/ENRT/VirtualBridgeVlansOverBondRecipe.py
+++ b/lnst/Recipes/ENRT/VirtualBridgeVlansOverBondRecipe.py
@@ -14,14 +14,14 @@ class VirtualBridgeVlansOverBondRecipe(BaseEnrtRecipe):
host1 = HostReq()
host1.eth0 = DeviceReq(label="to_switch")
host1.eth1 = DeviceReq(label="to_switch")
- host1.eth2 = DeviceReq(label="to_guest1")
- host1.eth3 = DeviceReq(label="to_guest2")
+ host1.tap0 = DeviceReq(label="to_guest1")
+ host1.tap1 = DeviceReq(label="to_guest2")
host2 = HostReq()
host2.eth0 = DeviceReq(label="to_switch")
host2.eth1 = DeviceReq(label="to_switch")
- host2.eth2 = DeviceReq(label="to_guest3")
- host2.eth3 = DeviceReq(label="to_guest4")
+ host2.tap0 = DeviceReq(label="to_guest3")
+ host2.tap1 = DeviceReq(label="to_guest4")
guest1 = HostReq()
guest1.eth0 = DeviceReq(label="to_guest1")
--
2.17.1
5 years, 5 months
代开正规票13805601835
by szhly@szonline.net
代开本地正规发票
可查验后付钱
需要联系:13805601835 邹本雨 (加微信同号)
5 years, 5 months
[PATCH-next 00/10] Ported phase2 recipes (v2)
by csfakian@redhat.com
From: Christos Sfakianakis <csfakian(a)redhat.com>
All devices that have "to_guest" label are actually tap devices. They
are renamed to 'tap' instead of 'eth' to avoid confusion. Affected
recipes are (rest are included for completeness):
- VirtualOvsBridgeVlansOverBondRecipe
- VirtualOvsBridgeVlanInHostMirroredRecipe
- VirtualOvsBridgeVlanInGuestMirroredRecipe
- VirtualOvsBridgeVlanInHostRecipe
- VirtualOvsBridgeVlanInGuestRecipe
Christos Sfakianakis (10):
lnst.Recipes.ENRT: add TeamRecipe
lnst.Recipes.ENRT: add DoubleTeamRecipe
lnst.Recipes.ENRT: add TeamVsBondRecipe
lnst.Recipes.ENRT: add VlansOverTeamRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlanInGuestRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlanInHostRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlanInGuestMirroredRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlanInHostMirroredRecipe
lnst.Recipes.ENRT: add VirtualOvsBridgeVlansOverBondRecipe
lnst.Devices: edit OvsBridgeDevice
lnst/Devices/OvsBridgeDevice.py | 4 +-
lnst/Recipes/ENRT/DoubleTeamRecipe.py | 83 ++++++++++
lnst/Recipes/ENRT/TeamRecipe.py | 74 +++++++++
lnst/Recipes/ENRT/TeamVsBondRecipe.py | 87 +++++++++++
...rtualOvsBridgeVlanInGuestMirroredRecipe.py | 110 +++++++++++++
.../ENRT/VirtualOvsBridgeVlanInGuestRecipe.py | 89 +++++++++++
...irtualOvsBridgeVlanInHostMirroredRecipe.py | 102 ++++++++++++
.../ENRT/VirtualOvsBridgeVlanInHostRecipe.py | 87 +++++++++++
.../VirtualOvsBridgeVlansOverBondRecipe.py | 147 ++++++++++++++++++
lnst/Recipes/ENRT/VlansOverTeamRecipe.py | 91 +++++++++++
10 files changed, 872 insertions(+), 2 deletions(-)
create mode 100644 lnst/Recipes/ENRT/DoubleTeamRecipe.py
create mode 100644 lnst/Recipes/ENRT/TeamRecipe.py
create mode 100644 lnst/Recipes/ENRT/TeamVsBondRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestMirroredRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostMirroredRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlanInHostRecipe.py
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlansOverBondRecipe.py
create mode 100644 lnst/Recipes/ENRT/VlansOverTeamRecipe.py
--
2.17.1
5 years, 5 months
[PATCH-next 0/1] Change names in Phase 1 recipes
by csfakian@redhat.com
From: Christos Sfakianakis <csfakian(a)redhat.com>
All devices that have "to_guest" label are actually tap devices. They
are renamed to 'tap' instead of 'eth' to avoid confusion.
Christos Sfakianakis (1):
lnst.Recipes.ENRT: modify naming for tap devices
.../VirtualBridgeVlanInGuestMirroredRecipe.py | 32 +++++++-------
.../ENRT/VirtualBridgeVlanInGuestRecipe.py | 16 +++----
.../VirtualBridgeVlanInHostMirroredRecipe.py | 44 +++++++++----------
.../ENRT/VirtualBridgeVlanInHostRecipe.py | 22 +++++-----
.../ENRT/VirtualBridgeVlansOverBondRecipe.py | 28 ++++++------
5 files changed, 71 insertions(+), 71 deletions(-)
--
2.17.1
5 years, 5 months
[PATCH-next 0/1] Update lnst.Recipes.ENRT.PingFloodRecipe
by csfakian@redhat.com
From: Christos Sfakianakis <csfakian(a)redhat.com>
Make use of the update in PingConf class (commit ddc871c - count and interval
properties defined). Inherit from PingTestAndEvaluate "common recipe template"
that BaseEnrtRecipe inherits from.
Christos Sfakianakis (1):
lnst.Recipes.ENRT.PingFloodRecipe: rework to inherit from
PingTestAndEvaluate
lnst/Recipes/ENRT/PingFloodRecipe.py | 42 ++++++++++++++++++----------
1 file changed, 28 insertions(+), 14 deletions(-)
--
2.17.1
5 years, 5 months