All of lore.kernel.org
 help / color / mirror / Atom feed
* [2.6 patch] add a config option for -Os compilation
@ 2003-10-15 22:50 Adrian Bunk
  2003-10-15 23:12 ` Andrew Morton
  0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-10-15 22:50 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Hi Andrew,

the patch below adds a configuration option for -Os (the H8300 symbol is
similar to the symbols on other architectures). It includes the results
of all detail discussions and applies, compiles and works with
2.6.0-test7-mm1.

Could you add it to -mm?

diffstat output:

 Makefile            |    8 +++++++-
 arch/arm/Makefile   |    2 --
 arch/h8300/Kconfig  |    4 ++++
 arch/h8300/Makefile |    3 +--
 init/Kconfig        |   10 ++++++++++
 5 files changed, 22 insertions(+), 5 deletions(-)


TIA
Adrian


--- linux-2.6.0-test5-mm4/init/Kconfig.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/init/Kconfig	2003-09-25 14:47:12.000000000 +0200
@@ -65,6 +65,16 @@
 
 menu "General setup"
 
+config CC_OPTIMIZE_FOR_SIZE
+	bool "Optimize for size" if EXPERIMENTAL
+	default y if ARM || H8300
+	default n
+	help
+	  Enabling this option will pass "-Os" instead of "-O2" to gcc
+	  resulting in a smaller kernel.
+
+	  If unsure, say N.
+
 config SWAP
 	bool "Support for paging of anonymous memory"
 	depends on MMU
--- linux-2.6.0-test5-mm4/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/Makefile	2003-09-25 14:40:26.000000000 +0200
@@ -274,7 +274,7 @@
 CPPFLAGS        := -D__KERNEL__ -Iinclude \
 		   $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
 
-CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs \
 	  	   -fno-strict-aliasing -fno-common
 AFLAGS		:= -D__ASSEMBLY__
 
@@ -421,6 +421,12 @@
 # ---------------------------------------------------------------------------
 
 
+ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+CFLAGS		+= -Os
+else
+CFLAGS		+= -O2
+endif
+
 ifndef CONFIG_FRAME_POINTER
 CFLAGS		+= -fomit-frame-pointer
 endif
--- linux-2.6.0-test5-mm4/arch/arm/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/arm/Makefile	2003-09-25 14:40:47.000000000 +0200
@@ -14,8 +14,6 @@
 GZFLAGS		:=-9
 #CFLAGS		+=-pipe
 
-CFLAGS		:=$(CFLAGS:-O2=-Os)
-
 ifeq ($(CONFIG_FRAME_POINTER),y)
 CFLAGS		+=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
 endif
--- linux-2.6.0-test5-mm4/arch/h8300/Kconfig.old	2003-09-25 14:43:27.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Kconfig	2003-09-25 14:43:44.000000000 +0200
@@ -5,6 +5,10 @@
 
 mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
 
+config H8300
+	bool
+	default y
+
 config MMU
 	bool
 	default n
--- linux-2.6.0-test5-mm4/arch/h8300/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Makefile	2003-09-25 14:38:24.000000000 +0200
@@ -34,7 +34,7 @@
 ldflags-$(CONFIG_CPU_H8S)	:= -mh8300self
 
 CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
 CFLAGS += -g
 CFLAGS += -D__linux__
 CFLAGS += -DUTS_SYSNAME=\"uClinux\"

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-15 22:50 [2.6 patch] add a config option for -Os compilation Adrian Bunk
@ 2003-10-15 23:12 ` Andrew Morton
  2003-10-15 23:24   ` Adrian Bunk
  0 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-15 23:12 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel

Adrian Bunk <bunk@fs.tum.de> wrote:
>
> the patch below adds a configuration option for -Os

Two problems:

a) It adds yet another reason why person A discovers problems which
   person B cannot reproduce.

b) It adds yet another reason why person A cannot work out the exact
   file-n-line where person B's kernel oopsed.

They are small concerns really, but it does make one wonder why we should
not make this change unconditional: just switch the kernel to -Os?

Does anyone have any (non-micro-)benchmark results which say this is a bad
idea?


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-15 23:12 ` Andrew Morton
@ 2003-10-15 23:24   ` Adrian Bunk
  2003-10-15 23:52     ` Andrew Morton
  0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-10-15 23:24 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Wed, Oct 15, 2003 at 04:12:51PM -0700, Andrew Morton wrote:
>...
> They are small concerns really, but it does make one wonder why we should
> not make this change unconditional: just switch the kernel to -Os?
> 
> Does anyone have any (non-micro-)benchmark results which say this is a bad
> idea?

No benchmarks, only arguments:

- it's less tested (there might be miscompilations in some part of the 
  kernel with some supported compilers)
- there might be fast path code somewhere in the kernel that becomes
  significantely slower with -Os
- I've already seen a report for an ICE in gcc 2.95 of a user compiling
  kernel 2.4 with -Os [1]

cu
Adrian

[1] http://bugs.debian.org/213497

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-15 23:24   ` Adrian Bunk
@ 2003-10-15 23:52     ` Andrew Morton
  2003-10-18 10:21       ` Adrian Bunk
  0 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-15 23:52 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel

Adrian Bunk <bunk@fs.tum.de> wrote:
>
> On Wed, Oct 15, 2003 at 04:12:51PM -0700, Andrew Morton wrote:
> >...
> > They are small concerns really, but it does make one wonder why we should
> > not make this change unconditional: just switch the kernel to -Os?
> > 
> > Does anyone have any (non-micro-)benchmark results which say this is a bad
> > idea?
> 
> No benchmarks, only arguments:
> 
> - it's less tested (there might be miscompilations in some part of the 
>   kernel with some supported compilers)

Testing is not a problem.

> - there might be fast path code somewhere in the kernel that becomes
>   significantely slower with -Os

I really doubt it.  Kernel CPU footprint is dominated by dcache misses.  If
-Os reduces icache footprint it may even be a net win; people tend to
benchmark things in tight loops, which favours fast code over small code.

> - I've already seen a report for an ICE in gcc 2.95 of a user compiling
>   kernel 2.4 with -Os [1]

Well there's only one way to find out if we'll hit that.  How's about you
cook me a patch which switches to -Os unconditionally and we'll see how it
goes?


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-15 23:52     ` Andrew Morton
@ 2003-10-18 10:21       ` Adrian Bunk
  2003-10-18 15:45         ` Martin J. Bligh
  2003-10-21  8:22         ` Jan-Benedict Glaw
  0 siblings, 2 replies; 40+ messages in thread
From: Adrian Bunk @ 2003-10-18 10:21 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Wed, Oct 15, 2003 at 04:52:05PM -0700, Andrew Morton wrote:
>...
> I really doubt it.  Kernel CPU footprint is dominated by dcache misses.  If
> -Os reduces icache footprint it may even be a net win; people tend to
> benchmark things in tight loops, which favours fast code over small code.

The main effect of -Os compared to -O2 (besides disabling some
reordering of the code and prefetching) is the disabling of various
alignments. I doubt that's a win on all CPUs.

> > - I've already seen a report for an ICE in gcc 2.95 of a user compiling
> >   kernel 2.4 with -Os [1]
> 
> Well there's only one way to find out if we'll hit that.  How's about you
> cook me a patch which switches to -Os unconditionally and we'll see how it
> goes?

I still dislike it, but the patch is below.

cu
Adrian


--- linux-2.6.0-test5-mm4/arch/arm/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/arm/Makefile	2003-09-25 14:40:47.000000000 +0200
@@ -14,8 +14,6 @@
 GZFLAGS		:=-9
 #CFLAGS		+=-pipe
 
-CFLAGS		:=$(CFLAGS:-O2=-Os)
-
 ifeq ($(CONFIG_FRAME_POINTER),y)
 CFLAGS		+=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
 endif
--- linux-2.6.0-test5-mm4/arch/h8300/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Makefile	2003-09-25 14:38:24.000000000 +0200
@@ -34,7 +34,7 @@
 ldflags-$(CONFIG_CPU_H8S)	:= -mh8300self
 
 CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
 CFLAGS += -g
 CFLAGS += -D__linux__
 CFLAGS += -DUTS_SYSNAME=\"uClinux\"
--- linux-2.6.0-test8/Makefile.old	2003-10-18 12:15:51.000000000 +0200
+++ linux-2.6.0-test8/Makefile	2003-10-18 12:16:26.000000000 +0200
@@ -275,7 +275,7 @@
 CPPFLAGS        := -D__KERNEL__ -Iinclude \
 		   $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
 
-CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs -Os \
 	  	   -fno-strict-aliasing -fno-common
 AFLAGS		:= -D__ASSEMBLY__
 

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-18 10:21       ` Adrian Bunk
@ 2003-10-18 15:45         ` Martin J. Bligh
  2003-10-18 17:24           ` Andrew Morton
  2003-10-21  8:22         ` Jan-Benedict Glaw
  1 sibling, 1 reply; 40+ messages in thread
From: Martin J. Bligh @ 2003-10-18 15:45 UTC (permalink / raw)
  To: Adrian Bunk, Andrew Morton; +Cc: linux-kernel

>> I really doubt it.  Kernel CPU footprint is dominated by dcache misses.  If
>> -Os reduces icache footprint it may even be a net win; people tend to
>> benchmark things in tight loops, which favours fast code over small code.
> 
> The main effect of -Os compared to -O2 (besides disabling some
> reordering of the code and prefetching) is the disabling of various
> alignments. I doubt that's a win on all CPUs.
> 
>> > - I've already seen a report for an ICE in gcc 2.95 of a user compiling
>> >   kernel 2.4 with -Os [1]
>> 
>> Well there's only one way to find out if we'll hit that.  How's about you
>> cook me a patch which switches to -Os unconditionally and we'll see how it
>> goes?
> 
> I still dislike it, but the patch is below.

Please don't - I benchmarked it a while ago, and it's definitely slower.
If you have a puny 128K L2 cache, it might help, but it definitely needs
to be optional.

M.


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-18 15:45         ` Martin J. Bligh
@ 2003-10-18 17:24           ` Andrew Morton
  2003-10-18 17:44             ` Adrian Bunk
  0 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-18 17:24 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: bunk, linux-kernel

