[PATCH v1] dts: update configuration for performance test
Patrick Robb
patrickrobb1997 at gmail.com
Wed Oct 21 04:02:39 CEST 2026
On Wed, Aug 5, 2026 at 11:37 AM Andrew Bailey <abailey at iol.unh.edu> wrote:
> The single core forward performance test suite can run a variety of
> combinations of buffer sizes and number of descriptors. It is beneficial
>
"it would be"
> if any possible combination of these parameters could be tested against
> a specific delta tolerance; Rather than a globally defined tolerance for
>
is semi colon right here?
> all testing. Along with this, adjusting traffic duration and test
> repetitions helps users define a more accurate test run if they wish to
> get a more refined average. Furthermore, the cores allotted to TREX can
> vary among systems and should be defined by the user.
nit but can you call out the specific performance test in the commit title?
>
> Signed-off-by: Andrew Bailey <abailey at iol.unh.edu>
>
> #: A union type discriminating traffic generators by the `type` field.
> diff --git a/dts/framework/testbed_model/traffic_generator/trex.py
> b/dts/framework/testbed_model/traffic_generator/trex.py
> index d53791b0a6..2b52cfcbd1 100644
> --- a/dts/framework/testbed_model/traffic_generator/trex.py
> +++ b/dts/framework/testbed_model/traffic_generator/trex.py
> @@ -82,7 +82,7 @@ class TrexTrafficGenerator(PerformanceTrafficGenerator):
>
> _streaming_mode: TrexStatelessTXModes = TrexStatelessTXModes.STLTXCont
>
> - _tg_cores: int = 10
> + _tg_cores: int
>
Why not keep the default of 10 but allow cores as an optional parameter in
test_run.yaml?
I don't feel strongly about the matter but in general I don't want "config
creep" when we can avoid it. Less config is better. But yes we can add
config when necessary.
>
> _trex_app: BlockingApp
>
> @@ -102,6 +102,7 @@ def __init__(self, tg_node: Node, config:
> TrexTrafficGeneratorConfig) -> None:
> super().__init__(tg_node=tg_node, config=config)
> self._tg_node_config = tg_node.config
> self._tg_config = config
> + self._tg_cores = config.cores
>
> self._os_session = create_session(self._tg_node.config, "TRex",
> self._logger)
>
> diff --git a/dts/tests/TestSuite_single_core_forward_perf.py
> b/dts/tests/TestSuite_single_core_forward_perf.py
> index 57aecdf7a4..a966d44ebd 100644
> --- a/dts/tests/TestSuite_single_core_forward_perf.py
> +++ b/dts/tests/TestSuite_single_core_forward_perf.py
> @@ -32,14 +32,40 @@ class Config(BaseConfig):
> """Performance test metrics."""
>
> test_parameters: list[dict[str, int | float]] = [
> - {"frame_size": 64, "num_descriptors": 1024, "expected_mpps":
> 1.00},
> - {"frame_size": 128, "num_descriptors": 1024, "expected_mpps":
> 1.00},
> - {"frame_size": 256, "num_descriptors": 1024, "expected_mpps":
> 1.00},
> - {"frame_size": 512, "num_descriptors": 1024, "expected_mpps":
> 1.00},
> - {"frame_size": 1024, "num_descriptors": 1024, "expected_mpps":
> 1.00},
> - {"frame_size": 1518, "num_descriptors": 1024, "expected_mpps":
> 1.00},
> + {"frame_size": 64, "num_descriptors": 1024, "expected_mpps":
> 1.00, "delta_tolerance": 0.05},
> + {
> + "frame_size": 128,
> + "num_descriptors": 1024,
> + "expected_mpps": 1.00,
> + "delta_tolerance": 0.05,
> + },
> + {
> + "frame_size": 256,
> + "num_descriptors": 1024,
> + "expected_mpps": 1.00,
> + "delta_tolerance": 0.05,
> + },
> + {
> + "frame_size": 512,
> + "num_descriptors": 1024,
> + "expected_mpps": 1.00,
> + "delta_tolerance": 0.05,
> + },
> + {
> + "frame_size": 1024,
> + "num_descriptors": 1024,
> + "expected_mpps": 1.00,
> + "delta_tolerance": 0.05,
> + },
> + {
> + "frame_size": 1518,
> + "num_descriptors": 1024,
> + "expected_mpps": 1.00,
> + "delta_tolerance": 0.05,
> + },
> ]
> - delta_tolerance: float = 0.05
>
So, with this patch applied one MUST set the delta_tolerance per param, as
opposed to optionally setting it per param or per testsuite? I'm not sure
if it's a big lift to support both, but given that 99% of people probably
want to just say "5% delta tolerance for single core forward perf
testsuite" it would make sense to preserve that existing config option.
> + traffic_duration: int = 5
> + test_repetitions: int = 5
>
Do you need to update tests_config.example.yaml? And explain which
parameters are optional vs required?
>
>
> @requires_link_topology(LinkTopology.TWO_LINKS)
>
>
Reviewed-by: Patrick Robb <patrickrobb1997 at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mails.dpdk.org/archives/dev/attachments/20261020/69aaf11f/attachment.htm>
More information about the dev
mailing list