From: Sam Ravnborg <sam@ravnborg.org>
To: Arjan van de Ven <arjan@infradead.org>
Cc: Adrian Bunk <bunk@kernel.org>,
James Bottomley <James.Bottomley@HansenPartnership.com>,
davem@davemloft.net, linux-scsi@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
"Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: [PATCH] kill hotplug init/exit section annotations
Date: Thu, 31 Jan 2008 20:41:13 +0100 [thread overview]
Message-ID: <20080131194113.GA3925@uranus.ravnborg.org> (raw)
In-Reply-To: <20080131104811.4c2d558f@laptopd505.fenrus.org>
On Thu, Jan 31, 2008 at 10:48:11AM -0800, Arjan van de Ven wrote:
> On Thu, 31 Jan 2008 19:34:25 +0100
> Sam Ravnborg <sam@ravnborg.org> wrote:
>
> > On Thu, Jan 31, 2008 at 09:48:01AM -0800, Arjan van de Ven wrote:
> > > On Thu, 31 Jan 2008 19:14:36 +0200
> > > Adrian Bunk <bunk@kernel.org> wrote:
> > > > > cpuhotplug is required for suspend/resume.
> > > >
> > > > Not on UP computers.
> > > >
> > >
> > > great! someone who still has one of those and uses a kernel without
> > > it. Can you look at your system.map and see how many kilobytes
> > > you've gained? Eg how many kilobytes are in these sections exactly?
> > I have one. A Atmel AT91 board equipped with an 9263.
> > So lets take a look at the defconfig build for the evaluation board.
> >
> >
> > o-arm/vmlinux.o: file format elf32-littlearm
> >
> > 0 .text 001cdefc 00000000 00000000 00000400 2**10
> > 2 .init.text 000165e8 00000000 00000000 001ce6c0 2**5
> > 26 .init.data 000032ec 00000000 00000000 002578cc 2**2
> >
> > ---
> >
> > 4 .devinit.text 00001558 00000000 00000000 001e5270 2**2
> > 9 .exit.text 00000bc8 00000000 00000000 001e8d2c 2**2
> > 10 .cpuinit.text 00000924 00000000 00000000 001e98f4 2**2
> > 11 .meminit.text 000004cc 00000000 00000000 001ea218 2**2
> > 12 .devexit.text 00000160 00000000 00000000 001ea6e4 2**2
> > 38 .cpuinit.data 00000040 00000000 00000000 0025afc0 2**2
> > 39 .meminit.data 0000000c 00000000 00000000 0025b000 2**2
> >
> >
> > __devinit alone gives a net win of 5464 bytes.
> > That is only ~3% of total .text size but this is non-swapable
> > memory where everything is worth it.
>
> now how much of this is lost again because you have to round the stuff to pagesize?
Lets take a look in the ARM vmlinux.lds.S file:
.text.head : {
_stext = .;
_sinittext = .;
*(.text.head)
}
.init : { /* Init code and data */
INIT_TEXT
_einittext = .;
__proc_info_begin = .;
*(.proc.info.init)
__proc_info_end = .;
__arch_info_begin = .;
*(.arch.info.init)
__arch_info_end = .;
__tagtable_begin = .;
*(.taglist.init)
__tagtable_end = .;
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__early_begin = .;
*(.early_param.init)
__early_end = .;
__initcall_start = .;
INITCALLS
__initcall_end = .;
__con_initcall_start = .;
*(.con_initcall.init)
__con_initcall_end = .;
__security_initcall_start = .;
*(.security_initcall.init)
__security_initcall_end = .;
#ifdef CONFIG_BLK_DEV_INITRD
. = ALIGN(32);
__initramfs_start = .;
usr/built-in.o(.init.ramfs)
__initramfs_end = .;
#endif
. = ALIGN(4096);
__per_cpu_start = .;
*(.data.percpu)
*(.data.percpu.shared_aligned)
__per_cpu_end = .;
#ifndef CONFIG_XIP_KERNEL
__init_begin = _stext;
INIT_DATA
. = ALIGN(4096);
__init_end = .;
Everything between _stext and __init_end are freed.
And we have two PAGESIZE alignmnets here - one for the percpu stuff
and the other to align the full area that can be freed.
So there is no special alignment for the __devinit stuff.
And there is no percpu data on ARM so that area is empty.
So it is one or two pages extra that are freed up.
Sam
next prev parent reply other threads:[~2008-01-31 19:41 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-30 20:03 [2.6 patch] scsi/qlogicpti.c section fixes Adrian Bunk
2008-01-30 21:00 ` James Bottomley
2008-01-30 21:20 ` Sam Ravnborg
2008-01-30 21:30 ` Adrian Bunk
2008-01-30 21:41 ` James Bottomley
2008-01-30 22:00 ` Sam Ravnborg
2008-01-30 22:32 ` Value of __*{init,exit} anotations? Adrian Bunk
2008-01-30 22:44 ` James Bottomley
2008-01-30 22:50 ` Russell King
2008-01-31 5:42 ` Andi Kleen
2008-01-31 7:44 ` Sam Ravnborg
2008-01-31 15:57 ` [PATCH] kill hotplug init/exit section annotations James Bottomley
2008-01-31 16:11 ` Arjan van de Ven
2008-01-31 16:21 ` Adrian Bunk
2008-01-31 17:07 ` Arjan van de Ven
2008-01-31 17:14 ` Adrian Bunk
2008-01-31 17:45 ` Chris Wedgwood
2008-01-31 17:55 ` Adrian Bunk
2008-01-31 18:32 ` Chris Wedgwood
2008-01-31 18:52 ` Geert Uytterhoeven
2008-01-31 17:48 ` Arjan van de Ven
2008-01-31 18:34 ` Sam Ravnborg
2008-01-31 18:48 ` Arjan van de Ven
2008-01-31 19:41 ` Sam Ravnborg [this message]
2008-01-30 22:28 ` [2.6 patch] scsi/qlogicpti.c section fixes Adrian Bunk
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=20080131194113.GA3925@uranus.ravnborg.org \
--to=sam@ravnborg.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=arjan@infradead.org \
--cc=bunk@kernel.org \
--cc=davem@davemloft.net \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=macro@linux-mips.org \
/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