public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
* [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9
@ 2023-07-11 20:10 Khem Raj
  2023-07-11 20:10 ` [PATCH 2/2] arch-armv8,arch-armv9: Add sve based tune options Khem Raj
  2023-07-12 10:29 ` [OE-core] [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9 Ross Burton
  0 siblings, 2 replies; 6+ messages in thread
From: Khem Raj @ 2023-07-11 20:10 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

This helps in defining correct compiler options and configure options
for glibc and overall ABI for toolchain

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/arm/feature-arm-sve.inc | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 meta/conf/machine/include/arm/feature-arm-sve.inc

diff --git a/meta/conf/machine/include/arm/feature-arm-sve.inc b/meta/conf/machine/include/arm/feature-arm-sve.inc
new file mode 100644
index 00000000000..279bf8c4862
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-sve.inc
@@ -0,0 +1,5 @@
+# Scalable Vector Extension (SVE) for:
+# armv8.2-a, armv8.3-a, armv8.4-a, armv8.5-a, armv8.6-a, armv8-r, armv9a
+
+TUNEVALID[sve] = "Enable SVE instructions for ARMv8 and ARMv9"
+TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'sve', '+sve', '', d)}"
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] arch-armv8,arch-armv9: Add sve based tune options
  2023-07-11 20:10 [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9 Khem Raj
@ 2023-07-11 20:10 ` Khem Raj
  2023-07-12 10:29 ` [OE-core] [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9 Ross Burton
  1 sibling, 0 replies; 6+ messages in thread
From: Khem Raj @ 2023-07-11 20:10 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/arm/arch-armv8-2a.inc | 7 ++++++-
 meta/conf/machine/include/arm/arch-armv8-4a.inc | 7 ++++++-
 meta/conf/machine/include/arm/arch-armv8-5a.inc | 7 ++++++-
 meta/conf/machine/include/arm/arch-armv9a.inc   | 7 ++++++-
 4 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
index 95368b0af79..6f31e26e34f 100644
--- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
@@ -6,14 +6,19 @@ TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march
 MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a:', '', d)}"
 
 require conf/machine/include/arm/arch-armv8a.inc
+require conf/machine/include/arm/feature-arm-sve.inc
 
 # Little Endian base configs
-AVAILTUNES += "armv8-2a armv8-2a-crypto"
+AVAILTUNES += "armv8-2a armv8-2a-crypto armv8-2a-crypto-sve"
 ARMPKGARCH:tune-armv8-2a                    ?= "armv8-2a"
 ARMPKGARCH:tune-armv8-2a-crypto             ?= "armv8-2a"
+ARMPKGARCH:tune-armv8-2a-crypto-sve         ?= "armv8-2a"
 TUNE_FEATURES:tune-armv8-2a                  = "aarch64 armv8-2a"
 TUNE_FEATURES:tune-armv8-2a-crypto           = "${TUNE_FEATURES:tune-armv8-2a} crypto"
+TUNE_FEATURES:tune-armv8-2a-crypto-sve       = "${TUNE_FEATURES:tune-armv8-2a-crypto} sve"
 PACKAGE_EXTRA_ARCHS:tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-2a"
 PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a} armv8-2a-crypto"
+PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto-sve = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} armv8-2a-crypto-sve"
 BASE_LIB:tune-armv8-2a                       = "lib64"
 BASE_LIB:tune-armv8-2a-crypto                = "lib64"
+BASE_LIB:tune-armv8-2a-crypto-sve            = "lib64"
diff --git a/meta/conf/machine/include/arm/arch-armv8-4a.inc b/meta/conf/machine/include/arm/arch-armv8-4a.inc
index 29feddb64c5..b61d50daa5e 100644
--- a/meta/conf/machine/include/arm/arch-armv8-4a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8-4a.inc
@@ -6,14 +6,19 @@ TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-4a', ' -march
 MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-4a', 'armv8-4a:', '', d)}"
 
 require conf/machine/include/arm/arch-armv8a.inc
+require conf/machine/include/arm/feature-arm-sve.inc
 
 # Little Endian base configs
-AVAILTUNES += "armv8-4a armv8-4a-crypto"
+AVAILTUNES += "armv8-4a armv8-4a-crypto armv8-4a-crypto-sve"
 ARMPKGARCH:tune-armv8-4a                    ?= "armv8-4a"
 ARMPKGARCH:tune-armv8-4a-crypto             ?= "armv8-4a"
+ARMPKGARCH:tune-armv8-4a-crypto-sve         ?= "armv8-4a"
 TUNE_FEATURES:tune-armv8-4a                  = "aarch64 armv8-4a"
 TUNE_FEATURES:tune-armv8-4a-crypto           = "${TUNE_FEATURES:tune-armv8-4a} crypto"
+TUNE_FEATURES:tune-armv8-4a-crypto-sve       = "${TUNE_FEATURES:tune-armv8-4a-crypto} sve"
 PACKAGE_EXTRA_ARCHS:tune-armv8-4a            = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-4a"
 PACKAGE_EXTRA_ARCHS:tune-armv8-4a-crypto     = "${PACKAGE_EXTRA_ARCHS:tune-armv8-4a} armv8-4a-crypto"
