> -----Original Message----- > From: Yongseok Koh <ys...@mellanox.com> > Sent: Saturday, April 13, 2019 4:55 AM > To: bruce.richard...@intel.com; Jerin Jacob Kollanukkaran > <jer...@marvell.com>; Pavan Nikhilesh Bhagavatula > <pbhagavat...@marvell.com>; shah...@mellanox.com > Cc: dev@dpdk.org; tho...@monjalon.net; gavin...@arm.com; > honnappa.nagaraha...@arm.com > Subject: [EXT] [PATCH 5/6] build: add option for armv8 crypto extension > > CONFIG_RTE_MACHINE="armv8a" > +CONFIG_RTE_ENABLE_ARMV8_CRYPTO=y
This approach is not scalable. Even, it is not good for BlueField as you you need to maintain two images. Unlike other CPU flags, arm64's crypto cpu flag is really _optional_. Access to crypto instructions is always at under runtime check. See the following in rte_armv8_pmd.c /* Check CPU for support for AES instruction set */ if (!rte_cpu_get_flag_enabled(RTE_CPUFLAG_AES)) { ARMV8_CRYPTO_LOG_ERR( "AES instructions not supported by CPU"); return -EFAULT; } /* Check CPU for support for SHA instruction set */ if (!rte_cpu_get_flag_enabled(RTE_CPUFLAG_SHA1) || !rte_cpu_get_flag_enabled(RTE_CPUFLAG_SHA2)) { ARMV8_CRYPTO_LOG_ERR( "SHA1/SHA2 instructions not supported by CPU"); return -EFAULT; } So In order to avoid one more config flags specific to armv8 in meson and makefile build infra And avoid the need for 6/6 patch. IMO, # Introduce optional CPU flag scheme in eal. Treat armv8 crypto as optional flag # Skip the eal init check for optional flag. Do you see any issues with that approach?