This patchset is another attempt to implement parallel iperf testing.
In comparison to the first RFC the changes are less intrusive and reuses
the original Flow concept.
Motivation:
The current parallel implementation that can be achieved by specifying
the perf_parallel_streams recipe parameter works correctly however the
limitation is that there's only one iperf process that creates multiple
connections and that process (and all the connections) can be handled by
a single CPU at the same time. In our internal testing this proved to
report very variable CPU utilization numbers.
This patchset extends the IperfFlowMeasurementGenerator with additional
recipe parameters:
* perf_parallel_processes
* perf_tool_cpu_policy
Additionaly some of the parameters were modified to support parallelism:
* perf_tool_cpu is now a ListParam
* dev_intr_cpu is now a ListParam
The patch set includes also update of DevInterruptHWConfigMixin that is
required for this test scenario to provide reproducible results.
Jan Tluka (13):
RecipeCommon.Perf.Measurements.BaseFlowMeasurement.Flow: add
receiver_port
RecipeCommon.Perf.Measurements.IperfFlowMeasurement: configure
receiver_port
Recipes.ENRT.MeasurementGenerators.IperfMeasurementGenerator: adapt to
Flow port changes
Recipes.ENRT.ConfigMixins.Reversible: adapt to Flow port changes
Recipes.ENRT.MeasurementGenerators.IperfMeasurementGenerator: add
_create_perf_flows
Recipes.ENRT.MeasurementGenerators.IperfMeasurementGenerator: add
perf_parallel_processes parameter
IperfMeasurementGenerator: adjust cpu parameters for parallel iperf
support
RecipeCommon.Perf.Measurements.IperfFlowMeasurement: adjust cpupin for
both server and client
RecipeCommon.Perf.Measurements.IperfFlowMeasurement: add
aggregate_multi_flow_results()
RecipeCommon.Perf.Evaluators.BaselineFlowAverageEvaluator: override
group_results
RecipeCommon.Perf.Measurements.BaseFlowMeasurement: report also
aggregated results
Recipes.ENRT.MeasurementGenerators.IperfMeasurementGenerator: fix
issue with unspecified perf_tool_cpu param
Recipes.ENRT.ConfigMixins.DevInterruptHWConfigMixin: change
dev_intr_cpu to ListParam
.../BaselineFlowAverageEvaluator.py | 10 ++
.../Perf/Measurements/BaseFlowMeasurement.py | 16 +++-
.../Perf/Measurements/IperfFlowMeasurement.py | 93 +++++++++++++++----
.../ConfigMixins/DevInterruptHWConfigMixin.py | 26 +++---
.../ConfigMixins/PerfReversibleFlowMixin.py | 34 +++++--
.../IperfMeasurementGenerator.py | 83 +++++++++++++----
6 files changed, 208 insertions(+), 54 deletions(-)
--
2.26.2