[RFC PATCH 0/8] ENRT Measurements and Perf refactoring
by olichtne@redhat.com
From: Ondrej Lichtner <olichtne(a)redhat.com>
Hi all,
This patchset is therefore NOT COMPLETE AND NOT FIT TO APPLY YET, I'm
seding this now to get an early round of reviews...
This is the first version of a patchset to refactor the Recipes.ENRT
package to make it more flexible wrt. generating measurements, this is a
pain point that we've hit with different type of recipes that we already
have:
* baremetal recipes, generating relatively simple iperf flows
* virtual recipes, being very similar however requiring different cpu
measurements generated along these flow measurements
* ipsec type recipes that generate more complex iperf flows
* ovs+dpdk type recipes that due to using trex have their own quirks
This version of the patchset was focused on adding support for the
second bullet in the list - the virtual recipes, and making sure that
baremetal recipes still work.
Ipsec recipes should still work the same way, the ovs+dpdk recipes;
however, likely require additional work.
There's also a note in the final commit that more work on adding type
hints to the Perf.* package.
And finally... documentation has not been updated and will be added in
the second version of the patchset.
Please take a look and provide any valuable feedback that I should work
on in the second version of the set.
-Ondrej
Ondrej Lichtner (8):
RecipeCommon.Perf.Measurements: add flows property to FlowMeasurements
RecipeCommon.Perf.Measurements.StatCPUMeasurement: sort hosts
create lnst.Recipes.ENRT.MeasurementGenerators
Recipes.ENRT.BaseEnrtRecipe: remove perf measurement generation
add lnst.Recipes.ENRT.BaremetalEnrtRecipe
add lnst.Recipes.ENRT.VirtualEnrtRecipe
refactor lnst.Recipes.ENRT.BaseEnrtRecipe
lnst.RecipeCommon.Perf: Evaluators refactor to add parent recipe
configuration
lnst/RecipeCommon/BaseResultEvaluator.py | 9 +-
.../Evaluators/BaselineCPUAverageEvaluator.py | 39 +++-
.../Perf/Evaluators/BaselineEvaluator.py | 77 ++++++--
.../BaselineFlowAverageEvaluator.py | 25 ++-
.../Perf/Evaluators/NonzeroFlowEvaluator.py | 18 +-
.../Perf/Measurements/BaseFlowMeasurement.py | 4 +
.../Perf/Measurements/IperfFlowMeasurement.py | 4 +
.../Perf/Measurements/StatCPUMeasurement.py | 2 +-
.../Perf/Measurements/TRexFlowMeasurement.py | 4 +
lnst/RecipeCommon/Perf/Recipe.py | 64 +++++--
lnst/Recipes/ENRT/BaremetalEnrtRecipe.py | 26 +++
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 178 +++---------------
lnst/Recipes/ENRT/BondRecipe.py | 4 +-
lnst/Recipes/ENRT/DoubleBondRecipe.py | 4 +-
lnst/Recipes/ENRT/DoubleTeamRecipe.py | 4 +-
lnst/Recipes/ENRT/IpsecEspAeadRecipe.py | 4 +-
lnst/Recipes/ENRT/IpsecEspAhCompRecipe.py | 4 +-
.../BaseMeasurementGenerator.py | 3 +
...lowEndpointsStatCPUMeasurementGenerator.py | 26 +++
.../HypervisorsStatCPUMeasurementGenerator.py | 19 ++
.../IperfMeasurementGenerator.py | 146 ++++++++++++++
.../ENRT/MeasurementGenerators/__init__.py | 0
lnst/Recipes/ENRT/NoVirtOvsVxlanRecipe.py | 4 +-
.../ENRT/ShortLivedConnectionsRecipe.py | 4 +-
lnst/Recipes/ENRT/SimpleMacsecRecipe.py | 4 +-
lnst/Recipes/ENRT/SimpleNetworkRecipe.py | 7 +-
lnst/Recipes/ENRT/TeamRecipe.py | 4 +-
lnst/Recipes/ENRT/TeamVsBondRecipe.py | 4 +-
lnst/Recipes/ENRT/VirtOvsVxlanRecipe.py | 4 +-
.../VirtualBridgeVlanInGuestMirroredRecipe.py | 4 +-
.../ENRT/VirtualBridgeVlanInGuestRecipe.py | 4 +-
.../VirtualBridgeVlanInHostMirroredRecipe.py | 4 +-
.../ENRT/VirtualBridgeVlanInHostRecipe.py | 4 +-
.../ENRT/VirtualBridgeVlansOverBondRecipe.py | 4 +-
lnst/Recipes/ENRT/VirtualEnrtRecipe.py | 28 +++
...rtualOvsBridgeVlanInGuestMirroredRecipe.py | 4 +-
.../ENRT/VirtualOvsBridgeVlanInGuestRecipe.py | 4 +-
...irtualOvsBridgeVlanInHostMirroredRecipe.py | 4 +-
.../ENRT/VirtualOvsBridgeVlanInHostRecipe.py | 4 +-
.../VirtualOvsBridgeVlansOverBondRecipe.py | 4 +-
lnst/Recipes/ENRT/VlansOverBondRecipe.py | 4 +-
lnst/Recipes/ENRT/VlansOverTeamRecipe.py | 4 +-
lnst/Recipes/ENRT/VlansRecipe.py | 4 +-
lnst/Recipes/ENRT/VxlanMulticastRecipe.py | 4 +-
lnst/Recipes/ENRT/VxlanRemoteRecipe.py | 4 +-
45 files changed, 528 insertions(+), 255 deletions(-)
create mode 100644 lnst/Recipes/ENRT/BaremetalEnrtRecipe.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/BaseMeasurementGenerator.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/FlowEndpointsStatCPUMeasurementGenerator.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/HypervisorsStatCPUMeasurementGenerator.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/IperfMeasurementGenerator.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/__init__.py
create mode 100644 lnst/Recipes/ENRT/VirtualEnrtRecipe.py
--
2.29.2
3 weeks, 2 days
[PATCH 0/6] add OvSDPDKBondRecipe
by jurbanov@redhat.com
From: Jozef Urbanovsky <jurbanov(a)redhat.com>
Hi,
This patchset adds OvSDPDKBondRecipe and fixes some
issues with test tools required for the recipe.
Patchset has been reviewed in internal downstream,
before it was decided to split it to upstream and downstream.
It has been tested to be fully functional.
Jozef Urbanovsky (6):
lnst.Recipes.ENRT.OvSDPDKBondRecipe: add new recipe
lnst.Tests.TestPMD: add mode branching
lnst.Tests.TRex: add __repr__ methods, expose module parameter
lnst.RecipeCommon.Perf.Measurements.TRexFlowMeasurement: fixes
requirements: add dataclasses package
lnst.Recipes.ENRT.OvSDPDKBondRecipe: override *test_tweak methods
.../Perf/Measurements/TRexFlowMeasurement.py | 5 +-
lnst/Recipes/ENRT/OvSDPDKBondRecipe.py | 257 ++++++++++++++++++
lnst/Recipes/ENRT/__init__.py | 1 +
lnst/Tests/TRex.py | 27 ++
lnst/Tests/TestPMD.py | 36 ++-
requirements.txt | 1 +
6 files changed, 315 insertions(+), 12 deletions(-)
create mode 100644 lnst/Recipes/ENRT/OvSDPDKBondRecipe.py
--
2.28.0
1 month, 1 week