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.
next prev parent 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®