DPDK patches and discussions
 help / color / mirror / Atom feed
From: Yongseok Koh <yskoh@mellanox.com>
To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>
Cc: "bruce.richardson@intel.com" <bruce.richardson@intel.com>,
	Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>,
	Shahaf Shuler <shahafs@mellanox.com>,
	 "dev@dpdk.org" <dev@dpdk.org>,
	Thomas Monjalon <thomas@monjalon.net>,
	"gavin.hu@arm.com" <gavin.hu@arm.com>,
	"Honnappa.Nagarahalli@arm.com" <Honnappa.Nagarahalli@arm.com>,
	dpdk-on-arm <dpdk-on-arm@arm.com>
Subject: Re: [dpdk-dev] [EXT] [PATCH 5/6] build: add option for armv8 crypto extension
Date: Mon, 15 Apr 2019 18:43:40 +0000	[thread overview]
Message-ID: <8328F59C-14DF-412E-A8F7-6AA1F5061065@mellanox.com> (raw)
In-Reply-To: <BYAPR18MB2424A615C597E9F8549F770BC8290@BYAPR18MB2424.namprd18.prod.outlook.com>


> On Apr 13, 2019, at 12:22 AM, Jerin Jacob Kollanukkaran <jerinj@marvell.com> wrote:
> 
>> -----Original Message-----
>> From: Yongseok Koh <yskoh@mellanox.com>
>> Sent: Saturday, April 13, 2019 4:55 AM
>> To: bruce.richardson@intel.com; Jerin Jacob Kollanukkaran
>> <jerinj@marvell.com>; Pavan Nikhilesh Bhagavatula
>> <pbhagavatula@marvell.com>; shahafs@mellanox.com
>> Cc: dev@dpdk.org; thomas@monjalon.net; gavin.hu@arm.com;
>> Honnappa.Nagarahalli@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?

I also thought about that approach and that was my number 1 priority. But, I had
one question came to my mind. Maybe, arm people can confirm it. Is it 100%
guaranteed that compiler never makes use of any of crypto instructions even if
there's no specific asm/intrinsic code?  The crypto extension has aes, pmull,
sha1 and sha2. In case of rte_memcpy() for x86, for example, compiler may
optimize code using avx512f instructions even though it is written specifically
with avx2 intrinsics (__mm256_*) unless avx512f is disabled.

If a complier expert in arm (or anyone else) confirm it is completely
**optional**, then I'd love to take that approach for sure.

Copied dpdk-on-arm ML.


