From b7005e6c4d5180effefc2045638bdf87cee98d75 Mon Sep 17 00:00:00 2001 From: pmikus Date: Wed, 13 Mar 2024 14:24:47 +0000 Subject: feat(tests): Fix scaling of 6p3nic Signed-off-by: Peter Mikus Change-Id: I84d9cf2892423e62b116b07982d3e87120b66271 --- .../report_iterative/3na-spr/vpp-mrr-00.md | 8 +++--- .../report_iterative/3na-spr/vpp-ndrpdr-00.md | 8 +++--- resources/libraries/python/Constants.py | 19 +++++++++++++ resources/libraries/python/autogen/Regenerator.py | 32 +++++++--------------- resources/libraries/python/model/ExportJson.py | 23 ++++++---------- resources/libraries/robot/shared/default.robot | 8 +++--- 6 files changed, 49 insertions(+), 49 deletions(-) (limited to 'resources') diff --git a/resources/job_specs/report_iterative/3na-spr/vpp-mrr-00.md b/resources/job_specs/report_iterative/3na-spr/vpp-mrr-00.md index e056c2204a..b4b7bd1c2e 100644 --- a/resources/job_specs/report_iterative/3na-spr/vpp-mrr-00.md +++ b/resources/job_specs/report_iterative/3na-spr/vpp-mrr-00.md @@ -98,9 +98,9 @@ 2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd 4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd ##### ethip4-ip4scale60k-rnd -1c AND 64b AND mrr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd -2c AND 64b AND mrr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd -4c AND 64b AND mrr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd +3c AND 64b AND mrr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd +6c AND 64b AND mrr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd +12c AND 64b AND mrr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd ##### ethip4-ip4scale200k-rnd 1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd 2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd @@ -218,4 +218,4 @@ ##### ethip6srhip6-ip6base-srv6proxy-stat 1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat 2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat -4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat \ No newline at end of file +4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat diff --git a/resources/job_specs/report_iterative/3na-spr/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3na-spr/vpp-ndrpdr-00.md index d205ed6ccc..e2a96854f7 100644 --- a/resources/job_specs/report_iterative/3na-spr/vpp-ndrpdr-00.md +++ b/resources/job_specs/report_iterative/3na-spr/vpp-ndrpdr-00.md @@ -98,9 +98,9 @@ 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd ##### ethip4-ip4scale60k-rnd -1c AND 64b AND ndrpdr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd -2c AND 64b AND ndrpdr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd -4c AND 64b AND ndrpdr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd +3c AND 64b AND ndrpdr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd +6c AND 64b AND ndrpdr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd +12c AND 64b AND ndrpdr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd ##### ethip4-ip4scale200k-rnd 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd @@ -218,4 +218,4 @@ ##### ethip6srhip6-ip6base-srv6proxy-stat 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat -4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat \ No newline at end of file +4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py index 12f555ca84..70452e6ff4 100644 --- a/resources/libraries/python/Constants.py +++ b/resources/libraries/python/Constants.py @@ -485,6 +485,25 @@ class Constants: "1ge1p82540em": "nic_pfs}= | 2", } + NIC_CODE_TO_CORESCALE = { + "10ge2p1x520": 1, + "10ge2p1x710": 1, + "40ge2p1xl710": 1, + "25ge2p1xxv710": 1, + "25ge2p1e810xxv": 1, + "25ge2p1e822cq": 1, + "25ge2p1e823c": 1, + "100ge2p1e810cq": 1, + "50ge1p1ena": 1, + "100ge1p1ena": 1, + "200ge1p1ena": 1, + "100ge2p1cx556a": 1, + "100ge2p1cx6dx": 1, + "200ge2p1cx7veat": 1, + "200ge6p3cx7veat": 3, + "1ge1p82540em": 1, + } + # Not each driver is supported by each NIC. DPDK_NIC_NAME_TO_DRIVER = { "Intel-X520-DA2": ["vfio-pci"], diff --git a/resources/libraries/python/autogen/Regenerator.py b/resources/libraries/python/autogen/Regenerator.py index 706c250ec2..8d593fecca 100644 --- a/resources/libraries/python/autogen/Regenerator.py +++ b/resources/libraries/python/autogen/Regenerator.py @@ -150,16 +150,17 @@ def filter_and_edit_kwargs_for_astf(suite_id, kwargs): return kwargs -def add_default_testcases(testcase, iface, suite_id, file_out, tc_kwargs_list): +def add_default_testcases( + testcase, nic_code, suite_id, file_out, tc_kwargs_list): """Add default testcases to file. :param testcase: Testcase class. - :param iface: Interface. + :param nic_code: NIC code. :param suite_id: Suite ID. :param file_out: File to write testcases to. :param tc_kwargs_list: Key-value pairs used to construct testcases. :type testcase: Testcase - :type iface: str + :type nic_code: str :type suite_id: str :type file_out: file :type tc_kwargs_list: dict @@ -169,23 +170,7 @@ def add_default_testcases(testcase, iface, suite_id, file_out, tc_kwargs_list): kwargs = copy.deepcopy(kwas) # TODO: Is there a better way to disable some combinations? emit = True - if kwargs[u"frame_size"] == 9000: - if u"vic1227" in iface: - # Not supported in HW. - emit = False - if u"vic1385" in iface: - # Not supported in HW. - emit = False - if u"-16vm2t-" in suite_id or u"-16dcr2t-" in suite_id: - if kwargs[u"phy_cores"] > 3: - # CSIT lab only has 28 (physical) core processors, - # so these test would fail when attempting to assign cores. - emit = False - if u"-24vm1t-" in suite_id or u"-24dcr1t-" in suite_id: - if kwargs[u"phy_cores"] > 3: - # CSIT lab only has 28 (physical) core processors, - # so these test would fail when attempting to assign cores. - emit = False + core_scale = Constants.NIC_CODE_TO_CORESCALE[nic_code] if u"soak" in suite_id: # Soak test take too long, do not risk other than tc01. if kwargs[u"phy_cores"] != 1: @@ -196,6 +181,9 @@ def add_default_testcases(testcase, iface, suite_id, file_out, tc_kwargs_list): else: if kwargs[u"frame_size"] not in MIN_FRAME_SIZE_VALUES: emit = False + + kwargs.update({'phy_cores': kwas['phy_cores']*core_scale}) + kwargs = filter_and_edit_kwargs_for_astf(suite_id, kwargs) if emit and kwargs is not None: file_out.write(testcase.generate(**kwargs)) @@ -347,7 +335,7 @@ def write_default_files(in_filename, in_prolog, kwargs_list): with open(out_filename, "wt") as file_out: file_out.write(out_prolog) add_default_testcases( - testcase, iface, suite_id, file_out, kwargs_list + testcase, nic_code, suite_id, file_out, kwargs_list ) continue for driver in Constants.NIC_NAME_TO_DRIVER[nic_name]: @@ -396,7 +384,7 @@ def write_default_files(in_filename, in_prolog, kwargs_list): with open(out_filename, "wt") as file_out: file_out.write(out_prolog) add_default_testcases( - testcase, iface, suite_id, file_out, kwargs_list + testcase, nic_code, suite_id, file_out, kwargs_list ) diff --git a/resources/libraries/python/model/ExportJson.py b/resources/libraries/python/model/ExportJson.py index 843949eb9f..3f923d6d0e 100644 --- a/resources/libraries/python/model/ExportJson.py +++ b/resources/libraries/python/model/ExportJson.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023 Cisco and/or its affiliates. +# Copyright (c) 2024 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -301,25 +301,18 @@ class ExportJson(): self.data["test_id"] = f"{suite_part}.{test_part}" tags = self.data["tags"] # Test name does not contain thread count. - subparts = test_part.split("c-", 1) - if len(subparts) < 2 or subparts[0][-2:-1] != "-": + subparts = test_part.split("-") + if any("tg" in s for s in subparts) and subparts[1] == "": # Physical core count not detected, assume it is a TRex test. if "--" not in test_part: - raise RuntimeError(f"Cores not found for {subparts}") + raise RuntimeError(f"Invalid TG test name for: {subparts}") short_name = test_part.split("--", 1)[1] else: - short_name = subparts[1] + short_name = "-".join(subparts[2:]) # Add threads to test_part. - core_part = subparts[0][-1] + "c" - for tag in tags: - tag = tag.lower() - if len(tag) == 4 and core_part == tag[2:] and tag[1] == "t": - test_part = test_part.replace(f"-{core_part}-", f"-{tag}-") - break - else: - raise RuntimeError( - f"Threads not found for {test_part} tags {tags}" - ) + core_part = subparts[1] + tag = list(filter(lambda t: subparts[1].upper() in t, tags))[0] + test_part = test_part.replace(f"-{core_part}-", f"-{tag.lower()}-") # For long name we need NIC model, which is only in suite name. last_suite_part = suite_part.split(".")[-1] # Short name happens to be the suffix we want to ignore. diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot index 65e6613680..c2a013ddf1 100644 --- a/resources/libraries/robot/shared/default.robot +++ b/resources/libraries/robot/shared/default.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2023 Cisco and/or its affiliates. +# Copyright (c) 2024 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -152,16 +152,16 @@ | | | Run Keyword | ${dut}.Add Unix GID | | | Run Keyword | ${dut}.Add Unix Coredump | | | Run Keyword | ${dut}.Add Socksvr | ${SOCKSVR_PATH} -| | | Run Keyword | ${dut}.Add Main Heap Size | ${${heap_size_mult}*${2}}G +| | | Run Keyword | ${dut}.Add Main Heap Size | ${${heap_size_mult}*${3}}G | | | Run Keyword | ${dut}.Add Main Heap Page Size | ${page_size} | | | Run Keyword | ${dut}.Add Default Hugepage Size | ${page_size} -| | | Run Keyword | ${dut}.Add Statseg Size | 2G +| | | Run Keyword | ${dut}.Add Statseg Size | 3G | | | Run Keyword | ${dut}.Add Statseg Page Size | ${page_size} | | | Run Keyword | ${dut}.Add Statseg Per Node Counters | on | | | Run Keyword | ${dut}.Add Plugin | disable | default | | | Run Keyword | ${dut}.Add Plugin | enable | @{plugins_to_enable} | | | Run Keyword | ${dut}.Add IP6 Hash Buckets | 2000000 -| | | Run Keyword | ${dut}.Add IP6 Heap Size | 4G +| | | Run Keyword | ${dut}.Add IP6 Heap Size | 3G | | | Run Keyword | ${dut}.Add Graph Node Variant | ${GRAPH_NODE_VARIANT} | | END -- cgit 1.2.3-korg