[dpdk-dev] [PATCH v2] build: disable armv8 crypto extension

Yongseok Koh yskoh at mellanox.com
Mon May 6 23:41:41 CEST 2019


> On May 3, 2019, at 3:13 PM, Dharmik Thakkar <Dharmik.Thakkar at arm.com> wrote:
> 
> Hi Yongseok,
> Thank you for the patch! I have tested it on Bluefield reference platform. It works fine. 

Thanks for your testing.

> One observation:
> Even though I used 'make config T=arm64-bluefield-linuxapp-gcc’,
> at the end of the build process it said 'Build complete [arm64-armv8a-linuxapp-gcc]’

The BlueField config stems from armv8a.
Unlike Cavium hosts, RTE_MACHINE is still armv8a.
Looks it is same for Broadcom's Stingray.

> Tested-by: Dharmik Thakkar <dharmik.thakkar at arm.com>
> 
>> On May 3, 2019, at 7:28 AM, Yongseok Koh <yskoh at mellanox.com> wrote:
>> 
>> 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>
>> ---
>> 
>> 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']],
>> 	['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
>> 
> 



More information about the dev mailing list