DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jerin Jacob Kollanukkaran <jerinj@marvell.com>
To: Yongseok Koh <yskoh@mellanox.com>,
	Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
Cc: Shahaf Shuler <shahafs@mellanox.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"bruce.richardson@intel.com" <bruce.richardson@intel.com>,
	"Pavan Nikhilesh Bhagavatula" <pbhagavatula@marvell.com>,
	"Gavin Hu (Arm Technology China)" <Gavin.Hu@arm.com>,
	nd <nd@arm.com>
Subject: Re: [dpdk-dev] [PATCH 1/2] build: add option for armv8 crypto	extension
Date: Thu, 2 May 2019 10:00:43 +0000	[thread overview]
Message-ID: <BYAPR18MB24241039D291A04501C57A83C8340@BYAPR18MB2424.namprd18.prod.outlook.com> (raw)
Message-ID: <20190502100043.llIVQjF3OcLia6Kl4bzSK9UJ4_ZhCLm9pdH0Ria-i0s@z> (raw)
In-Reply-To: <FF52C8A4-F569-4961-A566-AF55A3BFBFDA@mellanox.com>

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Yongseok Koh
> Sent: Thursday, May 2, 2019 11:17 AM
> To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Shahaf Shuler
> <shahafs@mellanox.com>; Thomas Monjalon <thomas@monjalon.net>;
> dev@dpdk.org; bruce.richardson@intel.com; Pavan Nikhilesh Bhagavatula
> <pbhagavatula@marvell.com>; Gavin Hu (Arm Technology China)
> <Gavin.Hu@arm.com>; nd <nd@arm.com>
> Subject: Re: [dpdk-dev] [PATCH 1/2] build: add option for armv8 crypto
> extension
> 
> > On May 1, 2019, at 9:13 PM, Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.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.
> >> For example, specifying '- mcpu=cortex-a72' doesn't enable it but
> >> '+crypto' is required in order to enable the feature.
> >>
> >> It is also 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.
> >>
> >> Therefore, an option to control this feature is necessary. It is
> >> still enabled by default but can be selectively disabled by vendors.
> > The distro/binary portable image needs to be built without crypto. Only the
> crypto drivers need to be built with crypto and at run time we need to hook up
> the correct function pointers. So, IMO, by default crypto should be disabled and
> should be enabled in specific target machine configs.
> 
> I make it enabled by default simply because I don't want to change the current
> behavior, no breakage.
> 
> I also want to hear from others. Jerin, Thomas?

I think, Honnapa suggestion would work as core crypto driver is build as separate binary now.
https://github.com/caviumnetworks/armv8_crypto	
If so, It makes sense to disable crypto by default for DPDK as DPDK directly not using any
crypto instructions.






