2022-05-09 13:54:40

by Geert Uytterhoeven

[permalink] [raw]
Subject: [PATCH] arm64: ARM Scalable Matrix Extension is ARMv9-A

The help text for the config option to enable support for the ARM
Scalable Matrix Extension does not mention the specification baseline
for this extension. Make it clear this is an extension for the ARMv9-A
architecture, so users know when it is safe to disable this option,
which is enabled by default.

Fixes: a1f4ccd25cc25625 ("arm64/sme: Provide Kconfig for SME")
Signed-off-by: Geert Uytterhoeven <[email protected]>
---
arch/arm64/Kconfig | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 0e9bbeb1262d0ca8..f3a0d0cff3fb5265 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1964,9 +1964,9 @@ config ARM64_SME
default y
depends on ARM64_SVE
help
- The Scalable Matrix Extension (SME) is an extension to the AArch64
- execution state which utilises a substantial subset of the SVE
- instruction set, together with the addition of new architectural
+ The Scalable Matrix Extension (SME) is an ARMv9-A extension to the
+ AArch64 execution state which utilises a substantial subset of the
+ SVE instruction set, together with the addition of new architectural
register state capable of holding two dimensional matrix tiles to
enable various matrix operations.

--
2.25.1



2022-05-09 15:42:49

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] arm64: ARM Scalable Matrix Extension is ARMv9-A

On Mon, May 09, 2022 at 03:40:30PM +0200, Geert Uytterhoeven wrote:
> The help text for the config option to enable support for the ARM
> Scalable Matrix Extension does not mention the specification baseline
> for this extension. Make it clear this is an extension for the ARMv9-A
> architecture, so users know when it is safe to disable this option,
> which is enabled by default.

If this is important we should probably also do it for SVE, it was
introduced along with v8.2 but that's not called out in Kconfig.

> Fixes: a1f4ccd25cc25625 ("arm64/sme: Provide Kconfig for SME")

Fixes?


Attachments:
(No filename) (603.00 B)
signature.asc (499.00 B)
Download all attachments

2022-05-10 11:18:15

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] arm64: ARM Scalable Matrix Extension is ARMv9-A

Hi Will,

On Tue, May 10, 2022 at 11:15 AM Will Deacon <[email protected]> wrote:
> On Mon, May 09, 2022 at 03:40:30PM +0200, Geert Uytterhoeven wrote:
> > The help text for the config option to enable support for the ARM
> > Scalable Matrix Extension does not mention the specification baseline
> > for this extension. Make it clear this is an extension for the ARMv9-A
> > architecture, so users know when it is safe to disable this option,
> > which is enabled by default.
> >
> > Fixes: a1f4ccd25cc25625 ("arm64/sme: Provide Kconfig for SME")
> > Signed-off-by: Geert Uytterhoeven <[email protected]>

> > --- a/arch/arm64/Kconfig
> > +++ b/arch/arm64/Kconfig
> > @@ -1964,9 +1964,9 @@ config ARM64_SME
> > default y
> > depends on ARM64_SVE
> > help
> > - The Scalable Matrix Extension (SME) is an extension to the AArch64
> > - execution state which utilises a substantial subset of the SVE
> > - instruction set, together with the addition of new architectural
> > + The Scalable Matrix Extension (SME) is an ARMv9-A extension to the
> > + AArch64 execution state which utilises a substantial subset of the
> > + SVE instruction set, together with the addition of new architectural
>
> Why is this useful information? The v9 vs v8 distinction is purely a

Because I tend to disable support for extensions that are not present
in Renesas SoCs in the (local) renesas_defconfig.
If it's ARMv9, I know it's not present in e.g. Cortex-A57 or A-76.

> marketing thing, so I'd be _very_ wary of drawing any technical conclusions
> based on that, especially as Arm have a track record for "backporting"
> features into older CPUs if there is demand for it. Do you know what the
> toolchains have done here? (i.e. is there march=armv9-a or can you do
> march=armv8-a+sme or something else?).

I have no idea. This option doesn't seem to control any compiler
flags?

> Having said all that, we do already have the Kconfig menu entries for "Armv8.x
> architectural features", so adding one for "Armv9" would be consistent with
> that if you really want it.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2022-05-10 11:28:35

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH] arm64: ARM Scalable Matrix Extension is ARMv9-A

