2008-08-08 00:53:31

by David Lang

[permalink] [raw]
Subject: why are namespaces required?

I am taking the time to create a minimal config for some new hardware with
2.6.25.15 and noticed that CONFIG_NAMESPACES is forced to Yes unless
embeded is selected (at which time it becomes configurable)

why are namespaces required?

David Lang


2008-08-08 01:10:43

by David Lang

[permalink] [raw]
Subject: Re: why are namespaces required?

On Thu, 7 Aug 2008, [email protected] wrote:

> I am taking the time to create a minimal config for some new hardware with
> 2.6.25.15 and noticed that CONFIG_NAMESPACES is forced to Yes unless embeded
> is selected (at which time it becomes configurable)
>
> why are namespaces required?

as a follow up, when enabling embedded mode, it defaults to everything
enabled, including the option to 'disable heap randomization'

this should be changed to 'enable heap randomization' so that it can
default to on line everything else (with the assumption being that mearly
checking the option to be able to select the embeded menu doesn't change
the kernel behavior, you would have to disable something in that menu)

David Lang

2008-08-08 01:33:19

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: why are namespaces required?

On Thu, Aug 07, 2008 at 05:54:11PM -0700, [email protected] wrote:
> I am taking the time to create a minimal config for some new hardware with
> 2.6.25.15 and noticed that CONFIG_NAMESPACES is forced to Yes unless
> embeded is selected (at which time it becomes configurable)

For one thing, it doesn't directly control any code, CONFIG_PID_NS et al do.

> why are namespaces required?

They aren't required, just one more stupid config option.

And while we're at it, data from my usual config adding _NS options
one-by-one.

$ size vmlinux-000 vmlinux-uts-ns vmlinux-ipc-ns vmlinux-user-ns vmlinux-pid-ns
text data bss dec hex filename
2560804 217296 225280 3003380 2dd3f4 vmlinux-000
2560948 217296 225280 3003524 2dd484 vmlinux-uts-ns (+144)
2561452 217296 225280 3004028 2dd67c vmlinux-ipc-ns (+504)
2561805 217296 225280 3004381 2dd7dd vmlinux-user-ns (+353)
2562819 217300 225280 3005399 2ddbd7 vmlinux-pid-ns (+1018)

What amazing .text savings we have here.

2008-08-08 11:29:19

by Andi Kleen

[permalink] [raw]
Subject: Re: why are namespaces required?

Alexey Dobriyan <[email protected]> writes:
>
> And while we're at it, data from my usual config adding _NS options
> one-by-one.
>
> $ size vmlinux-000 vmlinux-uts-ns vmlinux-ipc-ns vmlinux-user-ns vmlinux-pid-ns
> text data bss dec hex filename
> 2560804 217296 225280 3003380 2dd3f4 vmlinux-000
> 2560948 217296 225280 3003524 2dd484 vmlinux-uts-ns (+144)
> 2561452 217296 225280 3004028 2dd67c vmlinux-ipc-ns (+504)
> 2561805 217296 225280 3004381 2dd7dd vmlinux-user-ns (+353)
> 2562819 217300 225280 3005399 2ddbd7 vmlinux-pid-ns (+1018)
>
> What amazing .text savings we have here.

Fully agreed. Probably a lot of these CONFIG options should be just dropped.
They are quite user unfriendly with very little gain.

It seems like there is unbounded growth in different name space options
which also implies unbounded CONFIG growth. At least they should be all
consolidated into a single CONFIG.

-Andi

2008-08-08 15:07:36

by David Lang

[permalink] [raw]
Subject: Re: why are namespaces required?

On Fri, 8 Aug 2008, Andi Kleen wrote:

> Alexey Dobriyan <[email protected]> writes:
>>
>> And while we're at it, data from my usual config adding _NS options
>> one-by-one.
>>
>> $ size vmlinux-000 vmlinux-uts-ns vmlinux-ipc-ns vmlinux-user-ns vmlinux-pid-ns
>> text data bss dec hex filename
>> 2560804 217296 225280 3003380 2dd3f4 vmlinux-000
>> 2560948 217296 225280 3003524 2dd484 vmlinux-uts-ns (+144)
>> 2561452 217296 225280 3004028 2dd67c vmlinux-ipc-ns (+504)
>> 2561805 217296 225280 3004381 2dd7dd vmlinux-user-ns (+353)
>> 2562819 217300 225280 3005399 2ddbd7 vmlinux-pid-ns (+1018)
>>
>> What amazing .text savings we have here.
>
> Fully agreed. Probably a lot of these CONFIG options should be just dropped.
> They are quite user unfriendly with very little gain.
>
> It seems like there is unbounded growth in different name space options
> which also implies unbounded CONFIG growth. At least they should be all
> consolidated into a single CONFIG.

from a size point of view the namespace options may not have much impact,
but what about performance? supporting namespaces requires additional
checking each time something is accessed (not to mention new codepaths).

how about consolodating all the namespace items under a single namespace
menu item so that they can all be disabled with one click, but people who
want fine-grained control over the different portions can still have it.

but (going back to my initial post) namespaces should not be forced on for
!embeded (or if they are then the options to disable namespaces should be
moved inside the embeded menu)

David Lang