> 
> >>
> >> Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
> >> ---
> >> config/arm/meson.build        | 16 +++++++++-------
> >> config/common_armv8a_linux    |  1 +
> >> drivers/crypto/armv8/Makefile |  4 ++++
> >> meson_options.txt             |  2 ++
> >> mk/machine/armv8a/rte.vars.mk |  4 ++++
> >> 5 files changed, 20 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/config/arm/meson.build b/config/arm/meson.build index
> >> 7fa6ed3105..3b53842d08 100644
> >> --- a/config/arm/meson.build
> >> +++ b/config/arm/meson.build
> >> @@ -8,6 +8,8 @@ march_opt = '-march=@0@'.format(machine)
> >> arm_force_native_march = false  arm_force_default_march = (machine ==
> >> 'default')
> >>
> >> +crypto_flag = get_option('enable_armv8_crypto') ? '+crypto' : ''
> >> +
> >> flags_common_default = [
> >> 	# Accelarate rte_memcpy. Be sure to run unit test
> >> (memcpy_perf_autotest)
> >> 	# to determine the best threshold in code. Refer to notes in source
> >> file @@ -74,14 +76,14 @@ flags_octeontx2_extra = [
> >> 	['RTE_USE_C11_MEM_MODEL', true]]
> >>
> >> machine_args_generic = [
> >> -	['default', ['-march=armv8-a+crc+crypto']],
> >> +	['default', ['-march=armv8-a+crc' + crypto_flag]],
> >> 	['native', ['-march=native']],
> >> -	['0xd03', ['-mcpu=cortex-a53']],
> >> -	['0xd04', ['-mcpu=cortex-a35']],
> >> -	['0xd07', ['-mcpu=cortex-a57']],
> >> -	['0xd08', ['-mcpu=cortex-a72']],
> >> -	['0xd09', ['-mcpu=cortex-a73']],
> >> -	['0xd0a', ['-mcpu=cortex-a75']]]
> >> +	['0xd03', ['-mcpu=cortex-a53' + crypto_flag]],
> >> +	['0xd04', ['-mcpu=cortex-a35' + crypto_flag]],
> >> +	['0xd07', ['-mcpu=cortex-a57' + crypto_flag]],
> >> +	['0xd08', ['-mcpu=cortex-a72' + crypto_flag]],
> >> +	['0xd09', ['-mcpu=cortex-a73' + crypto_flag]],
> >> +	['0xd0a', ['-mcpu=cortex-a75' + crypto_flag]]]
> >>
> >> machine_args_cavium = [
> >> 	['default', ['-march=armv8-a+crc+crypto','-mcpu=thunderx']],
> >> diff --git a/config/common_armv8a_linux b/config/common_armv8a_linux
> >> index 72091de1c7..0efa3e2eb2 100644
> >> --- a/config/common_armv8a_linux
> >> +++ b/config/common_armv8a_linux
> >> @@ -5,6 +5,7 @@
> >> #include "common_linux"
> >>
> >> CONFIG_RTE_MACHINE="armv8a"
> >> +CONFIG_RTE_ENABLE_ARMV8_CRYPTO=y
> >>
> >> CONFIG_RTE_ARCH="arm64"
> >> CONFIG_RTE_ARCH_ARM64=y
> >> diff --git a/drivers/crypto/armv8/Makefile
> >> b/drivers/crypto/armv8/Makefile index f71f6b14a4..867a5206cf 100644
> >> --- a/drivers/crypto/armv8/Makefile
> >> +++ b/drivers/crypto/armv8/Makefile
> >> @@ -4,6 +4,10 @@
> >>
> >> include $(RTE_SDK)/mk/rte.vars.mk
> >>
> >> +ifneq ($(CONFIG_RTE_ENABLE_ARMV8_CRYPTO),y)
> >> +$(error "Please enable CONFIG_RTE_ENABLE_ARMV8_CRYPTO") endif
> >> +
> >> ifneq ($(MAKECMDGOALS),clean)
> >> ifneq ($(MAKECMDGOALS),config)
> >> ifeq ($(ARMV8_CRYPTO_LIB_PATH),)
> >> diff --git a/meson_options.txt b/meson_options.txt index
> >> 16d9f92c65..4ca09771de 100644
> >> --- a/meson_options.txt
> >> +++ b/meson_options.txt
> >> @@ -4,6 +4,8 @@ option('allow_invalid_socket_id', type: 'boolean', value:
> >> false,
> >> 	description: 'allow out-of-range NUMA socket id\'s for platforms
> >> that don\'t report the value correctly')  option('drivers_install_subdir', type:
> >> 'string', value: 'dpdk/pmds-<VERSION>',
> >> 	description: 'Subdirectory of libdir where to install PMDs. Defaults
> >> to using a versioned subdirectory.')
> >> +option('enable_armv8_crypto', type: 'boolean', value: true,
> >> +	description: 'enable armv8 crypto extension')
> >> option('enable_docs', type: 'boolean', value: false,
> >> 	description: 'build documentation')
> >> option('enable_kmods', type: 'boolean', value: true, diff --git
> >> a/mk/machine/armv8a/rte.vars.mk b/mk/machine/armv8a/rte.vars.mk index
> >> 8252efbb7b..4893d01a2d 100644
> >> --- a/mk/machine/armv8a/rte.vars.mk
> >> +++ b/mk/machine/armv8a/rte.vars.mk
> >> @@ -28,4 +28,8 @@
> >> # CPU_LDFLAGS =
> >> # CPU_ASFLAGS =
> >>
> >> +ifeq ($(CONFIG_RTE_ENABLE_ARMV8_CRYPTO),y)
> >> MACHINE_CFLAGS += -march=armv8-a+crc+crypto
> >> +else
> >> +MACHINE_CFLAGS += -march=armv8-a+crc endif
> >> --
> >> 2.11.0
> >


  parent reply	other threads:[~2019-05-02 10:00 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-02  1:58 Yongseok Koh
2019-05-02  1:58 ` Yongseok Koh
2019-05-02  1:58 ` [dpdk-dev] [PATCH 2/2] mk: disable armv8 crypto extension for Mellanox BlueField Yongseok Koh
2019-05-02  1:58   ` Yongseok Koh
2019-05-02  4:12   ` Honnappa Nagarahalli
2019-05-02  4:12     ` Honnappa Nagarahalli
2019-05-02  5:40     ` Yongseok Koh
2019-05-02  5:40       ` Yongseok Koh
2019-05-03  4:01       ` Honnappa Nagarahalli
2019-05-03  4:01         ` Honnappa Nagarahalli
2019-05-02  4:13 ` [dpdk-dev] [PATCH 1/2] build: add option for armv8 crypto extension Honnappa Nagarahalli
2019-05-02  4:13   ` Honnappa Nagarahalli
2019-05-02  5:46   ` Yongseok Koh
2019-05-02  5:46     ` Yongseok Koh
2019-05-02 10:00     ` Jerin Jacob Kollanukkaran [this message]
2019-05-02 10:00       ` Jerin Jacob Kollanukkaran
2019-05-03  3:57     ` Honnappa Nagarahalli
2019-05-03  3:57       ` Honnappa Nagarahalli
2019-05-03  9:57       ` Yongseok Koh
2019-05-03  9:57         ` Yongseok Koh
2019-05-03 12:28 ` [dpdk-dev] [PATCH v2] build: disable " Yongseok Koh
2019-05-03 12:28   ` Yongseok Koh
2019-05-03 15:02   ` Honnappa Nagarahalli
2019-05-03 15:02     ` Honnappa Nagarahalli
2019-05-03 16:10     ` Honnappa Nagarahalli
2019-05-03 16:10       ` Honnappa Nagarahalli
2019-05-03 17:50       ` Yongseok Koh
2019-05-03 17:50         ` Yongseok Koh
2019-05-06 21:46         ` [dpdk-dev] [dpdk-stable] " Yongseok Koh
2019-05-06 21:46           ` Yongseok Koh
2019-05-07  7:59           ` Jerin Jacob Kollanukkaran
2019-05-07  7:59             ` Jerin Jacob Kollanukkaran
2019-05-07 11:03             ` Honnappa Nagarahalli
2019-05-07 11:03               ` Honnappa Nagarahalli
2019-05-07 12:02               ` Jerin Jacob Kollanukkaran
2019-05-07 12:02                 ` Jerin Jacob Kollanukkaran
2019-05-03 22:13   ` [dpdk-dev] " Dharmik Thakkar
2019-05-03 22:13     ` Dharmik Thakkar
2019-05-06 21:41     ` Yongseok Koh
2019-05-06 21:41       ` Yongseok Koh
2019-05-07 21:11 ` [dpdk-dev] [PATCH v3] " Yongseok Koh
2019-05-07 21:11   ` Yongseok Koh
2019-05-13 19:26   ` Honnappa Nagarahalli
2019-05-13 19:26     ` Honnappa Nagarahalli
2019-06-03 23:11     ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BYAPR18MB24241039D291A04501C57A83C8340@BYAPR18MB2424.namprd18.prod.outlook.com \
    --to=jerinj@marvell.com \
    --cc=Gavin.Hu@arm.com \
    --cc=Honnappa.Nagarahalli@arm.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=nd@arm.com \
    --cc=pbhagavatula@marvell.com \
    --cc=shahafs@mellanox.com \
    --cc=thomas@monjalon.net \
    --cc=yskoh@mellanox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).