[dpdk-dev] [PATCH v14 00/12] Arm build options rework

Pavan Nikhilesh Bhagavatula pbhagavatula at marvell.com
Tue Jan 5 12:02:40 CET 2021



>-----Original Message-----
>From: dev <dev-bounces at dpdk.org> On Behalf Of Juraj Linkeš
>Sent: Wednesday, December 23, 2020 5:17 PM
>To: bruce.richardson at intel.com; Ruifeng.Wang at arm.com;
>Honnappa.Nagarahalli at arm.com; Phil.Yang at arm.com;
>vcchunga at amazon.com; Dharmik.Thakkar at arm.com;
>jerinjacobk at gmail.com; hemant.agrawal at nxp.com;
>ajit.khaparde at broadcom.com; ferruh.yigit at intel.com
>Cc: dev at dpdk.org; Juraj Linkeš <juraj.linkes at pantheon.tech>
>Subject: [dpdk-dev] [PATCH v14 00/12] Arm build options rework
>
>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 <jerinj at marvell.com>
>Series Tested-by: Jerin Jacob <jerinj at marvell.com>
>Series Tested-by: Dharmik Thakkar <dharmik.thakkar at arm.com>
>Series Tested-by: Vimal Chungath <vcchunga at amazon.com>
>

Series Tested-by: Pavan Nikhilesh <pbhagavatula at marvell.com>

Also, I believe we need to take a look at ARCH_SOC_ID support 
coming up in 5.9 kernel.

https://lore.kernel.org/linux-arm-kernel/20200506164411.3284-1-sudeep.holla@arm.com/

>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



More information about the dev mailing list