[Devel] [PATCH][NETNS] Move some code into __init section when CONFIG_NET_NS=n

David Miller davem at davemloft.net
Mon Oct 8 00:17:16 PDT 2007


From: Alexey Dobriyan <adobriyan at sw.ru>
Date: Thu, 4 Oct 2007 18:02:02 +0400

> On Thu, Oct 04, 2007 at 05:54:11PM +0400, Pavel Emelyanov wrote:
> > With the net namespaces many code leaved the __init section,
> > thus making the kernel occupy more memory than it did before.
> > Since we have a config option that prohibits the namespace
> > creation, the functions that initialize/finalize some netns
> > stuff are simply not needed and can be freed after the boot.
> > 
> > Currently, this is almost not noticeable, since few calls
> > are no longer in __init, but when the namespaces will be
> > merged it will be possible to free more code. I propose to 
> > use the __net_init, __net_exit and __net_initdata "attributes"
> > for functions/variables that are not used if the CONFIG_NET_NS
> > is not set to save more space in memory.
> 
> > +#ifdef CONFIG_NET_NS
> > +#define __net_init
> > +#define __net_exit
> > +#define __net_initdata
> > +#else
> > +#define __net_init	__init
> > +#define __net_exit	__exit
> > +#define __net_initdata	__initdata
> > +#endif
> 
> Yet another set of double-underscored section annotations is the last thing
> that is needed, methinks. :)

I'm not so sure.  I think double-underscores are a powerful deterrant
for developers.  Over time folks have learned that this prefix
in an interface name means "semantics are non-trivial, use with
care" and that definitely applies to init sections.

I'm going to apply Pavel's patch, if you want to touch it up do so
as a followon patch, thanks!




More information about the Devel mailing list