"Martin J. Bligh" <mbligh@aracnet.com> wrote:
>
> Please don't - I benchmarked it a while ago, and it's definitely slower.

Alan said he generally found -Os to be faster...

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-18 17:24           ` Andrew Morton
@ 2003-10-18 17:44             ` Adrian Bunk
  2003-10-18 17:57               ` Andrew Morton
  0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-10-18 17:44 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Martin J. Bligh, linux-kernel

On Sat, Oct 18, 2003 at 10:24:02AM -0700, Andrew Morton wrote:
> "Martin J. Bligh" <mbligh@aracnet.com> wrote:
> >
> > Please don't - I benchmarked it a while ago, and it's definitely slower.
> 
> Alan said he generally found -Os to be faster...

Not exactly:
  http://www.ussg.iu.edu/hypermail/linux/kernel/0211.0/1513.html

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-18 17:44             ` Adrian Bunk
@ 2003-10-18 17:57               ` Andrew Morton
  2003-10-19 15:43                 ` Martin J. Bligh
  0 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-18 17:57 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: mbligh, linux-kernel

Adrian Bunk <bunk@fs.tum.de> wrote:
>
> On Sat, Oct 18, 2003 at 10:24:02AM -0700, Andrew Morton wrote:
> > "Martin J. Bligh" <mbligh@aracnet.com> wrote:
> > >
> > > Please don't - I benchmarked it a while ago, and it's definitely slower.
> > 
> > Alan said he generally found -Os to be faster...
> 
> Not exactly:
>   http://www.ussg.iu.edu/hypermail/linux/kernel/0211.0/1513.html
> 

http://www.ussg.iu.edu/hypermail/linux/kernel/0308.1/1261.html

And bear in mind that you can see significant changes in benchmark results
between equivalent kernels even when the optimisation level is kept the
same, due to aliasing and alignment luck.

It would take a quite a lot of work to measure this properly.  A simple A/B
comparison doesn't cut it.


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-18 17:57               ` Andrew Morton
@ 2003-10-19 15:43                 ` Martin J. Bligh
  2003-10-19 15:59                   ` Adrian Bunk
                                     ` (2 more replies)
  0 siblings, 3 replies; 40+ messages in thread
From: Martin J. Bligh @ 2003-10-19 15:43 UTC (permalink / raw)
  To: Andrew Morton, Adrian Bunk; +Cc: linux-kernel

>> On Sat, Oct 18, 2003 at 10:24:02AM -0700, Andrew Morton wrote:
>> > "Martin J. Bligh" <mbligh@aracnet.com> wrote:
>> > > 
>> > > Please don't - I benchmarked it a while ago, and it's definitely slower.
>> > 
>> > Alan said he generally found -Os to be faster...
>> 
>> Not exactly:
>>   http://www.ussg.iu.edu/hypermail/linux/kernel/0211.0/1513.html
>> 
> 
> http://www.ussg.iu.edu/hypermail/linux/kernel/0308.1/1261.html
> 
> And bear in mind that you can see significant changes in benchmark results
> between equivalent kernels even when the optimisation level is kept the
> same, due to aliasing and alignment luck.
> 
> It would take a quite a lot of work to measure this properly.  A simple A/B
> comparison doesn't cut it.

So why are we changing it then? ;-) We don't seem to have much evidence
either way. What are the distros doing?

M.


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 15:43                 ` Martin J. Bligh
@ 2003-10-19 15:59                   ` Adrian Bunk
  2003-10-19 16:25                   ` Arjan van de Ven
  2003-10-19 18:32                   ` Andrew Morton
  2 siblings, 0 replies; 40+ messages in thread
From: Adrian Bunk @ 2003-10-19 15:59 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: Andrew Morton, linux-kernel

On Sun, Oct 19, 2003 at 08:43:27AM -0700, Martin J. Bligh wrote:
>...
> So why are we changing it then? ;-) We don't seem to have much evidence
> either way. What are the distros doing?

The exact speed differences need measurements and it might be that
depending on the gcc version and hardware the one or the other is 
faster.

I doubt it would make a noticalble difference in either direction for an
average user who runs Mozilla under KDE. -O2 is IMHO the better default 
since it's well tested through different gcc versions.

The more important point is that -Os code is significantely smaller 
which is important for some applications (e.g. a router-on-a-floppy or 
small embedded systems).

> M.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 15:43                 ` Martin J. Bligh
  2003-10-19 15:59                   ` Adrian Bunk
@ 2003-10-19 16:25                   ` Arjan van de Ven
  2003-10-19 18:32                   ` Andrew Morton
  2 siblings, 0 replies; 40+ messages in thread
From: Arjan van de Ven @ 2003-10-19 16:25 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: Andrew Morton, Adrian Bunk, linux-kernel

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

On Sun, 2003-10-19 at 17:43, Martin J. Bligh wrote:

> So why are we changing it then? ;-) We don't seem to have much evidence
> either way. What are the distros doing?

in the context of boot/rescuefloppies (yes those pesky black things
still exist) I would seriously consider -Os, esp if there's no big
peformance disadvantage....

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 15:43                 ` Martin J. Bligh
  2003-10-19 15:59                   ` Adrian Bunk
  2003-10-19 16:25                   ` Arjan van de Ven
@ 2003-10-19 18:32                   ` Andrew Morton
  2003-10-20 14:27                     ` Martin J. Bligh
  2 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-19 18:32 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: bunk, linux-kernel

"Martin J. Bligh" <mbligh@aracnet.com> wrote:
>
>  > It would take a quite a lot of work to measure this properly.  A simple A/B
>  > comparison doesn't cut it.
> 
>  So why are we changing it then? ;-)

It is very easy to demonstrate that it saves 300 kilobytes of memory.


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 18:32                   ` Andrew Morton
@ 2003-10-20 14:27                     ` Martin J. Bligh
  0 siblings, 0 replies; 40+ messages in thread
From: Martin J. Bligh @ 2003-10-20 14:27 UTC (permalink / raw)
  To: Andrew Morton; +Cc: bunk, linux-kernel

> "Martin J. Bligh" <mbligh@aracnet.com> wrote:
>> 
>>  > It would take a quite a lot of work to measure this properly.  A simple A/B
>>  > comparison doesn't cut it.
>> 
>>  So why are we changing it then? ;-)
> 
> It is very easy to demonstrate that it saves 300 kilobytes of memory.

OK, fair enough - so can we either do:

1) a config option

or 

2) if you hate that, at least switch it to -O2 on CONFIG_SMP, on the grounds
that such systems generally have larger caches, and plenty of RAM.

M.


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-18 10:21       ` Adrian Bunk
  2003-10-18 15:45         ` Martin J. Bligh
@ 2003-10-21  8:22         ` Jan-Benedict Glaw
  1 sibling, 0 replies; 40+ messages in thread
