On Wed, 2019-01-09 at 10:19 +0000, Luca Boccassi wrote: > On Wed, 2019-01-09 at 10:09 +0000, Jerin Jacob Kollanukkaran wrote: > > On Wed, 2019-01-09 at 01:39 -0800, Yongseok Koh wrote: > > > --------------------------------------------------------------- > > > ---- > > > --- > > > In config/arm64_armv8_linuxapp_gcc, maximum available cache line > > > size > > > (128B) in arm64 implementations is set by default for generic > > > config. > > > However, setting 64B is preferable for meson build in order to > > > support > > > majority of CPUs which don't have Implementor ID or Part Number > > > programmed > > > on chip. > > > > Adding Luca to get input from distro build perspective. > > > > If I understand it correctly, distro build will be using > > the generic config/arm/arm64_armv8_linuxapp_gcc for generic build. > > If so, We can not change cache line size for generic config > > as mentined the reason are > > https://mails.dpdk.org/archives/dev/2019-January/122441.html > > > > > > I think, I way forward is to add config/arm/arm64_a72_linuxapp_gcc > > for meson. This config can be used for all SoC with A72 armv8 > > implementation and may have sym link to specfific SoC to avoid > > confusion to end users. > > For Meson, I recently sent a patch to use a common and stable > baseline > machine arg if the uses sets it to "default": > > https://patches.dpdk.org/patch/49477/ > > For distros, I think if, within that path, the cache size is set to > the > minimum common denominator like the -march is, it will be fine.
> > At that point, what happens for "native" or otherwise specified > builds > it will not affect distros (as long as they use "default" like Debian > and Ubuntu do). > Thanks for the input > Does this answer your question? Kind of.. Will you be building "the generic image" on ANY arm64 machine with following command? meson configure -Dmachine=default meson build cd build ninja ninja install If so, This patch will change the cache line size of generic build. Right? > > > > Signed-off-by: Yongseok Koh <ys...@mellanox.com> > > > --- > > > > > > Discussion on the mailing list: > > > https://mails.dpdk.org/archives/dev/2019-January/122441.html > > > > > > config/arm/meson.build | 11 +++++++---- > > > 1 file changed, 7 insertions(+), 4 deletions(-) > > > > > > diff --git a/config/arm/meson.build b/config/arm/meson.build > > > index dae55d6b26..3af256a5ec 100644 > > > --- a/config/arm/meson.build > > > +++ b/config/arm/meson.build > > > @@ -47,8 +47,7 @@ flags_common_default = [ > > > flags_generic = [ > > > ['RTE_MACHINE', '"armv8a"'], > > > ['RTE_MAX_LCORE', 256], > > > - ['RTE_USE_C11_MEM_MODEL', true], > > > - ['RTE_CACHE_LINE_SIZE', 128]] > > > + ['RTE_USE_C11_MEM_MODEL', true]] > > > flags_cavium = [ > > > ['RTE_MACHINE', '"thunderx"'], > > > ['RTE_CACHE_LINE_SIZE', 128], > > > @@ -89,15 +88,19 @@ impl_dpaa2 = ['NXP DPAA2', flags_dpaa2, > > > machine_args_generic] > > > > > > dpdk_conf.set('RTE_FORCE_INTRINSICS', 1) > > > > > > +# In config/arm64_armv8_linuxapp_gcc, maximum available cache > > > line > > > size (128B) > > > +# in arm64 implementations is set by default for generic config. > > > However, > > > +# setting 64B is preferable for meson build in order to support > > > majority of CPUs > > > +# which don't have Implementor ID or Part Number programmed on > > > chip. > > > +dpdk_conf.set('RTE_CACHE_LINE_SIZE', 64) > > > + > > > if cc.sizeof('void *') != 8 > > > - dpdk_conf.set('RTE_CACHE_LINE_SIZE', 64) > > > dpdk_conf.set('RTE_ARCH_ARM', 1) > > > dpdk_conf.set('RTE_ARCH_ARMv7', 1) > > > # the minimum architecture supported, armv7-a, needs the > > > following, > > > # mk/machine/armv7a/rte.vars.mk sets it too > > > machine_args += '-mfpu=neon' > > > else > > > - dpdk_conf.set('RTE_CACHE_LINE_SIZE', 128) > > > dpdk_conf.set('RTE_ARCH_ARM64', 1) > > > dpdk_conf.set('RTE_ARCH_64', 1) > > >