Message ID | 51002135.2060302@theangrymob.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jan 23, 2013 at 06:43:17PM +0100, Alec Bickerton wrote: > Hi, > > I'd like to submit the attached patch to add Ivy Bridge processor support to the > processor type menu in menuconfig. Setting this configures the appropriate > CFLAGS (core-avx-i) for ivy bridge. > > As this is my first kbuild patch, could somebody review it and let me know what > I've done wrong. ;-) You sent it to linux-kbuild instead of x86@kernel.org. The kbuild maintainer is not really knowledgeable about gcc optimisation options ;). Nevertheless, some random comments are below. Note that I am not saying if the config option is useful or not. > > Thanks > Alec. > From 2eaf7717da5b7f753c66e2158d29744aafbc2a0c Mon Sep 17 00:00:00 2001 > From: Alec Bickerton <alec.bickerton@gmail.com> > Date: Mon, 1 Oct 2012 21:12:55 +0200 > Subject: [PATCH] Added Ivy bridge to menu > > --- > arch/x86/Kconfig.cpu | 5 +++++ > arch/x86/Makefile | 5 ++++- > arch/x86/Makefile_32.cpu | 1 + > arch/x86/include/asm/module.h | 2 ++ > 4 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu > index f3b86d0..e7834c0 100644 > --- a/arch/x86/Kconfig.cpu > +++ b/arch/x86/Kconfig.cpu > @@ -267,6 +267,11 @@ config MCORE2 > 53xx) CPUs. You can distinguish newer from older Xeons by the CPU > family in /proc/cpuinfo. Newer ones have 6 and older ones 15 > (not a typo) > +config MIVYBRIDGE Keep the options separate by blank lines. > + bool "Intel Ivy Bridge" > + --help-- > + > + Select this foe Intel 3770K family processors. > > config MATOM > bool "Intel Atom" > diff --git a/arch/x86/Makefile b/arch/x86/Makefile > index 474ca35..e945e58 100644 > --- a/arch/x86/Makefile > +++ b/arch/x86/Makefile > @@ -61,7 +61,10 @@ else > cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona) > > cflags-$(CONFIG_MCORE2) += \ > - $(call cc-option,-march=core2,$(call cc-option,-mtune=generic)) > + $(call cc-option,-march=core2,$(call cc-option,-mtune=generic) > + ) No need to touch this? > + cflags-$(CONFIG_MIVYBRIDGE) += \ > + $(call cc-option,-march=core-avx-i,$(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_GENERIC_CPU) += $(call cc-option,-mtune=generic) > diff --git a/arch/x86/Makefile_32.cpu b/arch/x86/Makefile_32.cpu > index 86cee7b..f5194ff 100644 > --- a/arch/x86/Makefile_32.cpu > +++ b/arch/x86/Makefile_32.cpu > @@ -33,6 +33,7 @@ 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_MIVYBRIDGE) += -march=i686 $(call tune,core-avx-i) > 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)) > > diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h > index 9eae775..758a438 100644 > --- a/arch/x86/include/asm/module.h > +++ b/arch/x86/include/asm/module.h > @@ -17,6 +17,8 @@ > #define MODULE_PROC_FAMILY "586MMX " > #elif defined CONFIG_MCORE2 > #define MODULE_PROC_FAMILY "CORE2 " > +#elif defined CONFIG_MIVYBRIDGE > +#define MODULE_PROC_FAMILY "IVYBRIDGE" Missing trailing space. > #elif defined CONFIG_MATOM > #define MODULE_PROC_FAMILY "ATOM " > #elif defined CONFIG_M686 > -- > 1.7.10.4 > Michal -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Jan 24, 2013 at 11:53:43AM +0100, Michal Marek wrote: > On Wed, Jan 23, 2013 at 06:43:17PM +0100, Alec Bickerton wrote: > > Hi, > > > > I'd like to submit the attached patch to add Ivy Bridge processor support to the > > processor type menu in menuconfig. Setting this configures the appropriate > > CFLAGS (core-avx-i) for ivy bridge. > > > > As this is my first kbuild patch, could somebody review it and let me know what > > I've done wrong. ;-) > > You sent it to linux-kbuild instead of x86@kernel.org. The kbuild > maintainer is not really knowledgeable about gcc optimisation options ;). > Nevertheless, some random comments are below. Note that I am not > saying if the config option is useful or not. Normally, such optimizations have a little effect on the kernel because it doesn't normally use fpu stuff and the rest of the instructions we need, we add ourselves (see arch/x86/include/asm/archrandom.h for RDRAND, for example). So, first we'd need persuasive benchmark numbers which show that a kernel built with core-avx-i is faster at some representative workload than mtune=generic one... Thanks.
On Wed, Jan 23, 2013 at 06:43:17PM +0100, Alec Bickerton wrote: > Hi, > > I'd like to submit the attached patch to add Ivy Bridge processor support to the > processor type menu in menuconfig. Setting this configures the appropriate > CFLAGS (core-avx-i) for ivy bridge. > > As this is my first kbuild patch, could somebody review it and let me know what > I've done wrong. ;-) Like Michal I do not know about x86 - but a few things I noticed. > > Thanks > Alec. > >From 2eaf7717da5b7f753c66e2158d29744aafbc2a0c Mon Sep 17 00:00:00 2001 > From: Alec Bickerton <alec.bickerton@gmail.com> > Date: Mon, 1 Oct 2012 21:12:55 +0200 > Subject: [PATCH] Added Ivy bridge to menu > Signed-off-by: ... missing. See Documentation/SubmittingPatches (somethign like that) > +config MIVYBRIDGE > + bool "Intel Ivy Bridge" > + --help-- > + > + Select this foe Intel 3770K family processors. Use " help" - in new stuff we try to avoid --help-- Drop empty line between help and help text. Fix your spelling foe => for > --- a/arch/x86/Makefile_32.cpu > +++ b/arch/x86/Makefile_32.cpu > @@ -33,6 +33,7 @@ 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_MIVYBRIDGE) += -march=i686 $(call tune,core-avx-i) > 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)) Not a fault in your patch - but the x86 guys should learn to use the X86_ prefix on x86 specific config symbols :-( For consistency do not add it. Sam -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 01/24/2013 09:41 AM, Sam Ravnborg wrote: > >> --- a/arch/x86/Makefile_32.cpu >> +++ b/arch/x86/Makefile_32.cpu >> @@ -33,6 +33,7 @@ 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_MIVYBRIDGE) += -march=i686 $(call tune,core-avx-i) >> 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)) > > Not a fault in your patch - but the x86 guys should learn to use the > X86_ prefix on x86 specific config symbols :-( > For consistency do not add it. > These are some of the oldest config symbols in the entire kernel. -hpa
on 30/01/13 04:34 H. Peter Anvin gazed into the seeing stone and said...: > On 01/24/2013 09:41 AM, Sam Ravnborg wrote: >> >>> --- a/arch/x86/Makefile_32.cpu >>> +++ b/arch/x86/Makefile_32.cpu >>> @@ -33,6 +33,7 @@ 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_MIVYBRIDGE) += -march=i686 $(call tune,core-avx-i) >>> 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)) >> >> Not a fault in your patch - but the x86 guys should learn to use the >> X86_ prefix on x86 specific config symbols :-( >> For consistency do not add it. >> > > These are some of the oldest config symbols in the entire kernel. > > -hpa > That maybe so, I just want to be able to build an ivy bridge optimised kernel without having to think about it too much. While I don't know how much it'd bring, this is more of a convenience than anything else. Alec -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 01/31/2013 10:45 AM, Alec Bickerton wrote: > on 30/01/13 04:34 H. Peter Anvin gazed into the seeing stone and said...: >> On 01/24/2013 09:41 AM, Sam Ravnborg wrote: >>> >>>> --- a/arch/x86/Makefile_32.cpu >>>> +++ b/arch/x86/Makefile_32.cpu >>>> @@ -33,6 +33,7 @@ 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_MIVYBRIDGE) += -march=i686 $(call tune,core-avx-i) >>>> 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)) >>> >>> Not a fault in your patch - but the x86 guys should learn to use the >>> X86_ prefix on x86 specific config symbols :-( >>> For consistency do not add it. >>> >> >> These are some of the oldest config symbols in the entire kernel. >> >> -hpa >> > > That maybe so, I just want to be able to build an ivy bridge optimised kernel > without having to think about it too much. While I don't know how much it'd > bring, this is more of a convenience than anything else. > I was referring to the lack of the X86_ prefix on the CONFIG_M* symbols. -hpa
From 2eaf7717da5b7f753c66e2158d29744aafbc2a0c Mon Sep 17 00:00:00 2001 From: Alec Bickerton <alec.bickerton@gmail.com> Date: Mon, 1 Oct 2012 21:12:55 +0200 Subject: [PATCH] Added Ivy bridge to menu --- arch/x86/Kconfig.cpu | 5 +++++ arch/x86/Makefile | 5 ++++- arch/x86/Makefile_32.cpu | 1 + arch/x86/include/asm/module.h | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu index f3b86d0..e7834c0 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu @@ -267,6 +267,11 @@ config MCORE2 53xx) CPUs. You can distinguish newer from older Xeons by the CPU family in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo) +config MIVYBRIDGE + bool "Intel Ivy Bridge" + --help-- + + Select this foe Intel 3770K family processors. config MATOM bool "Intel Atom" diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 474ca35..e945e58 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -61,7 +61,10 @@ else cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona) cflags-$(CONFIG_MCORE2) += \ - $(call cc-option,-march=core2,$(call cc-option,-mtune=generic)) + $(call cc-option,-march=core2,$(call cc-option,-mtune=generic) + ) + cflags-$(CONFIG_MIVYBRIDGE) += \ + $(call cc-option,-march=core-avx-i,$(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_GENERIC_CPU) += $(call cc-option,-mtune=generic) diff --git a/arch/x86/Makefile_32.cpu b/arch/x86/Makefile_32.cpu index 86cee7b..f5194ff 100644 --- a/arch/x86/Makefile_32.cpu +++ b/arch/x86/Makefile_32.cpu @@ -33,6 +33,7 @@ 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_MIVYBRIDGE) += -march=i686 $(call tune,core-avx-i) 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)) diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h index 9eae775..758a438 100644 --- a/arch/x86/include/asm/module.h +++ b/arch/x86/include/asm/module.h @@ -17,6 +17,8 @@ #define MODULE_PROC_FAMILY "586MMX " #elif defined CONFIG_MCORE2 #define MODULE_PROC_FAMILY "CORE2 " +#elif defined CONFIG_MIVYBRIDGE +#define MODULE_PROC_FAMILY "IVYBRIDGE" #elif defined CONFIG_MATOM #define MODULE_PROC_FAMILY "ATOM " #elif defined CONFIG_M686 -- 1.7.10.4