+PACKAGE_EXTRA_ARCHS:tune-armv8-4a-crypto-sve = "${PACKAGE_EXTRA_ARCHS:tune-armv8-4a-crypto} armv8-4a-crypto-sve"
 BASE_LIB:tune-armv8-4a                       = "lib64"
 BASE_LIB:tune-armv8-4a-crypto                = "lib64"
+BASE_LIB:tune-armv8-4a-crypto-sve            = "lib64"
diff --git a/meta/conf/machine/include/arm/arch-armv8-5a.inc b/meta/conf/machine/include/arm/arch-armv8-5a.inc
index a1bcb7fb9a1..176bc9033c9 100644
--- a/meta/conf/machine/include/arm/arch-armv8-5a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8-5a.inc
@@ -6,14 +6,19 @@ TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-5a', ' -march
 MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-5a', 'armv8-5a:', '', d)}"
 
 require conf/machine/include/arm/arch-armv8a.inc
+require conf/machine/include/arm/feature-arm-sve.inc
 
 # Little Endian base configs
-AVAILTUNES += "armv8-5a armv8-5a-crypto"
+AVAILTUNES += "armv8-5a armv8-5a-crypto armv8-5a-crypto-sve"
 ARMPKGARCH:tune-armv8-5a                    ?= "armv8-5a"
 ARMPKGARCH:tune-armv8-5a-crypto             ?= "armv8-5a"
+ARMPKGARCH:tune-armv8-5a-crypto-sve         ?= "armv8-5a"
 TUNE_FEATURES:tune-armv8-5a                  = "aarch64 armv8-5a"
 TUNE_FEATURES:tune-armv8-5a-crypto           = "${TUNE_FEATURES:tune-armv8-5a} crypto"
+TUNE_FEATURES:tune-armv8-5a-crypto-sve       = "${TUNE_FEATURES:tune-armv8-5a-crypto} sve"
 PACKAGE_EXTRA_ARCHS:tune-armv8-5a            = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-5a"
 PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto     = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a} armv8-5a-crypto"
+PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto-sve = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto} armv8-5a-crypto-sve"
 BASE_LIB:tune-armv8-5a                       = "lib64"
 BASE_LIB:tune-armv8-5a-crypto                = "lib64"
+BASE_LIB:tune-armv8-5a-crypto-sve            = "lib64"
diff --git a/meta/conf/machine/include/arm/arch-armv9a.inc b/meta/conf/machine/include/arm/arch-armv9a.inc
index c38d6cfdf60..6945dea333b 100644
--- a/meta/conf/machine/include/arm/arch-armv9a.inc
+++ b/meta/conf/machine/include/arm/arch-armv9a.inc
@@ -7,22 +7,27 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9a', 'armv9a:',
 require conf/machine/include/arm/arch-arm64.inc
 require conf/machine/include/arm/feature-arm-crc.inc
 require conf/machine/include/arm/feature-arm-crypto.inc
+require conf/machine/include/arm/feature-arm-sve.inc
 
 # Little Endian base configs
-AVAILTUNES += "armv9a armv9a-crc armv9a-crc-crypto armv9a-crypto"
+AVAILTUNES += "armv9a armv9a-crc armv9a-crc-crypto armv9a-crc-crypto-sve armv9a-crypto"
 ARMPKGARCH:tune-armv9a                    ?= "armv9a"
 ARMPKGARCH:tune-armv9a-crc                ?= "armv9a"
 ARMPKGARCH:tune-armv9a-crypto             ?= "armv9a"
 ARMPKGARCH:tune-armv9a-crc-crypto         ?= "armv9a"
+ARMPKGARCH:tune-armv9a-crc-crypto-sve     ?= "armv9a"
 TUNE_FEATURES:tune-armv9a                  = "aarch64 armv9a"
 TUNE_FEATURES:tune-armv9a-crc              = "${TUNE_FEATURES:tune-armv9a} crc"
 TUNE_FEATURES:tune-armv9a-crypto           = "${TUNE_FEATURES:tune-armv9a} crypto"
 TUNE_FEATURES:tune-armv9a-crc-crypto       = "${TUNE_FEATURES:tune-armv9a-crc} crypto"
+TUNE_FEATURES:tune-armv9a-crc-crypto-sve   = "${TUNE_FEATURES:tune-armv9a-crc-crypto} sve"
 PACKAGE_EXTRA_ARCHS:tune-armv9a            = "aarch64 armv9a"
 PACKAGE_EXTRA_ARCHS:tune-armv9a-crc        = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9a-crc"
 PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto     = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9a-crypto"
 PACKAGE_EXTRA_ARCHS:tune-armv9a-crc-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crc} armv9a-crypto armv9a-crc-crypto"
+PACKAGE_EXTRA_ARCHS:tune-armv9a-crc-crypto-sve = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crc-crypto} armv9a-crc-crypto-sve"
 BASE_LIB:tune-armv9a                       = "lib64"
 BASE_LIB:tune-armv9a-crc                   = "lib64"
 BASE_LIB:tune-armv9a-crypto                = "lib64"
 BASE_LIB:tune-armv9a-crc-crypto            = "lib64"
