patchset looks good now, pushed upstream.
Thanks.
-Ondrej
On Mon, Mar 01, 2021 at 05:19:48PM +0100, Jan Tluka wrote:
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.
v2:
- made aggregate_multi_flow_results a @staticmethod of
BaseFlowMeasurement class
- fixed minor issue with perf_tool_cpu_policy parameter handling
- removed unused import of PerfFlow in SimpleMacsecRecipe
Jan Tluka (14):
RecipeCommon.Perf.BaseFlowMeasurement.Flow: make some arguments
optional
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.BaseFlowMeasurement: add
aggregate_multi_flow_results()
RecipeCommon.Perf.Evaluators.BaselineFlowAverageEvaluator: override
group_results
RecipeCommon.Perf.Measurements.BaseFlowMeasurement: report also
aggregated results
Recipes.ENRT.ConfigMixins.DevInterruptHWConfigMixin: change
dev_intr_cpu to ListParam
Recipes.ENRT.SimpleMacsecRecipe: remove unused import
.../BaselineFlowAverageEvaluator.py | 10 +++
.../Perf/Measurements/BaseFlowMeasurement.py | 74 +++++++++++++++-
.../Perf/Measurements/IperfFlowMeasurement.py | 38 ++++----
.../ConfigMixins/DevInterruptHWConfigMixin.py | 26 +++---
.../ConfigMixins/PerfReversibleFlowMixin.py | 34 +++++--
.../IperfMeasurementGenerator.py | 88 +++++++++++++++----
lnst/Recipes/ENRT/SimpleMacsecRecipe.py | 1 -
7 files changed, 217 insertions(+), 54 deletions(-)
--
2.26.2
_______________________________________________
LNST-developers mailing list -- lnst-developers(a)lists.fedorahosted.org
To unsubscribe send an email to lnst-developers-leave(a)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.fedora...
Do not reply to spam on the list, report it:
https://pagure.io/fedora-infrastructure