From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 66CB5A052A; Wed, 23 Dec 2020 12:47:50 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2501FC9F6; Wed, 23 Dec 2020 12:47:48 +0100 (CET) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by dpdk.org (Postfix) with ESMTP id 2DA36C9EE for ; Wed, 23 Dec 2020 12:47:46 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id D8411BF45B; Wed, 23 Dec 2020 12:47:42 +0100 (CET) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cZyOpm4ztWVi; Wed, 23 Dec 2020 12:47:40 +0100 (CET) Received: from service-node1.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id EB100BD2BC; Wed, 23 Dec 2020 12:47:39 +0100 (CET) From: =?UTF-8?q?Juraj=20Linke=C5=A1?= To: bruce.richardson@intel.com, Ruifeng.Wang@arm.com, Honnappa.Nagarahalli@arm.com, Phil.Yang@arm.com, vcchunga@amazon.com, Dharmik.Thakkar@arm.com, jerinjacobk@gmail.com, hemant.agrawal@nxp.com, ajit.khaparde@broadcom.com, ferruh.yigit@intel.com Cc: dev@dpdk.org, =?UTF-8?q?Juraj=20Linke=C5=A1?= Date: Wed, 23 Dec 2020 12:47:27 +0100 Message-Id: <1608724059-8562-1-git-send-email-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1605874101-30893-1-git-send-email-juraj.linkes@pantheon.tech> References: <1605874101-30893-1-git-send-email-juraj.linkes@pantheon.tech> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v14 00/12] Arm build options rework X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The current way of specifying Arm configuration options is insufficient since we can't identify the SoC we're building for from the MIDR information. For example, we can't distinguish between N1SDP, Graviton2 or Ampere Altra. Add a way to specify the cpu count and numa node count for cross builds and aarch64 -> aarch64 (SoC) builds. We also want to be able to disable which drivers (and possibly libraries) are built without user input. This is useful when building: 1. on an SoC that is slow and we want to build only what is necessary without the user having to check which libraries they have installed 2. a cross build on a fast aarch64 machine but with target SoC which differs in capabilities or libraries. This is achieved by specifying the drivers in SoC configuration. Among libraries, only libnuma can be now disabled. Also add an optional way to discover cpu count a numa node count. Fix -Dmax_lcores and -Dmax_numa_nodes for arm builds. The current implementation adds/supports the following: * x86 -> aarch64 cross build with added config options/disabled drivers/libs * aarch64 -> aarch64 builds for a different SoCs using meson -Darm_soc option or using a cross file * max numa nodes and max lcore may be specified on the command line to overwrite the values for any (native, SoC or cross) build v2: Major rework of the whole series. v3: Added numa and core count defaults for x86 default build. Removed numa and core count defaults. Now requiring defaults to be specified in a cross file or on the cmdline. Added FreeBDS support for numa count discovery. v4: Make automatic numa and cpu counts discovery optional. v5: Split the refactor patch into smaller patches. Simplify buildtools/get_numa_count.py. Add more explanation to cover letter. v6: Apply cross file options arch agnostically, not just in Arm cross builds. Streamline Arm build setup and machine args: always use native args in native builds, require implementer ID and part number for cross builds. v7: Arm config options are now organized in one dictionary. Removed unsupported implementers and removed fallback to generic implementer/part number for unknown implementer/part number. Added meson config option arm_soc which can be used to specify configuration to be used, useful for aarch64 -> aarch64 builds. v8: Rebase. v9: Split SoC and implementer dictionaries into smaller parts. Fixed DPAA and ARMADA SoC configuration. Added documentation about supported SoCs. v10: Added a commit that fixes Graviton2 clang build failures in native build. v11: Rebase. v12: Fixed dpaa and armada cross builds in generic build commit. v13: Removed two commits which were not arm-specific: 1. build: alias default build as generic 2. build: optional NUMA and cpu counts detection Also minor adjustments to commit messages in: 1. build: isolate configuration for Arm generic build 2. build: disable drivers in Arm builds v14: Resent for retesting (because of suspected false negative). Series Acked-by: Jerin Jacob Series Tested-by: Jerin Jacob Series Tested-by: Dharmik Thakkar Series Tested-by: Vimal Chungath Juraj Linkeš (12): build: rename Arm build variables build: remove unused or superfluous variables build: reformat and move Arm config and comments build: simplify how Arm flags are processed build: organize Arm config into dict build: isolate configuration for Arm generic build build: use native machine args in Arm native build build: add core and NUMA counts to cross files build: disable drivers in Arm builds build: disable libnuma in cross builds build: add Arm SoC meson option config: fix Arm implementer and its SoCs config/arm/arm64_armada_linux_gcc | 2 +- config/arm/arm64_armv8_linux_gcc | 15 +- config/arm/arm64_bluefield_linux_gcc | 3 +- config/arm/arm64_dpaa_linux_gcc | 2 +- config/arm/arm64_emag_linux_gcc | 2 +- config/arm/arm64_graviton2_linux_gcc | 3 +- config/arm/arm64_n1sdp_linux_gcc | 3 +- config/arm/arm64_octeontx2_linux_gcc | 3 +- config/arm/arm64_stingray_linux_gcc | 3 +- config/arm/arm64_thunderx2_linux_gcc | 3 +- ..._linux_gcc => arm64_thunderxt88_linux_gcc} | 2 +- config/arm/meson.build | 502 ++++++++++++------ config/meson.build | 34 +- .../linux_gsg/cross_build_dpdk_for_arm64.rst | 30 ++ drivers/meson.build | 6 +- meson.build | 1 + meson_options.txt | 2 + 17 files changed, 413 insertions(+), 203 deletions(-) rename config/arm/{arm64_thunderx_linux_gcc => arm64_thunderxt88_linux_gcc} (92%) -- 2.20.1