From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 03DC24608B; Wed, 15 Jan 2025 15:19:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 00CEC402ED; Wed, 15 Jan 2025 15:19:38 +0100 (CET) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id B824C402B5 for ; Wed, 15 Jan 2025 15:19:34 +0100 (CET) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8C9AA11FB; Wed, 15 Jan 2025 06:20:02 -0800 (PST) Received: from localhost.localdomain (JR4XG4HTQC.cambridge.arm.com [10.1.39.16]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 615BD3F63F; Wed, 15 Jan 2025 06:19:33 -0800 (PST) From: Luca Vizzarro To: dev@dpdk.org Cc: Nicholas Pratte , Luca Vizzarro , Paul Szczepanek , Patrick Robb Subject: [PATCH v3 2/7] dts: simplify build options config Date: Wed, 15 Jan 2025 14:18:04 +0000 Message-ID: <20250115141809.3898708-3-luca.vizzarro@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250115141809.3898708-1-luca.vizzarro@arm.com> References: <20240705171341.23894-2-npratte@iol.unh.edu> <20250115141809.3898708-1-luca.vizzarro@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Nicholas Pratte The build options configuration contained redundant fields that were not in use, and there is no future scope for their use. Bugzilla ID: 1360 Signed-off-by: Nicholas Pratte Signed-off-by: Luca Vizzarro Reviewed-by: Paul Szczepanek --- dts/conf.yaml | 3 -- dts/framework/config/__init__.py | 43 -------------------- dts/framework/test_result.py | 2 +- dts/framework/testbed_model/cpu.py | 20 ++++++++- dts/framework/testbed_model/node.py | 2 +- dts/framework/testbed_model/os_session.py | 4 +- dts/framework/testbed_model/posix_session.py | 2 +- dts/framework/testbed_model/sut_node.py | 6 ++- 8 files changed, 28 insertions(+), 54 deletions(-) diff --git a/dts/conf.yaml b/dts/conf.yaml index 80aba0d63a..4b6965b3d7 100644 --- a/dts/conf.yaml +++ b/dts/conf.yaml @@ -14,9 +14,6 @@ test_runs: # precompiled_build_dir: Commented out because `build_options` is defined. build_options: - arch: x86_64 - os: linux - cpu: native # the combination of the following two makes CC="ccache gcc" compiler: gcc compiler_wrapper: ccache # Optional. diff --git a/dts/framework/config/__init__.py b/dts/framework/config/__init__.py index 1127c6474a..3fa8f4fa8f 100644 --- a/dts/framework/config/__init__.py +++ b/dts/framework/config/__init__.py @@ -63,22 +63,6 @@ class FrozenModel(BaseModel): model_config = ConfigDict(frozen=True, extra="forbid") -@unique -class Architecture(StrEnum): - r"""The supported architectures of :class:`~framework.testbed_model.node.Node`\s.""" - - #: - i686 = auto() - #: - x86_64 = auto() - #: - x86_32 = auto() - #: - arm64 = auto() - #: - ppc64le = auto() - - @unique class OS(StrEnum): r"""The supported operating systems of :class:`~framework.testbed_model.node.Node`\s.""" @@ -91,22 +75,6 @@ class OS(StrEnum): windows = auto() -@unique -class CPUType(StrEnum): - r"""The supported CPUs of :class:`~framework.testbed_model.node.Node`\s.""" - - #: - native = auto() - #: - armv8a = auto() - #: - dpaa2 = auto() - #: - thunderx = auto() - #: - xgene1 = auto() - - @unique class Compiler(StrEnum): r"""The supported compilers of :class:`~framework.testbed_model.node.Node`\s.""" @@ -351,23 +319,12 @@ class DPDKBuildOptionsConfiguration(FrozenModel): The build options used for building DPDK. """ - #: The target architecture to build for. - arch: Architecture - #: The target OS to build for. - os: OS - #: The target CPU to build for. - cpu: CPUType #: The compiler executable to use. compiler: Compiler #: This string will be put in front of the compiler when executing the build. Useful for adding #: wrapper commands, such as ``ccache``. compiler_wrapper: str = "" - @cached_property - def name(self) -> str: - """The name of the compiler.""" - return f"{self.arch}-{self.os}-{self.cpu}-{self.compiler}" - class DPDKUncompiledBuildConfiguration(BaseDPDKBuildConfiguration): """DPDK uncompiled build configuration.""" diff --git a/dts/framework/test_result.py b/dts/framework/test_result.py index ba7c1c9804..381f72b974 100644 --- a/dts/framework/test_result.py +++ b/dts/framework/test_result.py @@ -337,7 +337,7 @@ class DTSResult(BaseResult): """Stores environment information and test results from a DTS run. * Test run level information, such as testbed, the test suite list and - DPDK build configuration (compiler, target OS and cpu), + DPDK build compiler configuration, * Test suite and test case results, * All errors that are caught and recorded during DTS execution. diff --git a/dts/framework/testbed_model/cpu.py b/dts/framework/testbed_model/cpu.py index 46bf13960d..d19fa5d597 100644 --- a/dts/framework/testbed_model/cpu.py +++ b/dts/framework/testbed_model/cpu.py @@ -1,5 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2023 PANTHEON.tech s.r.o. +# Copyright(c) 2025 Arm Limited """CPU core representation and filtering. @@ -21,8 +22,25 @@ from abc import ABC, abstractmethod from collections.abc import Iterable, ValuesView from dataclasses import dataclass +from enum import auto, unique -from framework.utils import expand_range +from framework.utils import StrEnum, expand_range + + +@unique +class Architecture(StrEnum): + r"""The supported architectures of :class:`~framework.testbed_model.node.Node`\s.""" + + #: + i686 = auto() + #: + x86_64 = auto() + #: + x86_32 = auto() + #: + aarch64 = auto() + #: + ppc64le = auto() @dataclass(slots=True, frozen=True) diff --git a/dts/framework/testbed_model/node.py b/dts/framework/testbed_model/node.py index c56872aa99..08328ee482 100644 --- a/dts/framework/testbed_model/node.py +++ b/dts/framework/testbed_model/node.py @@ -17,7 +17,6 @@ from framework.config import ( OS, - Architecture, DPDKBuildConfiguration, NodeConfiguration, TestRunConfiguration, @@ -26,6 +25,7 @@ from framework.logger import DTSLogger, get_dts_logger from .cpu import ( + Architecture, LogicalCore, LogicalCoreCount, LogicalCoreList, diff --git a/dts/framework/testbed_model/os_session.py b/dts/framework/testbed_model/os_session.py index 30d781c355..fcda9b3de1 100644 --- a/dts/framework/testbed_model/os_session.py +++ b/dts/framework/testbed_model/os_session.py @@ -28,7 +28,7 @@ from dataclasses import dataclass from pathlib import Path, PurePath, PurePosixPath -from framework.config import Architecture, NodeConfiguration +from framework.config import NodeConfiguration from framework.logger import DTSLogger from framework.remote_session import ( InteractiveRemoteSession, @@ -40,7 +40,7 @@ from framework.settings import SETTINGS from framework.utils import MesonArgs, TarCompressionFormat -from .cpu import LogicalCore +from .cpu import Architecture, LogicalCore from .port import Port diff --git a/dts/framework/testbed_model/posix_session.py b/dts/framework/testbed_model/posix_session.py index 220618cacc..981600e24c 100644 --- a/dts/framework/testbed_model/posix_session.py +++ b/dts/framework/testbed_model/posix_session.py @@ -15,7 +15,6 @@ from collections.abc import Iterable from pathlib import Path, PurePath, PurePosixPath -from framework.config import Architecture from framework.exception import DPDKBuildError, RemoteCommandExecutionError from framework.settings import SETTINGS from framework.utils import ( @@ -26,6 +25,7 @@ extract_tarball, ) +from .cpu import Architecture from .os_session import OSSession, OSSessionInfo diff --git a/dts/framework/testbed_model/sut_node.py b/dts/framework/testbed_model/sut_node.py index a9dc0a474a..11d4b22089 100644 --- a/dts/framework/testbed_model/sut_node.py +++ b/dts/framework/testbed_model/sut_node.py @@ -400,7 +400,7 @@ def _configure_dpdk_build(self, dpdk_build_config: DPDKBuildOptionsConfiguration dpdk_build_config: A DPDK build configuration to test. """ self._env_vars = {} - self._env_vars.update(self.main_session.get_dpdk_build_env_vars(dpdk_build_config.arch)) + self._env_vars.update(self.main_session.get_dpdk_build_env_vars(self.arch)) if compiler_wrapper := dpdk_build_config.compiler_wrapper: self._env_vars["CC"] = f"'{compiler_wrapper} {dpdk_build_config.compiler.name}'" else: @@ -410,8 +410,10 @@ def _configure_dpdk_build(self, dpdk_build_config: DPDKBuildOptionsConfiguration dpdk_build_config.compiler.name ) + build_dir_name = f"{self.arch}-{self.config.os}-{dpdk_build_config.compiler}" + self._remote_dpdk_build_dir = self.main_session.join_remote_path( - self._remote_dpdk_tree_path, dpdk_build_config.name + self._remote_dpdk_tree_path, build_dir_name ) def _build_dpdk(self) -> None: -- 2.43.0