lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081025143528.GA30900@uranus.ravnborg.org>
Date:	Sat, 25 Oct 2008 16:35:28 +0200
From:	Sam Ravnborg <sam@...nborg.org>
To:	Arjan van de Ven <arjan@...radead.org>
Cc:	torvalds@...ux-foundation.org, linux-kernel@...r.kernel.org,
	Matt Mackall <mpm@...enic.com>
Subject: Re: [pull request] getting rid of __cpuinit

On Sat, Oct 25, 2008 at 07:00:43AM -0700, Arjan van de Ven wrote:
> On Sat, 25 Oct 2008 09:59:25 +0200
> Sam Ravnborg <sam@...nborg.org> wrote:
> 
> > >    text	   data	    bss	    dec
> > > hex	filename 4618096	1358684	 848588
> > > 6825368	 682598	vmlinux.before 4619965
> > > 1356908	 848716	6825589  682675	vmlinux.after
> > 
> > The interesting number here is the size of the cpuinit/cpuexit
> > sections. cpuinit sections are discarded after init and cpuexit
> > sections are discarded if you do not use modules.
> > 
> > Can you share these numbers with us?
> 
> those sections don't actually exist because of the linker script 
> magic...
The code exist in both the before and after case, only in the after case
you cannot distingush them.
Your patch simply moves code/data from the cpuinit/exit sections
to .text/.data.

So if you look at the size of the cpuinit/exit sections in the
before case you get the real space saving that is lost in the
embedded case after your patch is applied.
The space savings that happen after early init.

As for the complexity of especially the cpuinit/exit stuff
the reason is that whoever started to use this mechnishm extended
the __cpuinit case to be:

a) Code that is only used during early init and can be discarded
b) Code that is only used for CPU hotplugging


The a) case is the traditional way __fooinit is used.
The b) case is usually handled by our configuration
but for CPU hotplugging it was misused.


Let us please get the numbers correct before we rip it out.

	Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