All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jerin Jacob Kollanukkaran <jerinj@marvell.com>
To: Yongseok Koh <yskoh@mellanox.com>
Cc: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>,
	"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 Technology China)" <Gavin.Hu@arm.com>,
	nd <nd@arm.com>
Subject: Re: [dpdk-dev] [EXT] [PATCH 5/6] build: add option for armv8 crypto	extension
Date: Fri, 3 May 2019 10:28:02 +0000	[thread overview]
Message-ID: <BYAPR18MB24246B5462EE81CF879C29D5C8350@BYAPR18MB2424.namprd18.prod.outlook.com> (raw)
In-Reply-To: <76A4CB8C-4429-492D-8885-54B30C64165F@mellanox.com>

> -----Original Message-----
> From: Yongseok Koh <yskoh@mellanox.com>
> Sent: Friday, May 3, 2019 5:03 AM
> To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>
> Cc: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>;
> bruce.richardson@intel.com; Pavan Nikhilesh Bhagavatula
> <pbhagavatula@marvell.com>; Shahaf Shuler <shahafs@mellanox.com>;
> dev@dpdk.org; Thomas Monjalon <thomas@monjalon.net>; Gavin Hu (Arm
> Technology China) <Gavin.Hu@arm.com>; nd <nd@arm.com>
> Subject: Re: [dpdk-dev] [EXT] [PATCH 5/6] build: add option for armv8 crypto
> extension
> 
> 
> > On May 2, 2019, at 4:08 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
> >
> >>
> >> On May 2, 2019, at 3:13 AM, Jerin Jacob Kollanukkaran <jerinj@marvell.com>
> wrote:
> >>
> >>> -----Original Message-----
> >>> From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> >>> Sent: Tuesday, April 30, 2019 9:04 AM
> >>> To: yskoh@mellanox.com
> >>> Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>;
> >>> bruce.richardson@intel.com; Pavan Nikhilesh Bhagavatula
> >>> <pbhagavatula@marvell.com>; Shahaf Shuler <shahafs@mellanox.com>;
> >>> dev@dpdk.org; thomas@monjalon.net; Gavin Hu (Arm Technology China)
> >>> <Gavin.Hu@arm.com>; Honnappa Nagarahalli
> >>> <Honnappa.Nagarahalli@arm.com>; nd <nd@arm.com>; nd
> <nd@arm.com>
> >>> Subject: RE: [EXT] [PATCH 5/6] build: add option for armv8 crypto
> >>> extension
> >>>
> >>>> On Apr 15, 2019, at 1:13 PM, Honnappa Nagarahalli
> >>>> <Honnappa.Nagarahalli@arm.com> wrote:
> >>>>
> >>>>>>>> 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.
> >>>>>>
> >>>>> I do not know the answer, will have to check with the compiler team.
> >>>>> I will get
> >>>> back on this.
> >>>>
> >>>> Any update yet?
> >>> Currently, enabling 'crypto' flag will generate the crypto
> >>> instructions only when crypto intrinsics are used. However, when
> >>> 'sha3' (part of 8.2 crypto) flag is
> >>
> >> The default image is 8.1 spec and except octeontx2 every other SoC is
> >> 8.1 and For octeotx2 crypto is supported. If so, Should we worry this case?
> >
> > Right, it sounds to me that we can disable the option without having
> > the new config flag until such instructions get needed. According to
> > gcc-8 release note [1], currently '+crypto' implies '+aes' and '+sha2'
> > while '+sha3' and '+sm4' are newly introduced. Given that armv8 crypto
> > PMD uses external binary of Marvell. I don't see any reason to enable
> > '+crypto'. How about simply disable it from armv8 
build configs?
+1
Yes. Simply disable crypto would be enough for DPDK.

  reply	other threads:[~2019-05-03 10:28 UTC|newest]

Thread overview: 60+ 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 ` [dpdk-dev] [PATCH 1/6] meson: disable octeontx for buggy compilers on arm64 Yongseok Koh
2019-04-13  5:52   ` [dpdk-dev] [EXT] " Pavan Nikhilesh Bhagavatula
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-13  6:43   ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-04-15  4:35     ` Honnappa Nagarahalli
2019-04-15 13:40       ` Honnappa Nagarahalli
2019-04-15 20:40         ` Yongseok Koh
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-15  9:19   ` Bruce Richardson
2019-04-15 19:48     ` Yongseok Koh
2019-04-15 10:12   ` Luca Boccassi
2019-04-15 19:48     ` Yongseok Koh
2019-04-18  9:25       ` Luca Boccassi
2019-04-18 10:14         ` Bruce Richardson
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-13  7:04   ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-04-12 23:24 ` [dpdk-dev] [PATCH 5/6] build: add option for armv8 crypto extension Yongseok Koh
2019-04-13  7:22   ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-04-15  4:52     ` Honnappa Nagarahalli
2019-04-15 18:43     ` Yongseok Koh
2019-04-15 20:13       ` Honnappa Nagarahalli
2019-04-17 16:28         ` Yongseok Koh
2019-04-30  3:33           ` Honnappa Nagarahalli
2019-05-02  1:54             ` Yongseok Koh
2019-05-02 10:13             ` Jerin Jacob Kollanukkaran
2019-05-02 23:08               ` Yongseok Koh
2019-05-02 23:33                 ` Yongseok Koh
2019-05-03 10:28                   ` Jerin Jacob Kollanukkaran [this message]
2019-05-03  3:54                 ` Honnappa Nagarahalli
2019-05-03  9:49                   ` Yongseok Koh
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-13  7:12 ` [dpdk-dev] [EXT] [PATCH 0/6] build: fix build for arm64 Jerin Jacob Kollanukkaran
2019-04-15 20:56   ` Yongseok Koh
2019-04-16  5:57     ` Jerin Jacob Kollanukkaran
2019-04-17 20:06 ` [dpdk-dev] " Thomas Monjalon
2019-04-17 20:24   ` Honnappa Nagarahalli
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   ` [dpdk-dev] [PATCH v2 2/4] meson: change default cache line size for armv8 Yongseok Koh
2019-04-18  5:00     ` Honnappa Nagarahalli
2019-04-18  8:23       ` [dpdk-dev] [EXT] " Hemant Agrawal
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   ` [dpdk-dev] [PATCH v2 4/4] meson: add Mellanox BlueField cross-compile config 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 10:41     ` Yongseok Koh
2019-04-18 11:04       ` Thomas Monjalon
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   ` [dpdk-dev] [PATCH v3 2/4] meson: change default config for armv8 Yongseok Koh
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 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 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=BYAPR18MB24246B5462EE81CF879C29D5C8350@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.