linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Oliver Neukum <oliver@neukum.name>
To: robw@optonline.net, Aaron Lehmann <aaronl@vitelus.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: any chance of 2.6.0-test*?
Date: Mon, 13 Jan 2003 00:06:14 +0100	[thread overview]
Message-ID: <200301130006.14180.oliver@neukum.name> (raw)
In-Reply-To: <1042410897.1209.165.camel@RobsPC.RobertWilkens.com>

Am Sonntag, 12. Januar 2003 23:34 schrieb Rob Wilkens:
> On Sun, 2003-01-12 at 17:18, Aaron Lehmann wrote:
> > These are usually error conditions. If you inline them, you will have
> > to jump *over* them as part of the normal code path. You don't save
>
> You're wrong.  You wouldn't have to jump over them any more than you
> have to jump over the "goto" statement.  They would be where the goto
> statement is.  Instead of the goto you would have the function.

That exactly is the problem. If they are where the goto would be
they needlessly fill the CPU's pipeline, take up space in L1 and use
up bandwidth on the busses.
A goto is much shorter than a cleanup.

And you would have to jump. Any control structure will result in one
or more conditional jumps in the assembler code (or conditional instructions)

Turning "if (a) goto b;"  into a single branch instruction is trivial.
The best the compiler can do with
if (a) {
	cleanup();
	return err;
}
is putting the conditional code on the end of the function.

So in the best case the compiler can generate almost equivalent code
at a cost of maintainability.

> > any instructions, and you end up with a kernel which has much more
> > duplicated code and thus thrashes the cache more. It also makes the
>
> If that argument was taken to it's logical conclusion (and I did, in my
> mind just now), no one should add any code the grows the kernel at all.

Correct. If you mean that literally, you've grasped an important concept.
You grow the kernel only with good cause.

And you look where you add the code. Additional device drivers don't hurt.
A computed jump is still only one computed jump. Additional code in common
code paths of the core hurts a lot.
For the inner loops of core code there are two considerations, size and
reducing jumps.

	Regards
		Oliver


  parent reply	other threads:[~2003-01-12 22:58 UTC|newest]

