Hi Yongseok, We need to enable 'CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO' (which would require a documentation change in [1]). I think this change might have an impact on the existing users. Does this change need to be documented somewhere (at least in the release notes)?
[1] https://doc.dpdk.org/guides-19.02/cryptodevs/armv8.html > -----Original Message----- > From: Yongseok Koh <ys...@mellanox.com> > Sent: Friday, May 3, 2019 7:28 AM > To: jer...@marvell.com; tho...@monjalon.net > Cc: dev@dpdk.org; bruce.richard...@intel.com; pbhagavat...@marvell.com; > shah...@mellanox.com; Gavin Hu (Arm Technology China) > <gavin...@arm.com>; Honnappa Nagarahalli > <honnappa.nagaraha...@arm.com>; sta...@dpdk.org > Subject: [PATCH v2] build: disable armv8 crypto extension > > Per armv8 crypto extension support, make build always enable it by default > as long as compiler supports the feature while meson build only enables it for > 'default' machine of generic armv8 architecture. > > It is known that not all the armv8 platforms have the crypto extension. For > example, Mellanox BlueField has a variant which doesn't have it. If crypto > enabled binary runs on such a platform, rte_eal_init() fails. > > '+crypto' flag currently implies only '+aes' and '+sha2' and enabling it will > generate the crypto instructions only when crypto intrinsics are used. > For the devices supporting 8.2 crypto or newer, compiler could generate such > instructions beyond intrinsics or asm code. For example, compiler can > generate 3-way exclusive OR instructions if sha3 is supported. However, it > has to be enabled by adding '+sha3' as of today. > > In DPDK, armv8 cryptodev is the only one which requires the crypto support. > As it even uses external library of Marvell which is compiled out of DPDK with > crypto support and there's run-time check for required cpuflags, crypto > support can be disabled in DPDK. > > Cc: sta...@dpdk.org > > Signed-off-by: Yongseok Koh <ys...@mellanox.com> > --- > > v2: > * disable crypto support instead of having a build config > > config/arm/meson.build | 2 +- > mk/machine/armv8a/rte.vars.mk | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/config/arm/meson.build b/config/arm/meson.build index > 7fa6ed3105..abc8cf346c 100644 > --- a/config/arm/meson.build > +++ b/config/arm/meson.build > @@ -74,7 +74,7 @@ flags_octeontx2_extra = [ > ['RTE_USE_C11_MEM_MODEL', true]] > > machine_args_generic = [ > - ['default', ['-march=armv8-a+crc+crypto']], > + ['default', ['-march=armv8-a+crc']], IIRC, this would impact distro packaging as well. Adding Luca. > ['native', ['-march=native']], > ['0xd03', ['-mcpu=cortex-a53']], > ['0xd04', ['-mcpu=cortex-a35']], > diff --git a/mk/machine/armv8a/rte.vars.mk > b/mk/machine/armv8a/rte.vars.mk index 8252efbb7b..5e3ffc3adf 100644 > --- a/mk/machine/armv8a/rte.vars.mk > +++ b/mk/machine/armv8a/rte.vars.mk > @@ -28,4 +28,4 @@ > # CPU_LDFLAGS = > # CPU_ASFLAGS = > > -MACHINE_CFLAGS += -march=armv8-a+crc+crypto > +MACHINE_CFLAGS += -march=armv8-a+crc > -- > 2.11.0