On Mon, May 09, 2022 at 03:40:30PM +0200, Geert Uytterhoeven wrote:
> The help text for the config option to enable support for the ARM
> Scalable Matrix Extension does not mention the specification baseline
> for this extension. Make it clear this is an extension for the ARMv9-A
> architecture, so users know when it is safe to disable this option,
> which is enabled by default.
>
> Fixes: a1f4ccd25cc25625 ("arm64/sme: Provide Kconfig for SME")
> Signed-off-by: Geert Uytterhoeven <[email protected]>
> ---
> arch/arm64/Kconfig | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 0e9bbeb1262d0ca8..f3a0d0cff3fb5265 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1964,9 +1964,9 @@ config ARM64_SME
> default y
> depends on ARM64_SVE
> help
> - The Scalable Matrix Extension (SME) is an extension to the AArch64
> - execution state which utilises a substantial subset of the SVE
> - instruction set, together with the addition of new architectural
> + The Scalable Matrix Extension (SME) is an ARMv9-A extension to the
> + AArch64 execution state which utilises a substantial subset of the
> + SVE instruction set, together with the addition of new architectural

Why is this useful information? The v9 vs v8 distinction is purely a
marketing thing, so I'd be _very_ wary of drawing any technical conclusions
based on that, especially as Arm have a track record for "backporting"
features into older CPUs if there is demand for it. Do you know what the
toolchains have done here? (i.e. is there march=armv9-a or can you do
march=armv8-a+sme or something else?).

Having said all that, we do already have the Kconfig menu entries for "Armv8.x
architectural features", so adding one for "Armv9" would be consistent with
that if you really want it.

Will

2022-05-10 12:49:57

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] arm64: ARM Scalable Matrix Extension is ARMv9-A

Hi Mark,

On Mon, May 9, 2022 at 5:35 PM Mark Brown <[email protected]> wrote:
> On Mon, May 09, 2022 at 03:40:30PM +0200, Geert Uytterhoeven wrote:
> > The help text for the config option to enable support for the ARM
> > Scalable Matrix Extension does not mention the specification baseline
> > for this extension. Make it clear this is an extension for the ARMv9-A
> > architecture, so users know when it is safe to disable this option,
> > which is enabled by default.
>
> If this is important we should probably also do it for SVE, it was
> introduced along with v8.2 but that's not called out in Kconfig.

Makes sense.

I jumped on this one in particular, as I believe it's the first v9 extension.

> > Fixes: a1f4ccd25cc25625 ("arm64/sme: Provide Kconfig for SME")
>
> Fixes?

That we can discuss about ;-)

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2022-05-10 19:34:19

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] arm64: ARM Scalable Matrix Extension is ARMv9-A

On Tue, May 10, 2022 at 11:20:40AM +0200, Geert Uytterhoeven wrote:
> On Tue, May 10, 2022 at 11:15 AM Will Deacon <[email protected]> wrote:
> > On Mon, May 09, 2022 at 03:40:30PM +0200, Geert Uytterhoeven wrote:

> > > + The Scalable Matrix Extension (SME) is an ARMv9-A extension to the
> > > + AArch64 execution state which utilises a substantial subset of the
> > > + SVE instruction set, together with the addition of new architectural

> > Why is this useful information? The v9 vs v8 distinction is purely a

> Because I tend to disable support for extensions that are not present
> in Renesas SoCs in the (local) renesas_defconfig.
> If it's ARMv9, I know it's not present in e.g. Cortex-A57 or A-76.

Like Will says the versioning information is a shaky way of figuring
that out, especially with a feature like SME which is intended to be
totally optional. Even once you have v9 systems you're still going to
need to look at the specific systems to figure out what's implemented in
your specific silicon.

> > marketing thing, so I'd be _very_ wary of drawing any technical conclusions
> > based on that, especially as Arm have a track record for "backporting"
> > features into older CPUs if there is demand for it. Do you know what the
> > toolchains have done here? (i.e. is there march=armv9-a or can you do
> > march=armv8-a+sme or something else?).

> I have no idea. This option doesn't seem to control any compiler
> flags?

GCC does have armv9-a, not cheked clang.


Attachments:
(No filename) (1.50 kB)
signature.asc (499.00 B)
Download all attachments