From: Jan-Benedict Glaw @ 2003-10-21  8:22 UTC (permalink / raw)
  To: linux-kernel

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

On Sat, 2003-10-18 12:21:27 +0200, Adrian Bunk <bunk@fs.tum.de>
wrote in message <20031018102127.GE12423@fs.tum.de>:
> On Wed, Oct 15, 2003 at 04:52:05PM -0700, Andrew Morton wrote:
> > I really doubt it.  Kernel CPU footprint is dominated by dcache misses.  If
> > -Os reduces icache footprint it may even be a net win; people tend to
> > benchmark things in tight loops, which favours fast code over small code.
> 
> The main effect of -Os compared to -O2 (besides disabling some
> reordering of the code and prefetching) is the disabling of various
> alignments. I doubt that's a win on all CPUs.

I definively *like* to see -Os be configureable by user. It's *big* win
for a lowmem system. There, the actual "running speed" may be limited by
HDD swap speed, and having a smaller kernel means having more pages left
to luserspace...

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw@lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
   ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 16:57                         ` Maciej Zenczykowski
@ 2003-10-19 18:00                           ` Valdis.Kletnieks
  0 siblings, 0 replies; 40+ messages in thread
From: Valdis.Kletnieks @ 2003-10-19 18:00 UTC (permalink / raw)
  To: Maciej Zenczykowski; +Cc: Wichert Akkerman, Linux Kernel Mailing List

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

On Sun, 19 Oct 2003 18:57:05 +0200, Maciej Zenczykowski said:

> and zebra is an app - but they are still mainly kernel oriented.  The 
> first 3 depend only on kernel speed and the next 2 depend mostly on kernel 
> speed.  I'd say you just proved how important kernel optimilization is for 
> routers.

And we had a flame-fest a while ago about poll/epoll/etc and how optimizing
that is important for some applications., and discussions of how CPU scheduling
affects desktop applications, and how different I/O schedulers matter to
databases, and....

My point was that the kernel is there for the application's benefit (otherwise
we could have just said 'echo "main() { for(;;){}}" > linux.c' and been done
with it), and just because the iptables or route command say "do this" and
return, and the kernel is still "doing this" weeks later, doesn't change the
fact that it's happening at the application's request (although you *are*
correct that the tuning and optimization concerns are different).


[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 13:56                   ` Ingo Oeser
  2003-10-19 14:09                     ` Michael Buesch
@ 2003-10-19 17:37                     ` Sam Ravnborg
  1 sibling, 0 replies; 40+ messages in thread
From: Sam Ravnborg @ 2003-10-19 17:37 UTC (permalink / raw)
  To: Ingo Oeser; +Cc: Andi Kleen, linux-kernel, Andrew Morton, Sam Ravnborg

On Sun, Oct 19, 2003 at 03:56:56PM +0200, Ingo Oeser wrote:
> Maybe there should be sth. in the build system for that, which is called
> $(call optimize_for_speed, $target) and $(call optimize_for_size,$target) 
> which then can be added on a per file basis and per directory tree,
> where it really matters and letting it to the default otherwise.
> 
> That way we can tune gradually and remove GCC options.
> 
> Simple implementation today:
> 
> optimize_for_speed := CFLAGS_$1 += -O3
> optimize_for_size  := CFLAGS_$1 += -Os
> 
> 
> Sam: What do you think?

Focussing on -O2 versus -Os is too narrowscoped for the build system.
A much more general solution is needed, without loosing the flexibility
we have today.
For 2.7 I have planned making it possible to modify CFLAGS, and make the
change be effective for all recursive builds.
This could be usefull if for example acpi decides to use -Werror for
all files. One change in one makefile and the desired effect is achieved.
The same infrastructure will be possible to use for -Owhatever.

We sould stick with -O2 for 2.6, lets play with other settings for 2.7.
Router people and others with special needs can finetune it at will in
2.6 - it is one line in the top-level makefile so not a big deal.

	Sam

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

* Re: [2.6 patch] add a config option for -Os compilation
       [not found]                     ` <Ip4B.8lT.21@gated-at.bofh.it>
@ 2003-10-19 17:04                       ` Ihar 'Philips' Filipau
  0 siblings, 0 replies; 40+ messages in thread
From: Ihar 'Philips' Filipau @ 2003-10-19 17:04 UTC (permalink / raw)
  To: Ihar 'Philips' Filipau
  Cc: Linux Kernel Mailing List, Wichert Akkerman

Ihar 'Philips' Filipau wrote:
> Wichert Akkerman wrote:
> 
>> Previously Ihar 'Philips' Filipau wrote:
>>
>>>  The goal of kernel is to provide framework for applications to the 
>>> job well.
>>
>>
>> I doubt anyone using linux for routing would agree with you.
>>
> 
>   This is different matter.
>   This is IO bound task - and I'm not sure how -Os will perform there.
>   But still this depends on routing protocols and their requirements.
> 
>   In any way in this case bottleneck is PCI bus (DMA over PCI from NIC 
> to main memory and back). I bet software will show up in timing tests as 
> taking <10% of whole time.
> 

   Sorry I mean't calculations and alike will take <10%.
   Sure in case of software router 90% of time will be spent in CPU.

-- 
Ihar 'Philips' Filipau  / with best regards from Saarbruecken.
--
   "... and for $64000 question, could you get yourself vaguely
      familiar with the notion of on-topic posting?"
				-- Al Viro @ LKML


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 16:31                       ` Valdis.Kletnieks
@ 2003-10-19 16:57                         ` Maciej Zenczykowski
  2003-10-19 18:00                           ` Valdis.Kletnieks
  0 siblings, 1 reply; 40+ messages in thread
From: Maciej Zenczykowski @ 2003-10-19 16:57 UTC (permalink / raw)
  To: Valdis.Kletnieks; +Cc: Wichert Akkerman, Linux Kernel Mailing List

> OK, so the applications are limited to /sbin/iptables, /sbin/route, /bin/
> netstat, and maybe dhcpd and/or zebra. They're still applications, even if they
> end up invoking a lot of kernel resources on their behalf.

/sbin/iptables and /sbin/route are merely configuration interfaces to the 
kernel proper, not really familiar with netstat - but as far as I know all 
it does is dumps kernel runtime configuration and statistics.  That's 3 
utilities which are no way apps - just interfaces.  Now dhcpd is an app 
and zebra is an app - but they are still mainly kernel oriented.  The 
first 3 depend only on kernel speed and the next 2 depend mostly on kernel 
speed.  I'd say you just proved how important kernel optimilization is for 
routers.

Cheers,
MaZe.



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

* Re: [2.6 patch] add a config option for -Os compilation
       [not found]                   ` <IorM.7wQ.11@gated-at.bofh.it>
@ 2003-10-19 16:55                     ` Ihar 'Philips' Filipau
  0 siblings, 0 replies; 40+ messages in thread
From: Ihar 'Philips' Filipau @ 2003-10-19 16:55 UTC (permalink / raw)
  To: Wichert Akkerman; +Cc: Linux Kernel Mailing List

Wichert Akkerman wrote:
> Previously Ihar 'Philips' Filipau wrote:
> 
>>  The goal of kernel is to provide framework for applications to the 
>>job well.
> 
> I doubt anyone using linux for routing would agree with you.
> 

   This is different matter.
   This is IO bound task - and I'm not sure how -Os will perform there.
   But still this depends on routing protocols and their requirements.

   In any way in this case bottleneck is PCI bus (DMA over PCI from NIC 
to main memory and back). I bet software will show up in timing tests as 
taking <10% of whole time.

-- 
Ihar 'Philips' Filipau  / with best regards from Saarbruecken.
--
   "... and for $64000 question, could you get yourself vaguely
      familiar with the notion of on-topic posting?"
				-- Al Viro @ LKML


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 16:14                     ` Wichert Akkerman
@ 2003-10-19 16:31                       ` Valdis.Kletnieks
  2003-10-19 16:57                         ` Maciej Zenczykowski
  0 siblings, 1 reply; 40+ messages in thread
From: Valdis.Kletnieks @ 2003-10-19 16:31 UTC (permalink / raw)
  To: Wichert Akkerman; +Cc: Linux Kernel Mailing List

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

On Sun, 19 Oct 2003 18:14:55 +0200, Wichert Akkerman <wichert@wiggy.net>  said:
> Previously Ihar 'Philips' Filipau wrote:
> >   The goal of kernel is to provide framework for applications to the 
> > job well.
> 
> I doubt anyone using linux for routing would agree with you.

OK, so the applications are limited to /sbin/iptables, /sbin/route, /bin/
netstat, and maybe dhcpd and/or zebra. They're still applications, even if they
end up invoking a lot of kernel resources on their behalf.


[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 16:05                   ` Ihar 'Philips' Filipau
@ 2003-10-19 16:14                     ` Wichert Akkerman
  2003-10-19 16:31                       ` Valdis.Kletnieks
  0 siblings, 1 reply; 40+ messages in thread
From: Wichert Akkerman @ 2003-10-19 16:14 UTC (permalink / raw)
  To: Linux Kernel Mailing List

Previously Ihar 'Philips' Filipau wrote:
>   The goal of kernel is to provide framework for applications to the 
> job well.

I doubt anyone using linux for routing would agree with you.

Wichert.

-- 
Wichert Akkerman <wichert@wiggy.net>    It is simple to make things.
http://www.wiggy.net/                   It is hard to make things simple.


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

* Re: [2.6 patch] add a config option for -Os compilation
       [not found]                 ` <InYQ.6OJ.21@gated-at.bofh.it>
@ 2003-10-19 16:05                   ` Ihar 'Philips' Filipau
  2003-10-19 16:14                     ` Wichert Akkerman
  0 siblings, 1 reply; 40+ messages in thread
From: Ihar 'Philips' Filipau @ 2003-10-19 16:05 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: Linux Kernel Mailing List

Martin J. Bligh wrote:
> 
> But if someone with a small cache would actually *measure* the damned 
> thing, I'd be more impressed ... I've never seen that, but perhaps
> I just missed it. 
> 
> Point is the same either way though ... we shouldn't unconditionally
> optimise for *anyone's* system. If it's faster on all systems that anyone
> can be bothered to measure, great. If it's faster on some, and slower on
> others, a config option seems more appropriate, defaulting to the majority
> of users.
> 

   The thing is, that in fact kernel optimization is not that important.

   The goal of kernel is to provide framework for applications to the 
job well. I wasn't doing any kernels measurements - since kernel docs 
are saying that -O2 is the standard. And it is really hard to measure 
kernel only perfomance. (And it is rather pointless - I'm not going to 
sell linux kernel ;-)))

   But indeed I was testing my application on embedded system with 16K 
L1 cache. Results were pretty predictable: gcc 2.95.3 + -Os was giving 
some (around 2-3%) performance improvements, while 2.95.3 + -O[23] and 
3.2.3 with any optimization were giving aprox. the same times. (App is 
bloated with third-party libraries, C++ and threads. Save God I have 
killed all exceptions - they were really really really slow on target 
system.)

   But on other side - since embedded systems are not that overclocked 
as high-end toys - cache miss is not that painful. As of docs, NatSemi 
Geode@266MHz cache miss costs exactly 266/66 == 4 cycles.

-- 
Ihar 'Philips' Filipau  / with best regards from Saarbruecken.
--
   "... and for $64000 question, could you get yourself vaguely
      familiar with the notion of on-topic posting?"
				-- Al Viro @ LKML


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 14:15               ` Ihar 'Philips' Filipau
@ 2003-10-19 15:40                 ` Martin J. Bligh
  0 siblings, 0 replies; 40+ messages in thread
From: Martin J. Bligh @ 2003-10-19 15:40 UTC (permalink / raw)
  To: Ihar 'Philips' Filipau, Adrian Bunk; +Cc: Linux Kernel Mailing List

>> Martin was ironically talking about people who are ignorant of machines
>> with _huge_ caches.
>> 
> 
>    Oh. Sorry. Probably I need to work on my English bit more.
> 
>> I the context of this thread he wanted to vote for making -Os 
>> conditionally and not unconditionally enabled by telling that he knows 
>> of situations where -O2 produces faster code.
> 
>    Absolutely.
>    High-end toys, after all, optimized to handle this.
> 
>    IMHO this should be settled on per-target basis: embedded system - -Os; servers - -O2; desktops - -O3 ;) So instead of CONFIG_EMBEDDED better to have CONFIG_TARGET=[desktop|server|embedded].
> 
>    Inroducing one more variable into builds - is really painful. I was hit by gcc miscompiles and internal errors not once (especially with -O[23]). Tracking down this kind of issues would be made more problematic.
> 
> P.S. I'm really sorry for my rude response.

;-) No problem. 

But if someone with a small cache would actually *measure* the damned 
thing, I'd be more impressed ... I've never seen that, but perhaps
I just missed it. 

Point is the same either way though ... we shouldn't unconditionally
optimise for *anyone's* system. If it's faster on all systems that anyone
can be bothered to measure, great. If it's faster on some, and slower on
others, a config option seems more appropriate, defaulting to the majority
of users.

M.


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

* Re: [2.6 patch] add a config option for -Os compilation
       [not found]             ` <20031019113743.GO12423@fs.tum.de>
@ 2003-10-19 14:15               ` Ihar 'Philips' Filipau
  2003-10-19 15:40                 ` Martin J. Bligh
  0 siblings, 1 reply; 40+ messages in thread
From: Ihar 'Philips' Filipau @ 2003-10-19 14:15 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Martin J. Bligh, Linux Kernel Mailing List

Adrian Bunk wrote:
> On Sat, Oct 18, 2003 at 07:10:22PM +0200, Ihar 'Philips' Filipau wrote:
> 
>>Martin J. Bligh wrote:
>>>If you have a puny 128K L2 cache, it might help,
> 
> Martin was ironically talking about people who are ignorant of machines
> with _huge_ caches.
> 

   Oh. Sorry. Probably I need to work on my English bit more.

> I the context of this thread he wanted to vote for making -Os 
> conditionally and not unconditionally enabled by telling that he knows 
> of situations where -O2 produces faster code.

   Absolutely.
   High-end toys, after all, optimized to handle this.

   IMHO this should be settled on per-target basis: embedded system - 
-Os; servers - -O2; desktops - -O3 ;) So instead of CONFIG_EMBEDDED 
better to have CONFIG_TARGET=[desktop|server|embedded].

   Inroducing one more variable into builds - is really painful. I was 
