[dpdk-dev] [PATCH v12 00/14] Arm build options rework
Ruifeng Wang
Ruifeng.Wang at arm.com
Fri Nov 13 15:40:22 CET 2020
> -----Original Message-----
> From: Juraj Linkeš <juraj.linkes at pantheon.tech>
> Sent: Friday, November 13, 2020 10:31 PM
> To: bruce.richardson at intel.com; Ruifeng Wang <Ruifeng.Wang at arm.com>;
> Honnappa Nagarahalli <Honnappa.Nagarahalli at arm.com>; Phil Yang
> <Phil.Yang at arm.com>; vcchunga at amazon.com; Dharmik Thakkar
> <Dharmik.Thakkar at arm.com>; jerinjacobk at gmail.com;
> hemant.agrawal at nxp.com; Ajit Khaparde (ajit.khaparde at broadcom.com)
> <ajit.khaparde at broadcom.com>; ferruh.yigit at intel.com
> Cc: dev at dpdk.org; Juraj Linkeš <juraj.linkes at pantheon.tech>
> Subject: [PATCH v12 00/14] 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.
>
> 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 Acked-by: Ruifeng Wang <ruifeng.wang at arm.com>
> Juraj Linkeš (14):
> build: alias default build as generic
> 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 generic build
> build: use native machine args in Arm native build
> build: optional NUMA and cpu counts detection
> build: add core and NUMA counts to cross files
> build: disable Arm drivers
> build: disable libnuma in cross builds
> build: add Arm SoC meson option
> config: fix Arm implementer and its SoCs
>
> buildtools/get_cpu_count.py | 7 +
> buildtools/get_numa_count.py | 22 +
> buildtools/meson.build | 2 +
> 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 | 503 ++++++++++++------
> config/meson.build | 90 +++-
> config/x86/meson.build | 2 +
> .../linux_gsg/cross_build_dpdk_for_arm64.rst | 30 ++
> doc/guides/prog_guide/build-sdk-meson.rst | 4 +-
> drivers/meson.build | 6 +-
> meson.build | 1 +
> meson_options.txt | 12 +-
> 22 files changed, 504 insertions(+), 216 deletions(-) create mode 100644
> buildtools/get_cpu_count.py create mode 100644
> buildtools/get_numa_count.py rename
> config/arm/{arm64_thunderx_linux_gcc => arm64_thunderxt88_linux_gcc}
> (92%)
>
> --
> 2.20.1
More information about the dev
mailing list