2016-10-10 21:56:26

by Rui Salvaterra

[permalink] [raw]
Subject: [RFC] [PATCH] arch: x86: change GCC optimisation target from atom to bonnell

Hi, Thomas, Ingo, Peter,

(Sending as RFC, since I don't know if this patch is acceptable.)

The GCC team has deprecated atom as a march/mtune target since almost three
years ago, according to this mailing list thread [1], in favour of specific
microarchitecture names (bonnell, silvermont). This patch changes the Atom
optimisation target in the kernel to bonnell, as it was originally intended.

Tested on an x86-64 Atom 330 machine. No functional changes.

[1] https://gcc.gnu.org/ml/gcc-patches/2013-12/msg01805.html

Signed-off-by: Rui Salvaterra <[email protected]>
---
arch/x86/Makefile | 4 ++--
arch/x86/Makefile_32.cpu | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 2d44933..b7d615f 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -109,8 +109,8 @@ else

cflags-$(CONFIG_MCORE2) += \
$(call cc-option,-march=core2,$(call cc-option,-mtune=generic))
- cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom) \
- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
+ cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell) \
+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))
cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
KBUILD_CFLAGS += $(cflags-y)

diff --git a/arch/x86/Makefile_32.cpu b/arch/x86/Makefile_32.cpu
index 6647ed4..d66e5e3 100644
--- a/arch/x86/Makefile_32.cpu
+++ b/arch/x86/Makefile_32.cpu
@@ -32,8 +32,8 @@ cflags-$(CONFIG_MCYRIXIII) += $(call cc-option,-march=c3,-march=i486) $(align)-f
cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686)
cflags-$(CONFIG_MVIAC7) += -march=i686
cflags-$(CONFIG_MCORE2) += -march=i686 $(call tune,core2)
-cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom,$(call cc-option,-march=core2,-march=i686)) \
- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
+cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell,$(call cc-option,-march=core2,-march=i686)) \
+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))

# AMD Elan support
cflags-$(CONFIG_MELAN) += -march=i486
--
2.10.1


2016-10-11 00:11:19

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [RFC] [PATCH] arch: x86: change GCC optimisation target from atom to bonnell

On October 10, 2016 2:45:38 PM PDT, Rui Salvaterra <[email protected]> wrote:
>Hi, Thomas, Ingo, Peter,
>
>(Sending as RFC, since I don't know if this patch is acceptable.)
>
>The GCC team has deprecated atom as a march/mtune target since almost
>three
>years ago, according to this mailing list thread [1], in favour of
>specific
>microarchitecture names (bonnell, silvermont). This patch changes the
>Atom
>optimisation target in the kernel to bonnell, as it was originally
>intended.
>
>Tested on an x86-64 Atom 330 machine. No functional changes.
>
>[1] https://gcc.gnu.org/ml/gcc-patches/2013-12/msg01805.html
>
>Signed-off-by: Rui Salvaterra <[email protected]>
>---
> arch/x86/Makefile | 4 ++--
> arch/x86/Makefile_32.cpu | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
>diff --git a/arch/x86/Makefile b/arch/x86/Makefile
>index 2d44933..b7d615f 100644
>--- a/arch/x86/Makefile
>+++ b/arch/x86/Makefile
>@@ -109,8 +109,8 @@ else
>
> cflags-$(CONFIG_MCORE2) += \
> $(call cc-option,-march=core2,$(call cc-option,-mtune=generic))
>- cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom) \
>- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
>+ cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell) \
>+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))
> cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
> KBUILD_CFLAGS += $(cflags-y)
>
>diff --git a/arch/x86/Makefile_32.cpu b/arch/x86/Makefile_32.cpu
>index 6647ed4..d66e5e3 100644
>--- a/arch/x86/Makefile_32.cpu
>+++ b/arch/x86/Makefile_32.cpu
>@@ -32,8 +32,8 @@ cflags-$(CONFIG_MCYRIXIII) += $(call
>cc-option,-march=c3,-march=i486) $(align)-f
> cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686)
> cflags-$(CONFIG_MVIAC7) += -march=i686
> cflags-$(CONFIG_MCORE2) += -march=i686 $(call tune,core2)
>-cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom,$(call
>cc-option,-march=core2,-march=i686)) \
>- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
>+cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell,$(call
>cc-option,-march=core2,-march=i686)) \
>+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))
>
> # AMD Elan support
> cflags-$(CONFIG_MELAN) += -march=i486