hit by gcc miscompiles and internal errors not once (especially with 
-O[23]). Tracking down this kind of issues would be made more problematic.

P.S. I'm really sorry for my rude response.

-- 
Ihar 'Philips' Filipau  / with best regards from Saarbruecken.
--
   "... and for $64000 question, could you get yourself vaguely
      familiar with the notion of on-topic posting?"
				-- Al Viro @ LKML


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-19 13:56                   ` Ingo Oeser
@ 2003-10-19 14:09                     ` Michael Buesch
  2003-10-19 17:37                     ` Sam Ravnborg
  1 sibling, 0 replies; 40+ messages in thread
From: Michael Buesch @ 2003-10-19 14:09 UTC (permalink / raw)
  To: Ingo Oeser; +Cc: Andi Kleen, linux-kernel, Andrew Morton, Sam Ravnborg

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sunday 19 October 2003 15:56, Ingo Oeser wrote:
> Hi all,

Hi Ingo

> Simple implementation today:
>
> optimize_for_speed := CFLAGS_$1 += -O3
> optimize_for_size  := CFLAGS_$1 += -Os

I experienced many problems while using -O3,
because it may randomly inline functions, that
are not marked inline. For example -O3 made
ide-scsi on 2.4 nonworking for me.
The book "Linux Device Drivers" has a longer
explanation for _not_ using -O3 on kernels.

>
> Regards
>
> Ingo Oeser

- -- 
Regards Michael Buesch  [ http://www.tuxsoft.de.vu ]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/kpsfoxoigfggmSgRAgKEAJ9VwoVGyaP3qIm+RT0o3Q9pAhxMYgCeMz9f
vLJH6H+xM1yXfKXaXg2IPF8=
=oQIW
-----END PGP SIGNATURE-----


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-10-18 19:19                 ` Andi Kleen
@ 2003-10-19 13:56                   ` Ingo Oeser
  2003-10-19 14:09                     ` Michael Buesch
  2003-10-19 17:37                     ` Sam Ravnborg
  0 siblings, 2 replies; 40+ messages in thread
From: Ingo Oeser @ 2003-10-19 13:56 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel, Andrew Morton, Sam Ravnborg

Hi all,

On Saturday 18 October 2003 21:19, Andi Kleen wrote:
> Best would be actually a mix of both - setting it case by case.
> That's already done in specific cases, e.g. ACPI is always compiled
> with -Os. This could be done for other files which are clearly
> slow path too.

If there is is guarantee fro the GCC Steering Comitee, that there will
never be any ABI changes generated from the differences there (like
structure padding on/off).

Maybe there should be sth. in the build system for that, which is called
$(call optimize_for_speed, $target) and $(call optimize_for_size,$target) 
which then can be added on a per file basis and per directory tree,
where it really matters and letting it to the default otherwise.

That way we can tune gradually and remove GCC options.

Simple implementation today:

optimize_for_speed := CFLAGS_$1 += -O3
optimize_for_size  := CFLAGS_$1 += -Os


Sam: What do you think?

Regards

Ingo Oeser



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

* Re: [2.6 patch] add a config option for -Os compilation
       [not found]               ` <20031018105733.380ea8d2.akpm@osdl.org.suse.lists.linux.kernel>
