mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Richard B. Johnson" <root@chaos.analogic.com>
To: Vladimir Kondratiev <vladimir.kondratiev@intel.com>
Cc: "Kevin P. Fleming" <kpfleming@backtobasicsmgmt.com>,
	Mark Hahn <hahn@physics.mcmaster.ca>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Martin Mares <mj@ucw.cz>
Subject: Re: PCI Express support for 2.4 kernel
Date: Mon, 15 Dec 2003 11:55:53 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.4.53.0312151150090.10342@chaos> (raw)
In-Reply-To: <3FDDE39E.1050300@intel.com>

On Mon, 15 Dec 2003, Vladimir Kondratiev wrote:

> Kevin,
> there is no black magic. Compilation goes .c -> .s -> .o; if assembly
> have nothing added, object have not as well.
> To be sure, I did the following:
>
> [tmp]$ gcc -c t.c; objdump -xs t.o
>
> t.o:     file format elf32-i386
> t.o
> architecture: i386, flags 0x00000010:
> HAS_SYMS
> start address 0x00000000
>
> Sections:
> Idx Name          Size      VMA       LMA       File off  Algn
>   0 .text         00000000  00000000  00000000  00000034  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>   1 .data         00000000  00000000  00000000  00000034  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>   2 .bss          00000008  00000000  00000000  00000034  2**2
>                   ALLOC
>   3 .note.GNU-stack 00000000  00000000  00000000  00000034  2**0
>                   CONTENTS, READONLY
>   4 .comment      00000033  00000000  00000000  00000034  2**0
>                   CONTENTS, READONLY
> SYMBOL TABLE:
> 00000000 l    df *ABS*    00000000 t.c
> 00000000 l    d  .text    00000000
> 00000000 l    d  .data    00000000
> 00000000 l    d  .bss    00000000
> 00000000 l     O .bss    00000004 a1
> 00000004 l     O .bss    00000004 a2
> 00000000 l    d  .note.GNU-stack    00000000
> 00000000 l    d  .comment    00000000
>
>
> Contents of section .text:
> Contents of section .data:
> Contents of section .note.GNU-stack:
> Contents of section .comment:
>  0000 00474343 3a202847 4e552920 332e332e  .GCC: (GNU) 3.3.
>  0010 31203230 30333038 31312028 52656420  1 20030811 (Red
>  0020 48617420 4c696e75 7820332e 332e312d  Hat Linux 3.3.1-
>  0030 312900                               1).
>
> Kevin P. Fleming wrote:
>
> > Vladimir Kondratiev wrote:
> >
> >> To illustrate zero cost, I did the following test:
> >> [tmp]$ cat t.c; gcc -S t.c; cat t.s
> >> static int a1=0;
> >> static int a2;
> >> /* EOF */
> >>
> >>    .file    "t.c"
> >>    .local    a1
> >>    .comm    a1,4,4
> >>    .local    a2
> >>    .comm    a2,4,4
> >>    .section    .note.GNU-stack,"",@progbits
> >>    .ident    "GCC: (GNU) 3.3.1 20030811 (Red Hat Linux 3.3.1-1)"
> >>
> >> As you can see, assembly code is identical, compiler did this trivial
> >> optimization for me.
> >
> >
> > You've missed the point, though. Initializing a static variable to
> > zero causes space to be consumed in the resulting object file (not
> > instruction code to be generated). This is wasted space, because if
> > you don't initialize to zero the variable will be allocated out of
> > space that is _automatically_ zeroed for you. This reduces the size of
> > the kernel image by not filling it with unnecessary zeroes.
> >

