From: Ondrej Lichtner <olichtne(a)redhat.com>
Hi all,
this is a second version of this patchset, v2 changes include:
* the Namespace.run method reuses other methods instead of duplicating
code
* CPUStatMonitor comment explains the interval parameter
* CPUStatMonitor bugfix for signal handling
* fixed typo in IperfFlowMeasurement unit for cpu utilization
* move and reimplementation of the TRex measurement class to fit into
the whole redesign of the lnst.RecipeCommon.Perf package
* updates to the OvSDPDKPVPRecipe:
* stability improvements
* refactoring to use the redesigned lnst.RecipeCommon.Perf package
Thanks,
-Ondrej
Previous message:
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 (20):
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
RecipeCommon.Perf.Measurements: move NetworkFlowTest
lnst.Tests.TestPMD: add pmd_coremask parameter
Recipes.ENRT.OvS_DPDK_PvP: stability improvements
refactoring of OvS_DPDK_PvP recipe and related classes
lnst/Common/Parameters.py | 18 ++
lnst/Common/Utils.py | 8 +-
lnst/Controller/Job.py | 21 +-
lnst/Controller/Namespace.py | 32 +--
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 | 220 ++++++++++++++++++
.../Perf/Measurements/BaseMeasurement.py | 29 +++
.../Perf/Measurements/IperfFlowMeasurement.py | 136 +++++++++++
.../Perf/Measurements/MeasurementError.py | 4 +
.../Perf/Measurements/StatCPUMeasurement.py | 88 +++++++
.../Perf/Measurements/TRexFlowMeasurement.py | 151 ++++++++++++
.../Perf/Measurements/__init__.py | 4 +
lnst/RecipeCommon/Perf/Recipe.py | 73 ++++++
.../{PerfResult.py => Perf/Results.py} | 65 +++---
lnst/RecipeCommon/Perf/__init__.py | 0
lnst/RecipeCommon/TRexMeasurementTool.py | 87 -------
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 45 ++--
lnst/Recipes/ENRT/OvS_DPDK_PvP.py | 56 +++--
lnst/Tests/CPUStatMonitor.py | 116 +++++++++
lnst/Tests/Iperf.py | 14 +-
lnst/Tests/TestPMD.py | 5 +-
26 files changed, 1124 insertions(+), 417 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
create mode 100644 lnst/RecipeCommon/Perf/Measurements/TRexFlowMeasurement.py
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
delete mode 100644 lnst/RecipeCommon/TRexMeasurementTool.py
create mode 100644 lnst/Tests/CPUStatMonitor.py
--
2.19.1