@ 2003-10-18 19:19                 ` Andi Kleen
  2003-10-19 13:56                   ` Ingo Oeser
  0 siblings, 1 reply; 40+ messages in thread
From: Andi Kleen @ 2003-10-18 19:19 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Andrew Morton <akpm@osdl.org> writes:

> And bear in mind that you can see significant changes in benchmark results
> between equivalent kernels even when the optimisation level is kept the
> same, due to aliasing and alignment luck.

It also depends on a lot on the compiler version. On 2.95 
it was common wisdom that -Os is often fastest, but that changed
in later versions.

Best would be actually a mix of both - setting it case by case.
That's already done in specific cases, e.g. ACPI is always compiled
with -Os. This could be done for other files which are clearly
slow path too.

Profile feedback is unfortunately not an option because it is too
unpredictable and causes maintenance problems.

-Andi

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

* Re: [2.6 patch] add a config option for -Os compilation
       [not found]         ` <I1EP.5QO.1@gated-at.bofh.it>
@ 2003-10-18 17:10           ` Ihar 'Philips' Filipau
       [not found]             ` <20031019113743.GO12423@fs.tum.de>
  0 siblings, 1 reply; 40+ messages in thread
From: Ihar 'Philips' Filipau @ 2003-10-18 17:10 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: Linux Kernel Mailing List

Martin J. Bligh wrote:
> If you have a puny 128K L2 cache, it might help,

   [ I accept this as a flame-bait. ]
   Can you be little bit less ignorant? Eh?
   Please. I beg you.
   Linux is used not only by you, and not only on huge NUMA boxes with 
huge caches <flame-bait>to hide stupid design flaws</flame-bait>. (can't 
wait when clusters of hand-helds connected over bluetooth will wipe out 
mainframe market :)))

   My system has 16K L1 cache. Only L1. And what should I do?
   I was benchmarking 2.4.1[68] some time ago and -Os helps gcc to 
produce faster code (both gcc 2.95.3 and 3.2.3). (It was Geode. But e.g. 
Motorolla's PowerQuicc has 16K L1 too - but I'm not sure does -Os help 
on ppc)

   On my test difference was around 5-7%. Task was very IO intensive 
with few of computational branches. Size of .text ~ 800K, .bss ~ 400K.

> Please don't - I benchmarked it a while ago, and it's definitely slower.
> If you have a puny 128K L2 cache, it might help, but it definitely needs
> to be optional.

   Optional - would be Okay.

P.S. That's dependency on GCC what should be optional. Let's not forget 
the source of the problem.

-- 
Ihar 'Philips' Filipau  / with best regards from Saarbruecken.
--
   "... and for $64000 question, could you get yourself vaguely
      familiar with the notion of on-topic posting?"
				-- Al Viro @ LKML


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-25 18:11         ` Sam Ravnborg
  2003-09-26 11:44           ` Russell King
@ 2003-09-26 22:36           ` Adrian Bunk
  1 sibling, 0 replies; 40+ messages in thread
From: Adrian Bunk @ 2003-09-26 22:36 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel, Yoshinori Sato

On Thu, Sep 25, 2003 at 08:11:27PM +0200, Sam Ravnborg wrote:
> On Thu, Sep 25, 2003 at 04:38:45PM +0200, Adrian Bunk wrote:
> > --- linux-2.6.0-test5-mm4/init/Kconfig.old	2003-09-25 14:38:18.000000000 +0200
> > +++ linux-2.6.0-test5-mm4/init/Kconfig	2003-09-25 14:47:12.000000000 +0200
> > @@ -65,6 +65,16 @@
> >  
> >  menu "General setup"
> >  
> > +config OPTIMIZE_FOR_SIZE
> > +	bool "Optimize for size" if EXPERIMENTAL
> > +	default y if ARM || H8300
> > +	default n
> > +	help
> > +	  Enabling this option will pass "-Os" instead of "-O2" to gcc
> > +	  resulting in a smaller kernel.
> > +
> > +	  If unsure, say N.
> > +
> 
> This is a general file, and it is wrong to include architecture specific
> knowledge here.
> I recall that Roman Zippel introduced "enable" for exactly this purpose.
>...

I can't see how this would help in this situation, we need a default, 
not a dependency (OPTIMIZE_FOR_SIZE=n should be possible on ARM).

It's not the only option that sets defaults depending on the 
architecture and I can't see why it should be a bad thing.

> Another comment about the naming of the config symbol.
> We keep getting more config symbols controlling options to GCC.
> A naming scheme like: CONFIG_CC_OPTIMIZE_FOR_SIZE, CONFIG_CC_DEBUG_INFO
> is preferable since it give better context information.
> Let's start with this option, and rename the others later.

Below is the patch with CONFIG_CC_OPTIMIZE_FOR_SIZE.

> 	Sam

cu
Adrian

--- linux-2.6.0-test5-mm4/init/Kconfig.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/init/Kconfig	2003-09-25 14:47:12.000000000 +0200
@@ -65,6 +65,16 @@
 
 menu "General setup"
 
+config CC_OPTIMIZE_FOR_SIZE
+	bool "Optimize for size" if EXPERIMENTAL
+	default y if ARM || H8300
+	default n
+	help
+	  Enabling this option will pass "-Os" instead of "-O2" to gcc
+	  resulting in a smaller kernel.
+
+	  If unsure, say N.
+
 config SWAP
 	bool "Support for paging of anonymous memory"
 	depends on MMU
--- linux-2.6.0-test5-mm4/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/Makefile	2003-09-25 14:40:26.000000000 +0200
@@ -274,7 +274,7 @@
 CPPFLAGS        := -D__KERNEL__ -Iinclude \
 		   $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
 
-CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs \
 	  	   -fno-strict-aliasing -fno-common
 AFLAGS		:= -D__ASSEMBLY__
 
@@ -421,6 +421,12 @@
 # ---------------------------------------------------------------------------
 
 
+ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+CFLAGS		+= -Os
+else
+CFLAGS		+= -O2
+endif
+
 ifndef CONFIG_FRAME_POINTER
 CFLAGS		+= -fomit-frame-pointer
 endif
--- linux-2.6.0-test5-mm4/arch/arm/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/arm/Makefile	2003-09-25 14:40:47.000000000 +0200
@@ -14,8 +14,6 @@
 GZFLAGS		:=-9
 #CFLAGS		+=-pipe
 
-CFLAGS		:=$(CFLAGS:-O2=-Os)
-
 ifeq ($(CONFIG_FRAME_POINTER),y)
 CFLAGS		+=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
 endif
--- linux-2.6.0-test5-mm4/arch/h8300/Kconfig.old	2003-09-25 14:43:27.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Kconfig	2003-09-25 14:43:44.000000000 +0200
@@ -5,6 +5,10 @@
 
 mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
 
+config H8300
+	bool
+	default y
+
 config MMU
 	bool
 	default n
