As you mentioned, Trex Measurement related recipes will break with this patchset. Do you plan addressing these issues in this patchset?
I will provide further feedback soon. After more testing.
On Tue, Jan 12, 2021 at 12:51 PM Jan Tluka jtluka@redhat.com wrote:
Tue, Jan 12, 2021 at 09:33:57AM CET, olichtne@redhat.com wrote:
From: Ondrej Lichtner olichtne@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 _______________________________________________ LNST-developers mailing list -- lnst-developers@lists.fedorahosted.org To unsubscribe send an email to
lnst-developers-leave@lists.fedorahosted.org
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives:
https://lists.fedorahosted.org/archives/list/lnst-developers@lists.fedorahos...
The patch set looks good. I could not spot any serious issues in it.
Acked-by: Jan Tluka jtluka@redhat.com _______________________________________________ LNST-developers mailing list -- lnst-developers@lists.fedorahosted.org To unsubscribe send an email to lnst-developers-leave@lists.fedorahosted.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedorahosted.org/archives/list/lnst-developers@lists.fedorahos...