This just breaks backwards compatibility with older gcc. If you want to add a comment that's fine, though.

Nacked-by: hpa
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

2016-10-11 08:40:13

by Rui Salvaterra

[permalink] [raw]
Subject: Re: [RFC] [PATCH] arch: x86: change GCC optimisation target from atom to bonnell

2016-10-11 1:11 GMT+01:00 <[email protected]>:
> On October 10, 2016 2:45:38 PM PDT, Rui Salvaterra <[email protected]> wrote:
>>Hi, Thomas, Ingo, Peter,
>>
>>(Sending as RFC, since I don't know if this patch is acceptable.)
>>
>>The GCC team has deprecated atom as a march/mtune target since almost
>>three
>>years ago, according to this mailing list thread [1], in favour of
>>specific
>>microarchitecture names (bonnell, silvermont). This patch changes the
>>Atom
>>optimisation target in the kernel to bonnell, as it was originally
>>intended.
>>
>>Tested on an x86-64 Atom 330 machine. No functional changes.
>>
>>[1] https://gcc.gnu.org/ml/gcc-patches/2013-12/msg01805.html
>>
>>Signed-off-by: Rui Salvaterra <[email protected]>
>>---
>> arch/x86/Makefile | 4 ++--
>> arch/x86/Makefile_32.cpu | 4 ++--
>> 2 files changed, 4 insertions(+), 4 deletions(-)
>>
>>diff --git a/arch/x86/Makefile b/arch/x86/Makefile
>>index 2d44933..b7d615f 100644
>>--- a/arch/x86/Makefile
>>+++ b/arch/x86/Makefile
>>@@ -109,8 +109,8 @@ else
>>
>> cflags-$(CONFIG_MCORE2) += \
>> $(call cc-option,-march=core2,$(call cc-option,-mtune=generic))
>>- cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom) \
>>- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
>>+ cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell) \
>>+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))
>> cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
>> KBUILD_CFLAGS += $(cflags-y)
>>
>>diff --git a/arch/x86/Makefile_32.cpu b/arch/x86/Makefile_32.cpu
>>index 6647ed4..d66e5e3 100644
>>--- a/arch/x86/Makefile_32.cpu
>>+++ b/arch/x86/Makefile_32.cpu
>>@@ -32,8 +32,8 @@ cflags-$(CONFIG_MCYRIXIII) += $(call
>>cc-option,-march=c3,-march=i486) $(align)-f
>> cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686)
>> cflags-$(CONFIG_MVIAC7) += -march=i686
>> cflags-$(CONFIG_MCORE2) += -march=i686 $(call tune,core2)
>>-cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom,$(call
>>cc-option,-march=core2,-march=i686)) \
>>- $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
>>+cflags-$(CONFIG_MATOM) += $(call cc-option,-march=bonnell,$(call
>>cc-option,-march=core2,-march=i686)) \
>>+ $(call cc-option,-mtune=bonnell,$(call cc-option,-mtune=generic))
>>
>> # AMD Elan support
>> cflags-$(CONFIG_MELAN) += -march=i486
>
> This just breaks backwards compatibility with older gcc. If you want to add a comment that's fine, though.
>
> Nacked-by: hpa
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.


Hi, Hans,

I suspected that (hence the RFC), but I couldn't find the minimum supported
gcc version. I was just worried the bonnell microarch could get neglected in
the long term, when it needs all the (compiler) help it can get, being in-order.

Thanks,

Rui