From: Ondrej Lichtner <olichtne(a)redhat.com>
Hi all,
as promised, this is the updated second version of my patchset from last
year. This should now be a good enough version to apply.
The main chages are:
* split evaluator refactoring into separate patch from commit adding
type hinting and black reformatting
* more complete type hinting for the lnst.RecipeCommon.Perf package
* remove measurement_conf from *Measurement init - new commit based on
coments from Jan to the previous patchset
Info from previous cover letter (copy pasted):
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 (11):
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
RecipeCommon.Perf.RecipeConf: add parent recipe reference
RecipeCommon.Perf: add typehints and use black to reformat code
Perf.Measurements: remove measurement_conf from *Measurement
initialization
lnst/RecipeCommon/BaseResultEvaluator.py | 16 +-
.../Evaluators/BaselineCPUAverageEvaluator.py | 45 ++++-
.../Perf/Evaluators/BaselineEvaluator.py | 77 ++++++--
.../BaselineFlowAverageEvaluator.py | 37 +++-
.../Perf/Evaluators/NonzeroFlowEvaluator.py | 18 +-
.../Perf/Measurements/BaseFlowMeasurement.py | 4 +
.../Perf/Measurements/BaseMeasurement.py | 7 +-
.../Perf/Measurements/IperfFlowMeasurement.py | 13 +-
.../Perf/Measurements/StatCPUMeasurement.py | 11 +-
.../Perf/Measurements/TRexFlowMeasurement.py | 14 +-
lnst/RecipeCommon/Perf/Recipe.py | 82 +++++---
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 +-
46 files changed, 579 insertions(+), 282 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