[dpdk-dev] [PATCH v2] build: disable armv8 crypto extension
Honnappa.Nagarahalli at arm.com
Fri May 3 17:02:15 CEST 2019
We need to enable 'CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO' (which would require a documentation change in ). 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)?
> -----Original Message-----
> From: Yongseok Koh <yskoh at mellanox.com>
> Sent: Friday, May 3, 2019 7:28 AM
> To: jerinj at marvell.com; thomas at monjalon.net
> Cc: dev at dpdk.org; bruce.richardson at intel.com; pbhagavatula at marvell.com;
> shahafs at mellanox.com; Gavin Hu (Arm Technology China)
> <Gavin.Hu at arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli at arm.com>; stable at 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: stable at dpdk.org
> Signed-off-by: Yongseok Koh <yskoh at mellanox.com>
> * 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
More information about the dev