Thanks,
Yongseok

  parent reply	other threads:[~2019-04-15 18:43 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-12 23:24 [dpdk-dev] [PATCH 0/6] build: fix build for arm64 Yongseok Koh
2019-04-12 23:24 ` Yongseok Koh
2019-04-12 23:24 ` [dpdk-dev] [PATCH 1/6] meson: disable octeontx for buggy compilers on arm64 Yongseok Koh
2019-04-12 23:24   ` Yongseok Koh
2019-04-13  5:52   ` [dpdk-dev] [EXT] " Pavan Nikhilesh Bhagavatula
2019-04-13  5:52     ` Pavan Nikhilesh Bhagavatula
2019-04-15 18:16     ` Yongseok Koh
2019-04-15 18:16       ` Yongseok Koh
2019-04-12 23:24 ` [dpdk-dev] [PATCH 2/6] meson: change default cache line size for cortex-a72 Yongseok Koh
2019-04-12 23:24   ` Yongseok Koh
2019-04-13  6:43   ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-04-13  6:43     ` Jerin Jacob Kollanukkaran
2019-04-15  4:35     ` Honnappa Nagarahalli
2019-04-15  4:35       ` Honnappa Nagarahalli
2019-04-15 13:40       ` Honnappa Nagarahalli
2019-04-15 13:40         ` Honnappa Nagarahalli
2019-04-15 20:40         ` Yongseok Koh
2019-04-15 20:40           ` Yongseok Koh
2019-04-15 20:44           ` Honnappa Nagarahalli
2019-04-15 20:44             ` Honnappa Nagarahalli
2019-04-12 23:24 ` [dpdk-dev] [PATCH 3/6] net/mlx: fix library search in meson build Yongseok Koh
2019-04-12 23:24   ` Yongseok Koh
2019-04-15  9:19   ` Bruce Richardson
2019-04-15  9:19     ` Bruce Richardson
2019-04-15 19:48     ` Yongseok Koh
2019-04-15 19:48       ` Yongseok Koh
2019-04-15 10:12   ` Luca Boccassi
2019-04-15 10:12     ` Luca Boccassi
2019-04-15 19:48     ` Yongseok Koh
2019-04-15 19:48       ` Yongseok Koh
2019-04-18  9:25       ` Luca Boccassi
2019-04-18  9:25         ` Luca Boccassi
2019-04-18 10:14         ` Bruce Richardson
2019-04-18 10:14           ` Bruce Richardson
2019-04-18 11:25           ` Yongseok Koh
2019-04-18 11:25             ` Yongseok Koh
2019-04-12 23:24 ` [dpdk-dev] [PATCH 4/6] meson: add Mellanox BlueField cross-compile config Yongseok Koh
2019-04-12 23:24   ` Yongseok Koh
2019-04-13  7:04   ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-04-13  7:04     ` Jerin Jacob Kollanukkaran
2019-04-12 23:24 ` [dpdk-dev] [PATCH 5/6] build: add option for armv8 crypto extension Yongseok Koh
2019-04-12 23:24   ` Yongseok Koh
2019-04-13  7:22   ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-04-13  7:22     ` Jerin Jacob Kollanukkaran
2019-04-15  4:52     ` Honnappa Nagarahalli
2019-04-15  4:52       ` Honnappa Nagarahalli
2019-04-15 18:43     ` Yongseok Koh [this message]
2019-04-15 18:43       ` Yongseok Koh
2019-04-15 20:13       ` Honnappa Nagarahalli
2019-04-15 20:13         ` Honnappa Nagarahalli
2019-04-17 16:28         ` Yongseok Koh
2019-04-17 16:28           ` Yongseok Koh
2019-04-30  3:33           ` Honnappa Nagarahalli
2019-04-30  3:33             ` Honnappa Nagarahalli
2019-05-02  1:54             ` Yongseok Koh
2019-05-02  1:54               ` Yongseok Koh
2019-05-02 10:13             ` Jerin Jacob Kollanukkaran
2019-05-02 10:13               ` Jerin Jacob Kollanukkaran
2019-05-02 23:08               ` Yongseok Koh
2019-05-02 23:08                 ` Yongseok Koh
2019-05-02 23:33                 ` Yongseok Koh
2019-05-02 23:33                   ` Yongseok Koh
2019-05-03 10:28                   ` Jerin Jacob Kollanukkaran
2019-05-03 10:28                     ` Jerin Jacob Kollanukkaran
2019-05-03  3:54                 ` Honnappa Nagarahalli
2019-05-03  3:54                   ` Honnappa Nagarahalli
2019-05-03  9:49                   ` Yongseok Koh
2019-05-03  9:49                     ` Yongseok Koh
2019-05-03 14:21                     ` Honnappa Nagarahalli
2019-05-03 14:21                       ` Honnappa Nagarahalli
2019-04-12 23:24 ` [dpdk-dev] [PATCH 6/6] mk: disable armv8 crypto extension for Mellanox BlueField Yongseok Koh
2019-04-12 23:24   ` Yongseok Koh
2019-04-13  7:12 ` [dpdk-dev] [EXT] [PATCH 0/6] build: fix build for arm64 Jerin Jacob Kollanukkaran
2019-04-13  7:12   ` Jerin Jacob Kollanukkaran
2019-04-15 20:56   ` Yongseok Koh
2019-04-15 20:56     ` Yongseok Koh
2019-04-16  5:57     ` Jerin Jacob Kollanukkaran
2019-04-16  5:57       ` Jerin Jacob Kollanukkaran
2019-04-17 20:06 ` [dpdk-dev] " Thomas Monjalon
2019-04-17 20:06   ` Thomas Monjalon
2019-04-17 20:24   ` Honnappa Nagarahalli
2019-04-17 20:24     ` Honnappa Nagarahalli
2019-04-17 22:14   ` Yongseok Koh
2019-04-17 22:14     ` Yongseok Koh
2019-04-18  1:47 ` [dpdk-dev] [PATCH v2 1/4] meson: disable octeontx for buggy compilers on arm64 Yongseok Koh
2019-04-18  1:47   ` Yongseok Koh
2019-04-18  1:47   ` [dpdk-dev] [PATCH v2 2/4] meson: change default cache line size for armv8 Yongseok Koh
2019-04-18  1:47     ` Yongseok Koh
2019-04-18  5:00     ` Honnappa Nagarahalli
2019-04-18  5:00       ` Honnappa Nagarahalli
2019-04-18  8:23       ` [dpdk-dev] [EXT] " Hemant Agrawal
2019-04-18  8:23         ` Hemant Agrawal
2019-04-18 11:32         ` Yongseok Koh
2019-04-18 11:32           ` Yongseok Koh
2019-04-18  1:47   ` [dpdk-dev] [PATCH v2 3/4] net/mlx: fix library search in meson build Yongseok Koh
2019-04-18  1:47     ` Yongseok Koh
2019-04-18  1:47   ` [dpdk-dev] [PATCH v2 4/4] meson: add Mellanox BlueField cross-compile config Yongseok Koh
2019-04-18  1:47     ` Yongseok Koh
2019-04-18  7:21   ` [dpdk-dev] [EXT] [PATCH v2 1/4] meson: disable octeontx for buggy compilers on arm64 Jerin Jacob Kollanukkaran
2019-04-18  7:21     ` Jerin Jacob Kollanukkaran
2019-04-18 10:41     ` Yongseok Koh
2019-04-18 10:41       ` Yongseok Koh
2019-04-18 11:04       ` Thomas Monjalon
2019-04-18 11:04         ` Thomas Monjalon
2019-04-18 11:10         ` Yongseok Koh
2019-04-18 11:10           ` Yongseok Koh
2019-04-18 11:49 ` [dpdk-dev] [PATCH v3 1/4] drivers/event: " Yongseok Koh
2019-04-18 11:49   ` Yongseok Koh
2019-04-18 11:49   ` [dpdk-dev] [PATCH v3 2/4] meson: change default config for armv8 Yongseok Koh
2019-04-18 11:49     ` Yongseok Koh
2019-04-18 14:25     ` Honnappa Nagarahalli
2019-04-18 14:25       ` Honnappa Nagarahalli
2019-04-18 11:49   ` [dpdk-dev] [PATCH v3 3/4] net/mlx: fix library search in meson build Yongseok Koh
2019-04-18 11:49     ` Yongseok Koh
2019-04-18 12:02     ` Luca Boccassi
2019-04-18 12:02       ` Luca Boccassi
2019-04-18 11:49   ` [dpdk-dev] [PATCH v3 4/4] meson: add Mellanox BlueField cross-compile config Yongseok Koh
2019-04-18 11:49     ` Yongseok Koh
2019-04-18 16:23     ` Thomas Monjalon
2019-04-18 16:23       ` 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=8328F59C-14DF-412E-A8F7-6AA1F5061065@mellanox.com \
    --to=yskoh@mellanox.com \
    --cc=Honnappa.Nagarahalli@arm.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=dpdk-on-arm@arm.com \
    --cc=gavin.hu@arm.com \
    --cc=jerinj@marvell.com \
    --cc=pbhagavatula@marvell.com \
    --cc=shahafs@mellanox.com \
    --cc=thomas@monjalon.net \
    /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).