--- linux-2.6.0-test5-mm4/arch/h8300/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Makefile	2003-09-25 14:38:24.000000000 +0200
@@ -34,7 +34,7 @@
 ldflags-$(CONFIG_CPU_H8S)	:= -mh8300self
 
 CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
 CFLAGS += -g
 CFLAGS += -D__linux__
 CFLAGS += -DUTS_SYSNAME=\"uClinux\"

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-25 18:11         ` Sam Ravnborg
@ 2003-09-26 11:44           ` Russell King
  2003-09-26 22:36           ` Adrian Bunk
  1 sibling, 0 replies; 40+ messages in thread
From: Russell King @ 2003-09-26 11:44 UTC (permalink / raw)
  To: Adrian Bunk, Andrew Morton, linux-kernel, Yoshinori Sato

On Thu, Sep 25, 2003 at 08:11:27PM +0200, Sam Ravnborg wrote:
> On Thu, Sep 25, 2003 at 04:38:45PM +0200, Adrian Bunk wrote:
> > --- linux-2.6.0-test5-mm4/init/Kconfig.old	2003-09-25 14:38:18.000000000 +0200
> > +++ linux-2.6.0-test5-mm4/init/Kconfig	2003-09-25 14:47:12.000000000 +0200
> > @@ -65,6 +65,16 @@
> >  
> >  menu "General setup"
> >  
> > +config OPTIMIZE_FOR_SIZE
> > +	bool "Optimize for size" if EXPERIMENTAL
> > +	default y if ARM || H8300
> > +	default n
> > +	help
> > +	  Enabling this option will pass "-Os" instead of "-O2" to gcc
> > +	  resulting in a smaller kernel.
> > +
> > +	  If unsure, say N.
> > +
> 
> This is a general file, and it is wrong to include architecture specific
> knowledge here.

In which case we need to replicate the option in each of the per-
architecture files.  That seems a bit wasteful though.

I don't think "select" will hack it in this case though.

-- 
Russell King (rmk@arm.linux.org.uk)	http://www.arm.linux.org.uk/personal/
      Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
      maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                      2.6 Serial core

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-25 14:38       ` Adrian Bunk
@ 2003-09-25 18:11         ` Sam Ravnborg
  2003-09-26 11:44           ` Russell King
  2003-09-26 22:36           ` Adrian Bunk
  0 siblings, 2 replies; 40+ messages in thread
From: Sam Ravnborg @ 2003-09-25 18:11 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel, Yoshinori Sato

On Thu, Sep 25, 2003 at 04:38:45PM +0200, Adrian Bunk wrote:
> --- linux-2.6.0-test5-mm4/init/Kconfig.old	2003-09-25 14:38:18.000000000 +0200
> +++ linux-2.6.0-test5-mm4/init/Kconfig	2003-09-25 14:47:12.000000000 +0200
> @@ -65,6 +65,16 @@
>  
>  menu "General setup"
>  
> +config OPTIMIZE_FOR_SIZE
> +	bool "Optimize for size" if EXPERIMENTAL
> +	default y if ARM || H8300
> +	default n
> +	help
> +	  Enabling this option will pass "-Os" instead of "-O2" to gcc
> +	  resulting in a smaller kernel.
> +
> +	  If unsure, say N.
> +

This is a general file, and it is wrong to include architecture specific
knowledge here.
I recall that Roman Zippel introduced "enable" for exactly this purpose.

I looked into Documentation/kbuild/kconfig-language.txt but did not
see it documented - Roman?

Another comment about the naming of the config symbol.
We keep getting more config symbols controlling options to GCC.
A naming scheme like: CONFIG_CC_OPTIMIZE_FOR_SIZE, CONFIG_CC_DEBUG_INFO
is preferable since it give better context information.
Let's start with this option, and rename the others later.

	Sam

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-14 14:52     ` Russell King
@ 2003-09-25 14:38       ` Adrian Bunk
  2003-09-25 18:11         ` Sam Ravnborg
  0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-09-25 14:38 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel, Yoshinori Sato

On Sun, Sep 14, 2003 at 03:52:45PM +0100, Russell King wrote:
> 
> But it doesn't make sense - you include a generic configuration option
> which people will see, yet it makes no effect on ARM - seems to be rather
> silly putting it there in the first place.
> 
> Also, do users particularly care what -Os and -O2 mean?

The "If unsure, say N." should take care of it. People who really need 
small kernels usually know what -Os means.

> Maybe you need to change init/Kconfig to be something like the following,
> and reinstate the change to the ARM makefile:
> 
> config OPTIMIZE_FOR_SIZE
> 	bool "Optimize for size" if EXPERIMENTAL
> 	default n if !ARM
> 	default y if ARM

That's a good idea.

The patch below does this for ARM and H8300.
Since there was no H8300 symbol, I added it to arch/h8300/Kconfig 
similar to the symbols on other architectures.

> 	help
> 	  Enabling this option will cause the compiler to reduce the code
> 	  size of the kernel by disabling certain optimisations.  However,
> 	  the resulting kernel may run faster due to more efficient
> 	  cache utilisation.
>...

I don't like this part, it would cause confusion. -O2 is more widely
tested, and though if there might be small improvements on some CPUs
with some compiler versions, it's untested whether -Os might cause worse
performance of some fast path code in any area of the kernel.
OPTIMIZE_FOR_SIZE should, although of low risk, be an "only use it if
you know what you are doing" option.


diffstat output for the patch below:

 Makefile            |    8 +++++++-
 arch/arm/Makefile   |    2 --
 arch/h8300/Kconfig  |    4 ++++
 arch/h8300/Makefile |    2 +-
 init/Kconfig        |   10 ++++++++++
 5 files changed, 22 insertions(+), 4 deletions(-)


cu
Adrian

--- linux-2.6.0-test5-mm4/init/Kconfig.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/init/Kconfig	2003-09-25 14:47:12.000000000 +0200
@@ -65,6 +65,16 @@
 
 menu "General setup"
 
+config OPTIMIZE_FOR_SIZE
+	bool "Optimize for size" if EXPERIMENTAL
+	default y if ARM || H8300
+	default n
+	help
+	  Enabling this option will pass "-Os" instead of "-O2" to gcc
+	  resulting in a smaller kernel.
+
+	  If unsure, say N.
+
 config SWAP
 	bool "Support for paging of anonymous memory"
 	depends on MMU
--- linux-2.6.0-test5-mm4/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/Makefile	2003-09-25 14:40:26.000000000 +0200
@@ -274,7 +274,7 @@
 CPPFLAGS        := -D__KERNEL__ -Iinclude \
 		   $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
 
-CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs \
 	  	   -fno-strict-aliasing -fno-common
 AFLAGS		:= -D__ASSEMBLY__
 
@@ -421,6 +421,12 @@
 # ---------------------------------------------------------------------------
 
 
+ifdef CONFIG_OPTIMIZE_FOR_SIZE
+CFLAGS		+= -Os
+else
+CFLAGS		+= -O2
+endif
+
 ifndef CONFIG_FRAME_POINTER
 CFLAGS		+= -fomit-frame-pointer
 endif
--- linux-2.6.0-test5-mm4/arch/arm/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/arm/Makefile	2003-09-25 14:40:47.000000000 +0200
@@ -14,8 +14,6 @@
 GZFLAGS		:=-9
 #CFLAGS		+=-pipe
 
-CFLAGS		:=$(CFLAGS:-O2=-Os)
-
 ifeq ($(CONFIG_FRAME_POINTER),y)
 CFLAGS		+=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
 endif
--- linux-2.6.0-test5-mm4/arch/h8300/Kconfig.old	2003-09-25 14:43:27.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Kconfig	2003-09-25 14:43:44.000000000 +0200
@@ -5,6 +5,10 @@
 
 mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
 
+config H8300
+	bool
+	default y
+
 config MMU
 	bool
 	default n
--- linux-2.6.0-test5-mm4/arch/h8300/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Makefile	2003-09-25 14:38:24.000000000 +0200
@@ -34,7 +34,7 @@
 ldflags-$(CONFIG_CPU_H8S)	:= -mh8300self
 
 CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
 CFLAGS += -g
 CFLAGS += -D__linux__
 CFLAGS += -DUTS_SYSNAME=\"uClinux\"

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-14 14:57   ` Alan Cox
@ 2003-09-15 15:15     ` Martin J. Bligh
  0 siblings, 0 replies; 40+ messages in thread
From: Martin J. Bligh @ 2003-09-15 15:15 UTC (permalink / raw)
  To: Alan Cox, Wade; +Cc: Linux Kernel Mailing List

--Alan Cox <alan@lxorguk.ukuu.org.uk> wrote (on Sunday, September 14, 2003 15:57:49 +0100):

> On Sul, 2003-09-14 at 14:53, Wade wrote:
>> Adrian Bunk wrote:
>> > The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc 
>> > to use -Os instead of -O2. Besides this, it removes constructs on 
>> > architectures that had a -Os hardcoded in their Makefiles.
>> 
>> Someone told me that -Os is actually faster than -O2 for Athlons, is 
>> that true?
> 
> On gcc 2.95 -Os was faster for most stuff. I would intuitively expect
> the best result to be a mix varied by function but I don't think gcc has
> the support to do that.
> 
> I've also not benched gcc 3.2 -Os v -O2 at real workloads - thats a 
> nice little project for someone.

