[dpdk-dev] [PATCH v8 00/14] Arm build options rework

Juraj Linkeš juraj.linkes at pantheon.tech
Fri Nov 6 09:39:40 CET 2020



> -----Original Message-----
> From: Morten Brørup <mb at smartsharesystems.com>
> Sent: Friday, November 6, 2020 9:23 AM
> To: Juraj Linkeš <juraj.linkes at pantheon.tech>; 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; aconole at redhat.com
> Cc: dev at dpdk.org
> Subject: RE: [dpdk-dev] [PATCH v8 00/14] Arm build options rework
> 
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Juraj Linkeš
> > Sent: Friday, November 6, 2020 9:03 AM
> >
> > 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.
> >
> > 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 cross files.
> >
> > 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 must be done using
> >   cross-files
> > * max numa nodes and max lcore may be specified on the command line to
> >   overwrite the values for any (native or cross) build
> >
> 
> We are cross building our application firmware x86 -> x86. Our firmware
> repository includes the cross compiler source code, target libc source code, and
> so on. This ensures that the entire firmware is exactly the same, independently
> of which host it was built on.
> 
> Back in the days, before we started using DPDK, we validated our cross building
> environment by building the complete firmware for our appliance (including
> bootloader, Linux kernel, libraries, applications, root file system, etc.) PPC ->
> x86. It worked.
> 
> The DPDK cross building system should work in any X -> Y environment, including
> X -> X cross building.
> 

The series only modifies aarch64 aspect of the build system. So anything else that worked before should be working as it was. The wording should've been more clearer - The series adds/supports those bullet points.

> > 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.
> >


More information about the dev mailing list