From: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
To: Jamie Lokier <jamie@shareable.org>
Cc: Ricardo Bugalho <ricardo.b@zmail.pt>,
insecure@mail.od.ua, linux-kernel@vger.kernel.org
Subject: Re: nasm over gas?
Date: Sat, 13 Sep 2003 21:51:38 +0200 [thread overview]
Message-ID: <20030913195138.GA8890@wohnheim.fh-wedel.de> (raw)
In-Reply-To: <20030913192539.GE7404@mail.jlokier.co.uk>
On Sat, 13 September 2003 20:25:39 +0100, Jamie Lokier wrote:
> Jörn Engel wrote:
> > - Why has Alan measured faster kernels with -Os than with -O2?
> >
> > Code size *does* matter.
>
> That's not just i-cache pressure. It is partly a GCC problem, and
> it's possible -Os would run faster than -O2 even with no i-cache.
>
> I've observed -Os emitting exactly the same code as -O2 for some
> trivial functions, except that -O2 has a few extra redundant
> instructions.
>
> Obvious the _intent_ of -O2 is to compile for speed, but it's clear
> that GCC often emits trivially redundant instructions (like stack
> adjustments) that don't serve to speed up the program at all.
I haven't collected too many numbers, but the few I did collect show
-O2 code actually being faster than -Os, as long as you stay in
userspace and the code is small and loopy. It may get worse for large
run-once code, but I don't have numbers for that.
My explanation for Alans results is that nature of kernel code.
Usually, kernel code execution takes only a fraction of the cpu time,
so the user code run in between effectively flushes the cache. Each
system call causes near 100% cache misses, so smaller code is almost
always faster.
So even if your observations were wrong and gcc would create perfect
code for both -O2 and -Os, I wouldn't expect -O2 to be faster for
kernel code.
Jörn
--
More computing sins are committed in the name of efficiency (without
necessarily achieving it) than for any other single reason - including
blind stupidity.
-- W. A. Wulf
next prev parent reply other threads:[~2003-09-13 19:51 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-04 10:42 Fruhwirth Clemens
2003-09-04 12:32 ` Antonio Vargas
2003-09-04 13:44 ` Yann Droneaud
2003-09-04 14:05 ` Richard B. Johnson
2003-09-04 14:21 ` Sean Neakums
2003-09-04 14:33 ` Richard B. Johnson
2003-09-04 15:09 ` Yann Droneaud
2003-09-04 14:55 ` Yann Droneaud
2003-09-05 21:16 ` George Anzinger
2003-09-04 14:57 ` Michael Frank
2003-09-04 15:43 ` Fruhwirth Clemens
2003-09-04 22:28 ` insecure
2003-09-05 12:59 ` Michael Frank
2003-09-05 17:28 ` insecure
2003-09-05 17:45 ` Jörn Engel
2003-09-06 17:18 ` insecure
2003-09-07 18:49 ` Eric W. Biederman
2003-09-07 19:30 ` Jamie Lokier
2003-09-09 21:37 ` insecure
2003-09-09 21:34 ` insecure
2003-09-11 11:07 ` Ricardo Bugalho
2003-09-12 15:26 ` insecure
2003-09-12 17:27 ` Ricardo Bugalho
2003-09-12 22:17 ` Jörn Engel
2003-09-13 19:25 ` Jamie Lokier
2003-09-13 19:51 ` Jörn Engel [this message]
2003-09-11 14:03 ` Eric W. Biederman
2003-09-11 17:05 ` Jamie Lokier
2003-09-09 20:56 ` Pavel Machek
2003-09-05 13:27 ` Jesse Pollard
2003-09-05 23:51 ` Aaron Lehmann
2003-09-06 1:41 ` Valdis.Kletnieks
2003-09-04 14:56 ` Yann Droneaud
2003-09-05 11:42 ` Jörn Engel
2003-09-05 12:04 ` Fruhwirth Clemens
2003-09-05 12:37 ` Jörn Engel
2003-09-05 12:21 John Bradford
2003-09-05 12:25 John Bradford
2003-09-05 12:25 ` Fruhwirth Clemens
2003-09-06 22:08 ` Herbert Poetzl
2003-09-07 20:40 ` Fruhwirth Clemens
2003-09-05 13:20 ` Richard B. Johnson
2003-09-05 13:57 John Bradford
2003-09-05 15:39 ` Mehmet Ceyran
2003-09-06 20:24 ` David B. Stevens
[not found] <rZQN.83u.21@gated-at.bofh.it>
[not found] ` <saVL.7lR.1@gated-at.bofh.it>
[not found] ` <soFo.16a.1@gated-at.bofh.it>
[not found] ` <ssJa.6M6.25@gated-at.bofh.it>
[not found] ` <tcVB.rs.3@gated-at.bofh.it>
2003-09-08 12:03 ` Ihar 'Philips' Filipau
2003-09-08 13:53 ` Richard B. Johnson
2003-09-08 16:10 ` Jamie Lokier
2003-09-08 16:17 ` Jamie Lokier
2003-09-08 16:45 ` Ihar 'Philips' Filipau
2003-09-08 16:58 ` Jamie Lokier
2003-09-08 17:59 ` William Lee Irwin III
[not found] <snJB.8dk.25@gated-at.bofh.it>
[not found] ` <snTm.8qD.41@gated-at.bofh.it>
[not found] ` <sTpW.18Z.19@gated-at.bofh.it>
[not found] ` <teE5.2XZ.9@gated-at.bofh.it>
2003-09-08 12:07 ` Ihar 'Philips' Filipau
[not found] <tt0q.6Rc.17@gated-at.bofh.it>
[not found] ` <tt0r.6Rc.19@gated-at.bofh.it>
[not found] ` <tt0r.6Rc.21@gated-at.bofh.it>
[not found] ` <tt0r.6Rc.23@gated-at.bofh.it>
[not found] ` <tt0r.6Rc.25@gated-at.bofh.it>
[not found] ` <tt0q.6Rc.15@gated-at.bofh.it>
[not found] ` <tyCN.6RD.13@gated-at.bofh.it>
2003-09-08 20:08 ` Ihar 'Philips' Filipau
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=20030913195138.GA8890@wohnheim.fh-wedel.de \
--to=joern@wohnheim.fh-wedel.de \
--cc=insecure@mail.od.ua \
--cc=jamie@shareable.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ricardo.b@zmail.pt \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®