I think it depends heavily on the chip - I tried 2.95 and 3.3. For me,
-Os was slower for both, but I have a 2MB L2 cache. If you have a 128K
celeron or something, I'm sure it'd be faster.

M.


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-14 13:53 ` Wade
@ 2003-09-14 14:57   ` Alan Cox
  2003-09-15 15:15     ` Martin J. Bligh
  0 siblings, 1 reply; 40+ messages in thread
From: Alan Cox @ 2003-09-14 14:57 UTC (permalink / raw)
  To: Wade; +Cc: Linux Kernel Mailing List

On Sul, 2003-09-14 at 14:53, Wade wrote:
> Adrian Bunk wrote:
> > The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc 
> > to use -Os instead of -O2. Besides this, it removes constructs on 
> > architectures that had a -Os hardcoded in their Makefiles.
> 
> Someone told me that -Os is actually faster than -O2 for Athlons, is 
> that true?

On gcc 2.95 -Os was faster for most stuff. I would intuitively expect
the best result to be a mix varied by function but I don't think gcc has
the support to do that.

I've also not benched gcc 3.2 -Os v -O2 at real workloads - thats a 
nice little project for someone.


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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-14 13:21   ` Adrian Bunk
@ 2003-09-14 14:52     ` Russell King
  2003-09-25 14:38       ` Adrian Bunk
  0 siblings, 1 reply; 40+ messages in thread
From: Russell King @ 2003-09-14 14:52 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel

On Sun, Sep 14, 2003 at 03:21:43PM +0200, Adrian Bunk wrote:
> On Sun, Sep 14, 2003 at 01:33:49PM +0100, Russell King wrote:
> > On Sun, Sep 14, 2003 at 02:16:56PM +0200, Adrian Bunk wrote:
> > > The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc 
> > > to use -Os instead of -O2. Besides this, it removes constructs on 
> > > architectures that had a -Os hardcoded in their Makefiles.
> > 
> > I'd rather retain the -Os default for ARM please.  (The init/Kconfig
> > defaults it to 'n' for everything.)
> 
> Below is the patch with the ARM part omitted.

But it doesn't make sense - you include a generic configuration option
which people will see, yet it makes no effect on ARM - seems to be rather
silly putting it there in the first place.

Also, do users particularly care what -Os and -O2 mean?

Maybe you need to change init/Kconfig to be something like the following,
and reinstate the change to the ARM makefile:

config OPTIMIZE_FOR_SIZE
	bool "Optimize for size" if EXPERIMENTAL
	default n if !ARM
	default y if ARM
	help
	  Enabling this option will cause the compiler to reduce the code
	  size of the kernel by disabling certain optimisations.  However,
	  the resulting kernel may run faster due to more efficient
	  cache utilisation.

	  If unsure, say N.

-- 
Russell King (rmk@arm.linux.org.uk)	http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
  2.6 ARM Linux   - http://www.arm.linux.org.uk/
  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
  2.6 Serial core

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-14 12:16 Adrian Bunk
  2003-09-14 12:33 ` Russell King
@ 2003-09-14 13:53 ` Wade
  2003-09-14 14:57   ` Alan Cox
  1 sibling, 1 reply; 40+ messages in thread
From: Wade @ 2003-09-14 13:53 UTC (permalink / raw)
  To: Linux Kernel Mailing List

Adrian Bunk wrote:
> The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc 
> to use -Os instead of -O2. Besides this, it removes constructs on 
> architectures that had a -Os hardcoded in their Makefiles.

Someone told me that -Os is actually faster than -O2 for Athlons, is 
that true?




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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-14 12:33 ` Russell King
@ 2003-09-14 13:21   ` Adrian Bunk
  2003-09-14 14:52     ` Russell King
  0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-09-14 13:21 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

On Sun, Sep 14, 2003 at 01:33:49PM +0100, Russell King wrote:
> On Sun, Sep 14, 2003 at 02:16:56PM +0200, Adrian Bunk wrote:
> > The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc 
> > to use -Os instead of -O2. Besides this, it removes constructs on 
> > architectures that had a -Os hardcoded in their Makefiles.
> 
> I'd rather retain the -Os default for ARM please.  (The init/Kconfig
> defaults it to 'n' for everything.)

Below is the patch with the ARM part omitted.

cu
Adrian

--- linux-2.6.0-test5-Os/init/Kconfig.old	2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/init/Kconfig	2003-09-13 17:30:59.000000000 +0200
@@ -65,6 +65,15 @@
 
 menu "General setup"
 
+config OPTIMIZE_FOR_SIZE
+	bool "Optimize for size" if EXPERIMENTAL
+	default n
+	help
+	  Enabling this option will pass "-Os" instead of "-O2" to gcc
+	  resulting in a smaller kernel.
+
+	  If unsure, say N.
+
 config SWAP
 	bool "Support for paging of anonymous memory"
 	depends on MMU
--- linux-2.6.0-test5-Os/Makefile.old	2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/Makefile	2003-09-13 17:30:59.000000000 +0200
@@ -223,7 +223,7 @@
 NOSTDINC_FLAGS  = -nostdinc -iwithprefix include
 
 CPPFLAGS	:= -D__KERNEL__ -Iinclude
-CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs \
 	  	   -fno-strict-aliasing -fno-common
 AFLAGS		:= -D__ASSEMBLY__
 
@@ -370,6 +370,12 @@
 # ---------------------------------------------------------------------------
 
 
+ifdef CONFIG_OPTIMIZE_FOR_SIZE
+CFLAGS		+= -Os
+else
+CFLAGS		+= -O2
+endif
+
 ifndef CONFIG_FRAME_POINTER
 CFLAGS		+= -fomit-frame-pointer
 endif
--- linux-2.6.0-test5-Os/arch/h8300/Makefile.old	2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/arch/h8300/Makefile	2003-09-13 17:30:59.000000000 +0200
@@ -34,7 +34,7 @@
 ldflags-$(CONFIG_CPU_H8S)	:= -mh8300self
 
 CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
 CFLAGS += -g
 CFLAGS += -D__linux__
 CFLAGS += -DUTS_SYSNAME=\"uClinux\"

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

* Re: [2.6 patch] add a config option for -Os compilation
  2003-09-14 12:16 Adrian Bunk
