This patchset refactors IperfFlowMeasurement and
IperfFlowMeasurementGenerator classes to allow parallel iperf testing.
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, the perf_parallel_processes and
perf_parallel_processes_cpus, to support paralell iperf testing.
The patch set includes also update of DevInterruptHWConfigMixin that is
required for this test scenario to provide reproducible results.
Jan Tluka (8):
Perf.Measurements.BaseFlowMeasurement.NetworkFlowTest: change flow to
contain a list of server/client jobs
Perf.Measurements.IperfFlowMeasurement: adapt to changes of
NetworkFlowTest
TRexFlowMeasurement: adapt to changes of NetworkFlowTest
Recipes.ENRT.MeasurementGenerators.IperfMeasurementGenerator: add
perf_parallel_processes parameter
Perf.Measurements.IperfFlowMeasurement: use parallel_perf_processes
parameter
Recipes.ENRT.MeasurementGenerators.IperfMeasurementGenerator: add
parallel_perf_processes_cpus parameter
Perf.Measurements.IperfFlowMeasurement: use parallel_processes_cpus
parameter
Recipes.ENRT.ConfigMixins.DevInterruptHWConfigMixin: change
dev_intr_cpu to dev_intr_cpus
.../Perf/Measurements/BaseFlowMeasurement.py | 28 +++++--
.../Perf/Measurements/IperfFlowMeasurement.py | 82 +++++++++++++------
.../Perf/Measurements/TRexFlowMeasurement.py | 31 ++++---
.../ConfigMixins/DevInterruptHWConfigMixin.py | 38 +++++----
.../IperfMeasurementGenerator.py | 19 +++++
5 files changed, 138 insertions(+), 60 deletions(-)
--
2.26.2