Thread overview: 201+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-10 16:10 any chance of 2.6.0-test*? William Lee Irwin III
2003-01-10 16:28 ` Dave Jones
2003-01-10 16:41   ` Zwane Mwaikambo
2003-01-10 17:08     ` Dave Jones
2003-01-10 17:19 ` Alan Cox
2003-01-10 16:40   ` Jeff Garzik
2003-01-10 17:06   ` Dave Jones
2003-01-10 17:25     ` Jeff Garzik
2003-01-10 17:29     ` Linus Torvalds
2003-01-10 18:47       ` J.A. Magallon
2003-01-10 19:37         ` Matthew D. Pitts
2003-01-10 19:51         ` Jeff Garzik
2003-01-14  1:39       ` James H. Cloos Jr.
2003-01-15 21:46         ` [PATCH][RESEND w/ reasonable Subject] alsa before oss in Kconfig James H. Cloos Jr.
2003-01-10 18:16     ` any chance of 2.6.0-test*? Alan Cox
2003-01-10 17:37   ` Jochen Friedrich
2003-01-10 17:38     ` Linus Torvalds
2003-01-12  9:27   ` Greg KH
2003-01-12 16:55     ` Alan Cox
2003-01-12 17:05     ` Linus Torvalds
2003-01-12 17:17       ` Christoph Hellwig
2003-01-12 19:15         ` Linus Torvalds
2003-01-12 19:34           ` Rob Wilkens
2003-01-12 19:37             ` Rob Wilkens
2003-01-12 19:53               ` Tomas Szepe
2003-01-12 20:03                 ` Rob Wilkens
2003-01-13 15:43                   ` Terje Eggestad
2003-01-13 15:49                     ` Jens Axboe
2003-01-13 16:25                       ` Terje Eggestad
2003-01-13 16:26                         ` Jens Axboe
2003-01-13 16:41                           ` Terje Eggestad
2003-01-13 16:43                             ` Jens Axboe
2003-01-13 17:00                               ` Zwane Mwaikambo
2003-01-13 18:48                                 ` Jens Axboe
2003-01-13 22:14                                   ` Keith Owens
2003-01-13 22:42                                     ` John Levon
2003-01-13 22:49                                   ` Zwane Mwaikambo
2003-01-13 23:32                                     ` Valdis.Kletnieks
2003-01-13 23:43                                       ` Zwane Mwaikambo
2003-01-12 20:44                 ` Alan Cox
2003-01-12 20:45                 ` William Lee Irwin III
2003-01-13 13:14                   ` Bernd Schmidt
2003-01-12 21:22                 ` David Woodhouse
2003-01-18 13:04                 ` Folkert van Heusden
2003-01-12 19:38             ` Linus Torvalds
2003-01-12 19:59               ` Rob Wilkens
2003-01-12 20:18                 ` Valdis.Kletnieks
2003-01-12 20:23                   ` yodaiken
2003-01-12 20:26                   ` Tomas Szepe
2003-01-12 20:32                   ` Sean Neakums
2003-01-12 20:51                     ` Valdis.Kletnieks
2003-01-13  0:54                     ` Randy Dunlap
2003-01-12 20:46                   ` Kevin Puetz
2003-01-13  0:48                   ` Randy Dunlap
2003-01-18 13:07                   ` Folkert van Heusden
2003-01-12 20:20                 ` David Ford
2003-01-12 20:22                 ` Linus Torvalds
2003-01-12 20:33                   ` Robert Love
2003-01-12 20:33                     ` Linus Torvalds
2003-01-13 10:54                       ` Horst von Brand
2003-01-13 11:09                       ` Eric W. Biederman
2003-01-13 14:34                         ` Terje Eggestad
2003-01-13 23:23                         ` Bob Taylor
2003-01-12 20:48                   ` Rob Wilkens
2003-01-12 20:59                     ` Dimitrie O. Paun
2003-01-12 22:48                     ` any chance of 2.6.0-test*? -> goto example Willy Tarreau
2003-01-13  0:53                       ` Rob Wilkens
2003-01-13  1:31                         ` Willy Tarreau
2003-01-13 16:10                           ` Alexander Kellett
2003-01-14 10:36                             ` Helge Hafting
2003-01-12 23:11                     ` Coding style - (Was Re: any chance of 2.6.0-test*?) John Bradford
2003-01-13 11:07                     ` any chance of 2.6.0-test*? Helge Hafting
2003-01-13  3:30                   ` yodaiken
2003-01-12 21:29                 ` Rik van Riel
2003-01-13  0:03                 ` Scott Robert Ladd
2003-01-13  0:38                   ` Rob Wilkens
2003-01-13  3:06                     ` [OT] " J Sloan
2003-01-13 16:51                     ` Emiliano Gabrielli
2003-01-13  0:38                 ` Randy Dunlap
2003-01-12 19:41             ` Christoph Hellwig
2003-01-12 19:41               ` Rob Wilkens
2003-01-12 19:58                 ` David Ford
2003-01-12 20:07                   ` Rob Wilkens
2003-01-12 20:31                     ` Oliver Neukum
2003-01-12 20:34                     ` David Ford
2003-01-12 20:31             ` Robert Love
2003-01-12 21:02               ` Rob Wilkens
2003-01-12 21:15             ` Matti Aarnio
2003-01-12 21:27               ` Rob Wilkens
2003-01-12 21:40                 ` Rik van Riel
2003-01-12 21:44                   ` Rob Wilkens
2003-01-12 21:49                     ` Aaron Lehmann
2003-01-12 22:07                       ` Rob Wilkens
2003-01-12 22:18                         ` Aaron Lehmann
2003-01-12 22:34                           ` Rob Wilkens
2003-01-12 22:52                             ` Aaron Lehmann
2003-01-12 23:11                               ` Rob Wilkens
2003-01-12 23:31                                 ` Oliver Neukum
2003-01-12 23:39                                 ` Emiliano Gabrielli
2003-01-12 23:46                                   ` Rob Wilkens
2003-01-12 23:57                                     ` Emiliano Gabrielli
2003-01-13  0:08                                       ` Rob Wilkens
2003-01-13 16:02                                         ` Terje Eggestad
2003-01-12 22:53                             ` Sean Neakums
2003-01-12 23:06                             ` Oliver Neukum [this message]
2003-01-12 23:48                             ` Rik van Riel
2003-01-12 21:58                     ` Emiliano Gabrielli
2003-01-12 22:12                       ` Rob Wilkens
2003-01-12 22:29                         ` Olivier Galibert
2003-01-12 23:21                         ` Alan Cox
2003-01-12 22:12                     ` Oliver Neukum
2003-01-12 22:18                       ` Aaron Lehmann
2003-01-12 22:35                         ` Rob Wilkens
2003-01-13  8:15                     ` Jens Axboe
2003-01-12 21:49                 ` David Ford
2003-01-13 19:22                   ` [OffTopic] [apology] " Rob Wilkens
2003-01-12 21:59                 ` Adam Kropelin
2003-01-12 22:21                   ` Rob Wilkens
2003-01-12 22:33                     ` Tomas Szepe
2003-01-12 22:36                     ` Emiliano Gabrielli
2003-01-12 22:38                     ` Oliver Neukum
2003-01-12 22:42                     ` romieu
2003-01-13  1:06                     ` Randy Dunlap
2003-01-13  1:21                       ` Rob Wilkens
2003-01-13  1:51                         ` Nuno Monteiro
2003-01-13  2:19                           ` Rob Wilkens
2003-01-13  2:51                             ` Marcelo Pacheco
2003-01-13  3:37                               ` Rob Wilkens
2003-01-13  4:53                               ` Billy Rose
2003-01-13  3:06                             ` Jochen Striepe
2003-01-13  3:40                               ` Rob Wilkens
2003-01-13  9:45                             ` Matti Aarnio
2003-01-13  3:48                         ` Ryan Anderson
2003-01-13  4:37                   ` Billy Rose
2003-01-12 22:06                 ` Oliver Neukum
2003-01-12 22:22                   ` Rob Wilkens
2003-01-12 22:43                     ` Oliver Neukum
2003-01-12 22:51                       ` Rob Wilkens
2003-01-12 23:00                         ` Robert Love
2003-01-12 23:16                           ` Rob Wilkens
2003-01-12 23:16                           ` Nicolas Pitre
2003-01-12 23:05                         ` Emiliano Gabrielli
2003-01-12 23:23                           ` Oliver Neukum
2003-01-12 23:45                             ` Emiliano Gabrielli
2003-01-12 23:45                             ` Emiliano Gabrielli
2003-01-13 20:01                             ` Horst von Brand
2003-01-12 23:16                         ` Oliver Neukum
2003-01-13  2:00                         ` Ryan Anderson
2003-01-13  3:09                           ` Rob Wilkens
2003-01-14  2:13                             ` Rik van Riel
2003-01-12 22:58                     ` Robert Love
2003-01-12 22:28                 ` Matti Aarnio
2003-01-13  1:26                 ` David Lang
2003-01-13  2:00                   ` William Lee Irwin III
2003-01-13 11:08                 ` How to avoid the woord 'goto' (was Re: any chance of 2.6.0-test*?) Bernd Petrovitsch
2003-01-13 14:56                   ` Rob Wilkens
2003-01-13 22:02                 ` any chance of 2.6.0-test*? Val Henson
2003-01-13 10:32             ` gotos in kernel [Was: Re: any chance of 2.6.0-test*?] Horst von Brand
2003-01-13 14:53               ` Rob Wilkens
2003-01-13 13:08             ` any chance of 2.6.0-test*? Dave Jones
2003-01-13 13:40               ` Andrew Walrond
2003-01-13 13:49               ` Oliver Neukum
2003-01-14  6:52               ` Bruce Harada
2003-01-14  7:12                 ` Brian Tinsley
2003-01-13 15:23             ` Richard B. Johnson
2003-01-13  6:23           ` Greg KH
2003-01-13 16:35             ` Linus Torvalds
2003-01-13 18:33               ` Alan Cox
2003-01-13 18:01                 ` Linus Torvalds
2003-01-13 19:17                 ` Andrew McGregor
2003-01-12 17:37       ` Russell King
2003-01-13  1:08 ` Michael Kingsbury
2003-01-13  1:52   ` William Lee Irwin III
2003-01-10 16:39 Shawn Starr
2003-01-10 17:00 ` Dave Jones
2003-01-11 20:10 ` Horst von Brand
     [not found] <20030110144325.T26554@parcelfarce.linux.theplanet.co.uk>
     [not found] ` <20030110.130023.08256524.davem@redhat.com>
2003-01-10 21:48   ` Matthew Wilcox
     [not found] <20030110165441$1a8a@gated-at.bofh.it>
     [not found] ` <20030110165505$38d9@gated-at.bofh.it>
2003-01-11 12:27   ` Andi Kleen
2003-01-11 13:01     ` Russell King
2003-01-11 13:13       ` Andi Kleen
2003-01-11 14:39     ` Alan Cox
2003-01-11 14:06       ` Andi Kleen
2003-01-11 15:31         ` Alan Cox
2003-01-11 15:25           ` Andi Kleen
2003-01-11 19:18             ` Alan Cox
2003-01-13  3:33               ` Paul Mackerras
2003-01-13 14:59                 ` Alan Cox
2003-01-13 18:36                   ` Benjamin Herrenschmidt
2003-01-19 16:05         ` Pavel Machek
2003-01-12 18:02 David Truog
     [not found] <3C6BEE8B5E1BAC42905A93F13004E8AB017DE60F@mailse01.axis.se>
2003-01-12 20:58 ` Rob Wilkens
2003-01-13 20:37 Manfred Spraul
2003-01-13 22:37 Albert D. Cahalan
     [not found] <20030112201009$1534@gated-at.bofh.it>
     [not found] ` <20030112204005$7287@gated-at.bofh.it>
2003-01-14 19:53   ` Kai Henningsen
2003-01-15 15:07     ` Scott Robert Ladd
2003-01-15 15:18       ` Marcelo Pacheco
2003-01-18 10:12       ` Kai Henningsen
2003-01-15 19:44     ` Werner Almesberger
     [not found] <20030112205008$7a5d@gated-at.bofh.it>
     [not found] ` <20030113112009$52fd@gated-at.bofh.it>
     [not found]   ` <20030113144017$68de@gated-at.bofh.it>
2003-01-14 20:01     ` Kai Henningsen
     [not found] <20030112193012$71b2@gated-at.bofh.it>
     [not found] ` <20030113020015$6883@gated-at.bofh.it>
     [not found]   ` <20030113023015$66a6@gated-at.bofh.it>
     [not found]     ` <20030113030011$6563@gated-at.bofh.it>
     [not found]       ` <20030113035007$451e@gated-at.bofh.it>
2003-01-14 20:18         ` Kai Henningsen
     [not found] <20030113001006$005c@gated-at.bofh.it>
     [not found] ` <20030113005007$4766@gated-at.bofh.it>
     [not found]   ` <20030113170014$20a1@gated-at.bofh.it>
2003-01-18 10:21     ` Kai Henningsen

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=200301130006.14180.oliver@neukum.name \
    --to=oliver@neukum.name \
    --cc=aaronl@vitelus.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robw@optonline.net \
    /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;
as well as URLs for NNTP newsgroup(s).