@ 2003-09-14 12:33 ` Russell King
  2003-09-14 13:21   ` Adrian Bunk
  2003-09-14 13:53 ` Wade
  1 sibling, 1 reply; 40+ messages in thread
From: Russell King @ 2003-09-14 12:33 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel

On Sun, Sep 14, 2003 at 02:16:56PM +0200, Adrian Bunk wrote:
> The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc 
> to use -Os instead of -O2. Besides this, it removes constructs on 
> architectures that had a -Os hardcoded in their Makefiles.

I'd rather retain the -Os default for ARM please.  (The init/Kconfig
defaults it to 'n' for everything.)

-- 
Russell King (rmk@arm.linux.org.uk)	http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
  2.6 ARM Linux   - http://www.arm.linux.org.uk/
  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
  2.6 Serial core

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

* [2.6 patch] add a config option for -Os compilation
@ 2003-09-14 12:16 Adrian Bunk
  2003-09-14 12:33 ` Russell King
  2003-09-14 13:53 ` Wade
  0 siblings, 2 replies; 40+ messages in thread
From: Adrian Bunk @ 2003-09-14 12:16 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc 
to use -Os instead of -O2. Besides this, it removes constructs on 
architectures that had a -Os hardcoded in their Makefiles.

It works for me, I'm currently running a 2.6.0-test5 compild with this 
option enabled and there are no obvious problems.

The last time I sent this to linux-kernel there were one positive and 
zero negative reactions.

diffstat output:

 Makefile            |    8 +++++++-
 arch/arm/Makefile   |    2 --
 arch/h8300/Makefile |    2 +-
 init/Kconfig        |    9 +++++++++
 4 files changed, 17 insertions(+), 4 deletions(-)

Please apply
Adrian

--- linux-2.6.0-test5-Os/init/Kconfig.old	2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/init/Kconfig	2003-09-13 17:30:59.000000000 +0200
@@ -65,6 +65,15 @@
 
 menu "General setup"
 
+config OPTIMIZE_FOR_SIZE
+	bool "Optimize for size" if EXPERIMENTAL
+	default n
+	help
+	  Enabling this option will pass "-Os" instead of "-O2" to gcc
+	  resulting in a smaller kernel.
+
+	  If unsure, say N.
+
 config SWAP
 	bool "Support for paging of anonymous memory"
 	depends on MMU
--- linux-2.6.0-test5-Os/Makefile.old	2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/Makefile	2003-09-13 17:30:59.000000000 +0200
@@ -223,7 +223,7 @@
 NOSTDINC_FLAGS  = -nostdinc -iwithprefix include
 
 CPPFLAGS	:= -D__KERNEL__ -Iinclude
-CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs \
 	  	   -fno-strict-aliasing -fno-common
 AFLAGS		:= -D__ASSEMBLY__
 
@@ -370,6 +370,12 @@
 # ---------------------------------------------------------------------------
 
 
+ifdef CONFIG_OPTIMIZE_FOR_SIZE
+CFLAGS		+= -Os
+else
+CFLAGS		+= -O2
+endif
+
 ifndef CONFIG_FRAME_POINTER
 CFLAGS		+= -fomit-frame-pointer
 endif
--- linux-2.6.0-test5-Os/arch/arm/Makefile.old	2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/arch/arm/Makefile	2003-09-13 17:30:59.000000000 +0200
@@ -14,8 +14,6 @@
 GZFLAGS		:=-9
 #CFLAGS		+=-pipe
 
-CFLAGS		:=$(CFLAGS:-O2=-Os)
-
 ifeq ($(CONFIG_FRAME_POINTER),y)
 CFLAGS		+=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
 endif
--- linux-2.6.0-test5-Os/arch/h8300/Makefile.old	2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/arch/h8300/Makefile	2003-09-13 17:30:59.000000000 +0200
@@ -34,7 +34,7 @@
 ldflags-$(CONFIG_CPU_H8S)	:= -mh8300self
 
 CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
 CFLAGS += -g
 CFLAGS += -D__linux__
 CFLAGS += -DUTS_SYSNAME=\"uClinux\"

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

end of thread, other threads:[~2003-10-21  8:22 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-10-15 22:50 [2.6 patch] add a config option for -Os compilation Adrian Bunk
2003-10-15 23:12 ` Andrew Morton
2003-10-15 23:24   ` Adrian Bunk
2003-10-15 23:52     ` Andrew Morton
2003-10-18 10:21       ` Adrian Bunk
2003-10-18 15:45         ` Martin J. Bligh
2003-10-18 17:24           ` Andrew Morton
2003-10-18 17:44             ` Adrian Bunk
2003-10-18 17:57               ` Andrew Morton
2003-10-19 15:43                 ` Martin J. Bligh
2003-10-19 15:59                   ` Adrian Bunk
2003-10-19 16:25                   ` Arjan van de Ven
2003-10-19 18:32                   ` Andrew Morton
2003-10-20 14:27                     ` Martin J. Bligh
2003-10-21  8:22         ` Jan-Benedict Glaw
     [not found] <Ip4B.8lT.23@gated-at.bofh.it>
     [not found] ` <Ip4B.8lT.25@gated-at.bofh.it>
     [not found]   ` <Ip4B.8lT.27@gated-at.bofh.it>
     [not found]     ` <Ip4B.8lT.29@gated-at.bofh.it>
     [not found]       ` <Ip4B.8lT.31@gated-at.bofh.it>
     [not found]         ` <Ip4B.8lT.33@gated-at.bofh.it>
     [not found]           ` <Ip4B.8lT.35@gated-at.bofh.it>
     [not found]             ` <Ip4B.8lT.37@gated-at.bofh.it>
     [not found]               ` <Ip4B.8lT.39@gated-at.bofh.it>
     [not found]                 ` <Ip4B.8lT.41@gated-at.bofh.it>
     [not found]                   ` <Ip4B.8lT.43@gated-at.bofh.it>
     [not found]                     ` <Ip4B.8lT.21@gated-at.bofh.it>
2003-10-19 17:04                       ` Ihar 'Philips' Filipau
     [not found] <Ioi6.7kG.15@gated-at.bofh.it>
     [not found] ` <Ioi6.7kG.17@gated-at.bofh.it>
     [not found]   ` <Ioi6.7kG.19@gated-at.bofh.it>
     [not found]     ` <Ioi6.7kG.21@gated-at.bofh.it>
     [not found]       ` <Ioi6.7kG.23@gated-at.bofh.it>
     [not found]         ` <Ioi6.7kG.25@gated-at.bofh.it>
     [not found]           ` <Ioi6.7kG.27@gated-at.bofh.it>
     [not found]             ` <Ioi6.7kG.29@gated-at.bofh.it>
     [not found]               ` <Ioi6.7kG.31@gated-at.bofh.it>
     [not found]                 ` <Ioi6.7kG.11@gated-at.bofh.it>
     [not found]                   ` <IorM.7wQ.11@gated-at.bofh.it>
2003-10-19 16:55                     ` Ihar 'Philips' Filipau
     [not found] <I2Ue.7PG.3@gated-at.bofh.it>
     [not found] ` <I2Ue.7PG.5@gated-at.bofh.it>
     [not found]   ` <I2Ue.7PG.7@gated-at.bofh.it>
     [not found]     ` <I2Ue.7PG.9@gated-at.bofh.it>
     [not found]       ` <I2Ue.7PG.11@gated-at.bofh.it>
     [not found]         ` <I2Ue.7PG.13@gated-at.bofh.it>
     [not found]           ` <I2Ue.7PG.1@gated-at.bofh.it>
     [not found]             ` <ImzK.4TR.25@gated-at.bofh.it>
     [not found]               ` <ImzK.4TR.23@gated-at.bofh.it>
     [not found]                 ` <InYQ.6OJ.21@gated-at.bofh.it>
2003-10-19 16:05                   ` Ihar 'Philips' Filipau
2003-10-19 16:14                     ` Wichert Akkerman
2003-10-19 16:31                       ` Valdis.Kletnieks
2003-10-19 16:57                         ` Maciej Zenczykowski
2003-10-19 18:00                           ` Valdis.Kletnieks
     [not found] <20031015225055.GS17986@fs.tum.de.suse.lists.linux.kernel>
     [not found] ` <20031015161251.7de440ab.akpm@osdl.org.suse.lists.linux.kernel>
     [not found]   ` <20031015232440.GU17986@fs.tum.de.suse.lists.linux.kernel>
     [not found]     ` <20031015165205.0cc40606.akpm@osdl.org.suse.lists.linux.kernel>
     [not found]       ` <20031018102127.GE12423@fs.tum.de.suse.lists.linux.kernel>
     [not found]         ` <649730000.1066491920@[10.10.2.4].suse.lists.linux.kernel>
     [not found]           ` <20031018102402.3576af6c.akpm@osdl.org.suse.lists.linux.kernel>
     [not found]             ` <20031018174434.GJ12423@fs.tum.de.suse.lists.linux.kernel>
     [not found]               ` <20031018105733.380ea8d2.akpm@osdl.org.suse.lists.linux.kernel>
2003-10-18 19:19                 ` Andi Kleen
2003-10-19 13:56                   ` Ingo Oeser
2003-10-19 14:09                     ` Michael Buesch
2003-10-19 17:37                     ` Sam Ravnborg
     [not found] <H2MN.3cm.7@gated-at.bofh.it>
     [not found] ` <H366.3IC.9@gated-at.bofh.it>
     [not found]   ` <H3fO.3VO.13@gated-at.bofh.it>
     [not found]     ` <H3IO.4yt.9@gated-at.bofh.it>
     [not found]       ` <HWvz.5PI.9@gated-at.bofh.it>
     [not found]         ` <I1EP.5QO.1@gated-at.bofh.it>
2003-10-18 17:10           ` Ihar 'Philips' Filipau
     [not found]             ` <20031019113743.GO12423@fs.tum.de>
2003-10-19 14:15               ` Ihar 'Philips' Filipau
2003-10-19 15:40                 ` Martin J. Bligh
  -- strict thread matches above, loose matches on Subject: below --
2003-09-14 12:16 Adrian Bunk
2003-09-14 12:33 ` Russell King
2003-09-14 13:21   ` Adrian Bunk
2003-09-14 14:52     ` Russell King
2003-09-25 14:38       ` Adrian Bunk
2003-09-25 18:11         ` Sam Ravnborg
2003-09-26 11:44           ` Russell King
2003-09-26 22:36           ` Adrian Bunk
2003-09-14 13:53 ` Wade
2003-09-14 14:57   ` Alan Cox
2003-09-15 15:15     ` Martin J. Bligh

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.