All of lore.kernel.org
 help / color / mirror / Atom feed
From: rwhron@earthlink.net
To: linux-kernel@vger.kernel.org
Cc: solt@dns.toxicfilms.tv
Subject: Re: Minimizing the Kernel
Date: Wed, 24 Sep 2003 22:22:18 -0400	[thread overview]
Message-ID: <20030925022218.GA20302@rushmore> (raw)

> Hmm, has anyone tried -Os with gcc3+ ?
> Maybe that'd be good for size optimization?

2.6.0-test3 compiled with gcc-3.3.1 and redhat 7.2's
gcc-2.96-112.  gcc-3.3.1 saves about 275k text (10%).
-Os is more effective on gcc-3.3.1 than 2.96.
These were all built with the same .config.

size vmlinux-*
   text    data     bss     dec     hex filename
2120419  449928  131748 2702095  293b0f vmlinux-3.3.1-Os
2124890  449928  131748 2706566  294c86 vmlinux-3.3.1-Os-falign=2
2334482  457304  125952 2917738  2c856a vmlinux-2.96-112-Os
2405382  449960  131748 2987090  2d9452 vmlinux-3.3.1
2408343  457332  125952 2991627  2da60b vmlinux-2.96-112

Most frequently saved instruction with gcc-3.3.1 -Os is nop.

This was on x86.  The -falign=2 version had -falign-functions=2
-falign-jumps=2 -falign-labels=2 -falign-loops=2.  I believe the
default with -Os is no alignment (i.e. -falign-*=0).

I benchmarked those compilers/options on a K6/2.  You could wade
through http://home.earthlink.net/~rwhron/kernel/bigbox.html
to see all the results.  

Quick summary:
gcc-3.3.1 -Os -falign=2 was best for most LMbench tests.  
For other benchmarks that wasn't always true.  K6/2 has small
L1 cache (32+32K)  L2 cache is 1M, but not much faster than RAM
on my box.

These generalizations can be made:
1) gcc-3.3.1 -Os kernel code is about 10% smaller than gcc-2.96 -Os.
2) Actual memory savings is not 10%, because dynamic structure
   sizes don't change.
3) gcc-3.3.1 takes significantly longer to compile source.

YMMV

-- 
Randy Hron
http://home.earthlink.net/~rwhron/kernel/bigbox.html


             reply	other threads:[~2003-09-25  2:19 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-25  2:22 rwhron [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-09-25  4:54 Minimizing the Kernel rwhron
2003-09-24 17:32 Andrzej Krzysztofowicz
2003-09-24 22:39 ` Timothy Miller
2003-09-24 16:32 Scott Robert Ladd
2003-09-24 16:39 ` Matt Heler
2003-09-24 17:13   ` Maciej Soltysiak
2003-09-24 18:21     ` Valdis.Kletnieks

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030925022218.GA20302@rushmore \
    --to=rwhron@earthlink.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=solt@dns.toxicfilms.tv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.