Re: [patch 03/26] Dynamic kernel command-line - arm

Alon Bar-Lev
2007-01-22T20:31:51Z

Hello Andrew,

Can I do anything more in order to be closer to merge?
Some general comments... or should I CC other people etc...
I submitted this several times but got almost no architecture to ACK.

I just don't know how we can progress with this issue... All we wanted
is to break the 256 limit in x86...

Best Regards,
Alon Bar-Lev.

On 1/22/07, Andrew Morton <akpm@osdl.org> wrote:
> > On Thu, 18 Jan 2007 15:23:26 +0000 Russell King <rmk+lkml@arm.linux.org.uk> wrote:
> > On Thu, Jan 18, 2007 at 04:31:51PM +0100, Tomas Carnecky wrote:
> > > Russell King wrote:
> > > > On Thu, Jan 18, 2007 at 01:58:52PM +0100, Bernhard Walle wrote:
> > > >> -static char command_line[COMMAND_LINE_SIZE];
> > > >> +static char __initdata command_line[COMMAND_LINE_SIZE];
> > > >
> > > > Uninitialised data is placed in the BSS. Adding __initdata to BSS
> > > > data causes grief.
> > > >
> > >
> > > Static variables are implicitly initialized to zero. Does that also
> > > count as initialization?
> >
> > No. As I say, they're placed in the BSS. The BSS is zeroed as part of
> > the C runtime initialisation.
>
> I don't understand the objection. With the above change, command_line[]
> will end up consuming COMMAND_LINE_SIZE bytes of .data.init and will be
> reliably initialized to all-zeros by the compiler (won't it?)
>
> > If you want to place a variable in a specific section, it must be
> > explicitly initialised. Eg,
> >
> > static char __initdata command_line[COMMAND_LINE_SIZE] = "";
> >
> > However, there is a bigger question here: that is the tradeoff between
> > making this variable part of the on-disk kernel image, but throw away
> > the memory at runtime, or to leave it in the BSS where it will not be
> > part of the on-disk kernel image, but will not be thrown away at
> > runtime.
>
> Yes, it'll take some space in vmlinux. We could perhaps create a new
> __initbss to prevent that, I assume.
>
>