+BASE_LIB:tune-armv9a-crc-crypto-sve        = "lib64"
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [OE-core] [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9
  2023-07-11 20:10 [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9 Khem Raj
  2023-07-11 20:10 ` [PATCH 2/2] arch-armv8,arch-armv9: Add sve based tune options Khem Raj
@ 2023-07-12 10:29 ` Ross Burton
  2023-07-12 16:12   ` Khem Raj
  1 sibling, 1 reply; 6+ messages in thread
From: Ross Burton @ 2023-07-12 10:29 UTC (permalink / raw)
  To: raj.khem@gmail.com; +Cc: openembedded-core@lists.openembedded.org

On 11 Jul 2023, at 21:10, Khem Raj via lists.openembedded.org <raj.khem=gmail.com@lists.openembedded.org> wrote:
> 
> This helps in defining correct compiler options and configure options
> for glibc and overall ABI for toolchain

Given this, shouldn’t the glibc patch respect the tune flags instead of forcibly turning sve off?

Ross

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [OE-core] [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9
  2023-07-12 10:29 ` [OE-core] [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9 Ross Burton
@ 2023-07-12 16:12   ` Khem Raj
  2023-07-21 14:34     ` Alexandre Belloni
  0 siblings, 1 reply; 6+ messages in thread
From: Khem Raj @ 2023-07-12 16:12 UTC (permalink / raw)
  To: Ross Burton; +Cc: openembedded-core@lists.openembedded.org

On Wed, Jul 12, 2023 at 3:29 AM Ross Burton <Ross.Burton@arm.com> wrote:
>
> On 11 Jul 2023, at 21:10, Khem Raj via lists.openembedded.org <raj.khem=gmail.com@lists.openembedded.org> wrote:
> >
> > This helps in defining correct compiler options and configure options
> > for glibc and overall ABI for toolchain
>
> Given this, shouldn’t the glibc patch respect the tune flags instead of forcibly turning sve off?

It will as a follow up.

>
> Ross


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [OE-core] [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9
  2023-07-12 16:12   ` Khem Raj
@ 2023-07-21 14:34     ` Alexandre Belloni
  2023-07-23  3:09       ` Khem Raj
  0 siblings, 1 reply; 6+ messages in thread
From: Alexandre Belloni @ 2023-07-21 14:34 UTC (permalink / raw)
  To: Khem Raj; +Cc: Ross Burton, openembedded-core@lists.openembedded.org

Hello Khem,

On 12/07/2023 09:12:54-0700, Khem Raj wrote:
> On Wed, Jul 12, 2023 at 3:29 AM Ross Burton <Ross.Burton@arm.com> wrote:
> >
> > On 11 Jul 2023, at 21:10, Khem Raj via lists.openembedded.org <raj.khem=gmail.com@lists.openembedded.org> wrote:
> > >
> > > This helps in defining correct compiler options and configure options
> > > for glibc and overall ABI for toolchain
> >
> > Given this, shouldn’t the glibc patch respect the tune flags instead of forcibly turning sve off?
> 
> It will as a follow up.

I think we are still waiting for the follow up.



-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [OE-core] [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9
  2023-07-21 14:34     ` Alexandre Belloni
@ 2023-07-23  3:09       ` Khem Raj
  0 siblings, 0 replies; 6+ messages in thread
From: Khem Raj @ 2023-07-23  3:09 UTC (permalink / raw)
  To: Alexandre Belloni; +Cc: Ross Burton, openembedded-core@lists.openembedded.org

[-- Attachment #1: Type: text/plain, Size: 982 bytes --]

On Fri, Jul 21, 2023 at 7:34 AM Alexandre Belloni <
alexandre.belloni@bootlin.com> wrote:

> Hello Khem,
>
> On 12/07/2023 09:12:54-0700, Khem Raj wrote:
> > On Wed, Jul 12, 2023 at 3:29 AM Ross Burton <Ross.Burton@arm.com> wrote:
> > >
> > > On 11 Jul 2023, at 21:10, Khem Raj via lists.openembedded.org
> <raj.khem=gmail.com@lists.openembedded.org> wrote:
> > > >
> > > > This helps in defining correct compiler options and configure options
> > > > for glibc and overall ABI for toolchain
> > >
> > > Given this, shouldn’t the glibc patch respect the tune flags instead
> of forcibly turning sve off?
> >
> > It will as a follow up.
>
> I think we are still waiting for the follow up.


Hmm I was thinking of sending it separate since it does not impact this
pull I am away this week perhaps will do upon return next week

>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>

[-- Attachment #2: Type: text/html, Size: 1798 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-07-23  3:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-11 20:10 [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9 Khem Raj
2023-07-11 20:10 ` [PATCH 2/2] arch-armv8,arch-armv9: Add sve based tune options Khem Raj
2023-07-12 10:29 ` [OE-core] [PATCH 1/2] tunes: Add support for sve instructions on armv8/armv9 Ross Burton
2023-07-12 16:12   ` Khem Raj
2023-07-21 14:34     ` Alexandre Belloni
2023-07-23  3:09       ` Khem Raj

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox