[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