[dpdk-dev] [PATCH v4 2/6] build: refactor Arm build
Honnappa Nagarahalli
Honnappa.Nagarahalli at arm.com
Wed Oct 28 00:12:54 CET 2020
<snip>
> > I think we need to split this further. Few suggestions below.
> >
> > >
> > > * Rename variables to have names that better describe what the
> > > variables store
> > This should be a separate commit.
> >
> > > * Remove unused or superfluous variables
> > Same here
> >
> > > * Change a list to dictionary where key lookup is needed
> > Same here
> >
> > > * Add informatory comments in the code
> >
> > > * Minor code restructure and reformatting
> > Same for this
> >
>
> Ok, hopefully I'll be able to separate these cleanly.
>
> > >
> > > Signed-off-by: Juraj Linkeš <juraj.linkes at pantheon.tech>
> > > ---
> > > config/arm/arm64_armada_linux_gcc | 2 +-
> > > config/arm/arm64_armv8_linux_gcc | 8 +-
> > > config/arm/arm64_bluefield_linux_gcc | 4 +-
> > > config/arm/arm64_dpaa_linux_gcc | 2 +-
> > > config/arm/arm64_emag_linux_gcc | 2 +-
> > > config/arm/arm64_n1sdp_linux_gcc | 4 +-
> > > config/arm/arm64_octeontx2_linux_gcc | 4 +-
> > > config/arm/arm64_stingray_linux_gcc | 4 +-
> > > config/arm/arm64_thunderx2_linux_gcc | 4 +-
> > > config/arm/arm64_thunderx_linux_gcc | 2 +-
> > > config/arm/meson.build | 247 +++++++++++++++------------
> > > 11 files changed, 153 insertions(+), 130 deletions(-)
> > >
> > > diff --git a/config/arm/arm64_armada_linux_gcc
> > > b/config/arm/arm64_armada_linux_gcc
> > > index fa40c0398..52c5f4476 100644
> > > --- a/config/arm/arm64_armada_linux_gcc
> > > +++ b/config/arm/arm64_armada_linux_gcc
> > > @@ -14,4 +14,4 @@ cpu = 'armv8-a'
> > > endian = 'little'
> > >
> > > [properties]
> > > -implementor_id = '0x56'
> > > +implementer_id = '0x56'
> > Implementor and implementer mean the same. Looked at Arm specs, they
> > use 'implementer'. So, I am fine.
> >
>
> That's where I got this and some of the other variable name changes from.
>
> > > diff --git a/config/arm/arm64_armv8_linux_gcc
> > > b/config/arm/arm64_armv8_linux_gcc
> > > index 88f0ff9da..13ee8b223 100644
> > > --- a/config/arm/arm64_armv8_linux_gcc
> > > +++ b/config/arm/arm64_armv8_linux_gcc
> > > @@ -13,10 +13,10 @@ cpu = 'armv8-a'
> > > endian = 'little'
> > >
> > > [properties]
> > > -implementor_id = 'generic'
> > > +implementer_id = 'generic'
> > >
> > > -# Valid options for Arm's implementor_pn:
> > > -# 'default': valid for all armv8-a architectures (default value)
> > > +# Valid options for Arm's part_number:
> > > +# 'generic': valid for all armv8-a architectures (default value)
> > > # '0xd03': cortex-a53
> > > # '0xd04': cortex-a35
> > > # '0xd05': cortex-a55
> > > @@ -25,4 +25,4 @@ implementor_id = 'generic'
> > > # '0xd09': cortex-a73
> > > # '0xd0a': cortex-a75
> > > # '0xd0b': cortex-a76
> > > -implementor_pn = 'default'
> > > +part_number = 'generic'
> > Same here, Arm specs refer to this as 'PartNumber'. So, this should be fine.
> > I like 'generic' for part_number here.
> >
> > > diff --git a/config/arm/arm64_bluefield_linux_gcc
> > > b/config/arm/arm64_bluefield_linux_gcc
> > > index 86797d23c..b79389d85 100644
> > > --- a/config/arm/arm64_bluefield_linux_gcc
> > > +++ b/config/arm/arm64_bluefield_linux_gcc
> > > @@ -13,5 +13,5 @@ cpu = 'armv8-a'
> > > endian = 'little'
> > >
[...]
> > > diff --git a/config/arm/meson.build b/config/arm/meson.build index
> > > 491842cad..6c31ab167 100644
> > > --- a/config/arm/meson.build
> > > +++ b/config/arm/meson.build
> > > @@ -3,12 +3,12 @@
> > > # Copyright(c) 2017 Cavium, Inc
> > > # Copyright(c) 2020 PANTHEON.tech s.r.o.
> > >
> > > -# for checking defines we need to use the correct compiler flags
> > > -march_opt = '-march=@0@'.format(machine)
> > > -
[...]
> > >
> > > +# implementer specific aarch64 flags, with middle priority # (will
> > > +overwrite common flags)
> > > flags_generic = [
> > > ['RTE_MACHINE', '"armv8a"'],
> > > ['RTE_MAX_LCORE', 256],
> > > ['RTE_USE_C11_MEM_MODEL', true],
> > > - ['RTE_CACHE_LINE_SIZE', 128]]
> > > + ['RTE_CACHE_LINE_SIZE', 128]
> > > +]
> > Any particular reason for this change? (and similar changes below)
> >
>
> The first bracket is split from the second bracket so I did the same for the last
> two brackets. It makes it more apparent which brackets are paired, it's more
> consistent and also in line with how flags_common_default is formatted.
Ok
>
[...]
> > > flags_dpaa = [
> > > ['RTE_MACHINE', '"dpaa"'],
> > > ['RTE_USE_C11_MEM_MODEL', true],
> > > ['RTE_CACHE_LINE_SIZE', 64],
> > > ['RTE_MAX_NUMA_NODES', 1],
> > > ['RTE_MAX_LCORE', 16],
> > > - ['RTE_LIBRTE_DPAA2_USE_PHYS_IOVA', false]]
> > > + ['RTE_LIBRTE_DPAA2_USE_PHYS_IOVA', false] ]
> > This is not needed
> >
>
> Do you mean the space? It should be a line break. I'll check the exact
I meant the space. I guess it needs to be on the next line.
> characters, but I see this as adding a space in my local patch. Or do you mean
> the config option? It's set to true by default in config/meson.build and
> according to [1] it should be disabled.
>
> [1] http://git.dpdk.org/dpdk/tree/config/defconfig_arm64-dpaa-linuxapp-
> gcc?h=v20.08
>
> > > flags_emag = [
> > > ['RTE_MACHINE', '"emag"'],
> > > - ['RTE_CACHE_LINE_SIZE', 64],
> > > ['RTE_MAX_NUMA_NODES', 1],
> > > - ['RTE_MAX_LCORE', 32]]
> > > + ['RTE_MAX_LCORE', 32],
> > > + ['RTE_CACHE_LINE_SIZE', 64]
> > > +]
> > > flags_armada = [
> > > ['RTE_MACHINE', '"armv8a"'],
> > > - ['RTE_CACHE_LINE_SIZE', 64],
> > > ['RTE_MAX_NUMA_NODES', 1],
> > > - ['RTE_MAX_LCORE', 16]]
> > > + ['RTE_MAX_LCORE', 16],
> > > + ['RTE_CACHE_LINE_SIZE', 64]
> > > +]
> > Any reason for this change?
> >
>
> The default (from flags_common_default) is 128 and I found here [0] that it
> should be set to 64 so I added it here. Should this also be in a separate patch
> (apart from those 4 already mention above)?
The RTE_CACHE_LINE_SIZE is already set to 64 for 'flags_armada'. It looks like you have moved the line down.
>
> [0] http://git.dpdk.org/dpdk/tree/config/defconfig_arm64-armada-
> linuxapp-gcc?h=v20.08
>
> > >
> > > -flags_default_extra = []
> > > +# part number specific aarch64 flags, with highest priority # (will
> > > +overwrite both common and implementer specific flags)
> > > flags_n1sdp_extra = [
> > > ['RTE_MACHINE', '"n1sdp"'],
> > > ['RTE_MAX_NUMA_NODES', 1],
> > > ['RTE_MAX_LCORE', 4],
> > > ['RTE_EAL_NUMA_AWARE_HUGEPAGES', false],
> > > - ['RTE_LIBRTE_VHOST_NUMA', false]]
> > > + ['RTE_LIBRTE_VHOST_NUMA', false]
> > > +]
<snip>
> > > -
> > > -machine_args_emag = [
> > > - ['default', ['-march=armv8-a+crc+crypto', '-mtune=emag']],
> > > - ['native', ['-march=native']]]
> > > + ['RTE_USE_C11_MEM_MODEL', true]
> > > +]
> > > +# arm config (implementer 0x41) is the default config
> > > +pn_config_default
> > 'pn' here for 'part_number' is not consistent.
> >
>
> Ok, I can rename it to part_number_config_default. Same for the other two
> pn variables.
Ok
>
<snip>
> > > --
> > > 2.20.1
More information about the dev
mailing list