[dpdk-dev] [PATCH v11 00/15] Arm build options rework

Juraj Linkeš juraj.linkes at pantheon.tech
Fri Nov 13 14:57:08 CET 2020



> -----Original Message-----
> From: Ruifeng Wang <Ruifeng.Wang at arm.com>
> Sent: Friday, November 13, 2020 2:52 PM
> To: Juraj Linkeš <juraj.linkes at pantheon.tech>; bruce.richardson at intel.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; nd <nd at arm.com>
> Subject: RE: [PATCH v11 00/15] Arm build options rework
> 
> > -----Original Message-----
> > From: Juraj Linkeš <juraj.linkes at pantheon.tech>
> > Sent: Friday, November 13, 2020 7:38 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 v11 00/15] 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.
> >
> 
> Hi Juraj,
> 
> I see the clang build fix was added to v10 but is missing in v11.
> Some tags are not taken in v11.
> Please have a check.
> 

The clang build fix has already been merged, so the rebase automatically reshuffled the order, which resulted in me sending Dharmik's already merged patch. I'll recheck the tags (unicast send me please the ones you've noticed) and send a new version.

> Thanks.
> > Dharmik Thakkar (1):
> >   crypto/armv8: replace meson option with pkg-config support
> >
> > 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 +
> >  doc/guides/cryptodevs/armv8.rst               |  10 +-
> >  .../linux_gsg/cross_build_dpdk_for_arm64.rst  |  30 ++
> >  doc/guides/prog_guide/build-sdk-meson.rst     |   4 +-
> >  drivers/crypto/armv8/meson.build              |  19 +-
> >  drivers/meson.build                           |   6 +-
> >  meson.build                                   |   1 +
> >  meson_options.txt                             |  14 +-
> >  24 files changed, 516 insertions(+), 235 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