Easy way to remember is that if you have either a static or a global
variable that is initialized, it will be in the .data segment and,
therefore take up space in the executable. If it is not initialized,
it will be in the .bss segment, automatically zeroed by the loader.
In this case, the executable contains length information, not the data.
Local variables are never initialized unless there's an '=' in the
code.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.22 on an i686 machine (797.90 BogoMips).
            Note 96.31% of all statistics are fiction.



  reply	other threads:[~2003-12-15 16:54 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.44.0312150917170.32061-100000@coffee.psychology.mcmaster.ca>
2003-12-15 15:52 ` Vladimir Kondratiev
2003-12-15 16:08   ` Kevin P. Fleming
2003-12-15 16:38     ` Vladimir Kondratiev
2003-12-15 16:55       ` Richard B. Johnson [this message]
2003-12-15 17:08         ` Tomas Szepe
2003-12-15 18:03           ` Richard B. Johnson
2003-12-15 18:15             ` Tomas Szepe
2003-12-15 18:35               ` Richard B. Johnson
2003-12-15 18:43                 ` Keith Owens
2003-12-15 18:45                 ` Tomas Szepe
2003-12-15 17:24         ` Vladimir Kondratiev
2003-12-15 17:22           ` Randy.Dunlap
2003-12-15 18:16           ` Greg KH
2003-12-15 18:20           ` Richard B. Johnson
2003-12-15 17:09   ` Keith Owens
2003-12-15 17:38     ` Tomas Szepe
2003-12-15 18:16       ` Keith Owens
2003-12-15 18:23         ` Tomas Szepe
     [not found] <12InT-wQ-5@gated-at.bofh.it>
     [not found] ` <135Nw-5gv-3@gated-at.bofh.it>
     [not found]   ` <137wc-q1-23@gated-at.bofh.it>
2003-12-15 21:56     ` Andi Kleen
2003-12-15 22:48       ` Vladimir Kondratiev
2003-12-15 23:06         ` Andi Kleen
2003-12-15 23:14         ` Greg KH
2003-12-15 20:08 Nakajima, Jun
     [not found] <12KJ6-4F2-13@gated-at.bofh.it>
     [not found] ` <12Lvu-5X5-5@gated-at.bofh.it>
     [not found]   ` <12XQ2-7Vs-9@gated-at.bofh.it>
2003-12-15 10:17     ` Andi Kleen
     [not found]     ` <12YsA-nt-1@gated-at.bofh.it>
     [not found]       ` <130kQ-3A0-13@gated-at.bofh.it>
     [not found]         ` <130Xy-4Ia-3@gated-at.bofh.it>
     [not found]           ` <131Ac-5Qy-3@gated-at.bofh.it>
     [not found]             ` <137cD-8eg-9@gated-at.bofh.it>
     [not found]               ` <13kD2-1kF-11@gated-at.bofh.it>
2003-12-16 17:44                 ` Andi Kleen
     [not found]                 ` <13r1S-3FB-11@gated-at.bofh.it>
     [not found]                   ` <13vyg-43O-7@gated-at.bofh.it>
2003-12-16 22:18                     ` Andi Kleen
     [not found]                 ` <13qIi-31G-1@gated-at.bofh.it>
     [not found]                   ` <13DvZ-2RY-9@gated-at.bofh.it>
     [not found]                     ` <13DFw-3a8-9@gated-at.bofh.it>
     [not found]                       ` <13DPq-3s4-7@gated-at.bofh.it>
     [not found]                         ` <13Fem-6iy-7@gated-at.bofh.it>
     [not found]                           ` <13SY1-35z-19@gated-at.bofh.it>
2003-12-17 23:22                             ` Andi Kleen
2003-12-17 23:38                               ` Alan Cox
     [not found] ` <12XQc-7Vs-29@gated-at.bofh.it>
     [not found]   ` <12Z5u-1tG-11@gated-at.bofh.it>
2003-12-15 14:58     ` Andi Kleen
2003-12-15 15:40       ` Vladimir Kondratiev
     [not found] <3FDCA569.5070006@pobox.com>
2003-12-15  4:47 ` Pete Zaitcev
  -- strict thread matches above, loose matches on Subject: below --
2003-12-14 20:00 Vladimir Kondratiev
2003-12-14 20:46 ` Jeff Garzik
2003-12-15 10:01   ` Vladimir Kondratiev
2003-12-15 10:31     ` Gabriel Paubert
2003-12-15 12:44       ` Vladimir Kondratiev
2003-12-15 13:15         ` Arjan van de Ven
2003-12-15 13:58           ` Vladimir Kondratiev
2003-12-15 14:31             ` Arjan van de Ven
2003-12-15 14:44             ` Brian Gerst
2003-12-15 18:40             ` Greg KH
2003-12-15 19:23             ` Alan Cox
2003-12-15 20:00             ` Linus Torvalds
2003-12-16 10:20               ` Vladimir Kondratiev
2003-12-16 16:47                 ` Linus Torvalds
2003-12-17  6:30                   ` Vladimir Kondratiev
2003-12-17  6:46                     ` Linus Torvalds
2003-12-17  6:55                       ` Jeff Garzik
2003-12-17  7:24                         ` Vladimir Kondratiev
2003-12-17 16:17                           ` Linus Torvalds
2003-12-17  8:22                         ` Arjan van de Ven
2003-12-17 10:35                           ` Martin Mares
2003-12-17 23:06                           ` Alan Cox
2003-12-17 10:08                       ` Geert Uytterhoeven
2003-12-17 15:54                         ` Linus Torvalds
2003-12-17 16:14                           ` Geert Uytterhoeven
2003-12-17 17:44                           ` Dan Hopper
2003-12-17 18:14                             ` Vladimir Kondratiev
2003-12-17 21:44                         ` Martin Mares
2003-12-16 17:10                 ` Jeff Garzik
2003-12-16 17:48                   ` Arjan van de Ven
2003-12-16 17:55                     ` Jeff Garzik
2003-12-16 22:39                     ` Vladimir Kondratiev
2003-12-17  0:12                       ` Richard B. Johnson
2003-12-16 21:59                   ` Vladimir Kondratiev
2003-12-16 17:45                 ` Greg KH
2003-12-16 22:14                   ` Vladimir Kondratiev
2003-12-17 10:05                     ` Geert Uytterhoeven
2003-12-15 15:57       ` Vladimir Kondratiev
2003-12-15 10:42     ` Martin Mares
2003-12-15 10:07 ` Greg KH
2003-12-15 11:20   ` Vladimir Kondratiev
2003-12-14 17:28 Vladimir Kondratiev
2003-12-15  7:48 ` Christoph Hellwig
2003-12-15 18:26 ` Linus Torvalds
2003-12-15 20:03   ` Jeff Garzik
2003-12-15 22:00     ` Linus Torvalds
2003-12-16  4:53       ` Jeff Garzik
2003-12-15 20:21   ` Vladimir Kondratiev
2003-12-15 20:36     ` Jeff Garzik

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=Pine.LNX.4.53.0312151150090.10342@chaos \
    --to=root@chaos.analogic.com \
    --cc=hahn@physics.mcmaster.ca \
    --cc=kpfleming@backtobasicsmgmt.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mj@ucw.cz \
    --cc=vladimir.kondratiev@intel.com \
    /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®