netdev
[Top] [All Lists]

Re: RFC: [2.6 patch] disallow modular IPv6

To: Adrian Bunk <bunk@xxxxxxxxx>
Subject: Re: RFC: [2.6 patch] disallow modular IPv6
From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxx>
Date: Tue, 30 Sep 2003 12:04:31 -0300
Cc: "David S. Miller" <davem@xxxxxxxxxx>, netdev@xxxxxxxxxxx, pekkas@xxxxxxxxxx, lksctp-developers@xxxxxxxxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
In-reply-to: <20030930133729.GJ295@xxxxxxxxx>
Mail-followup-to: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxx>, Adrian Bunk <bunk@xxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxx>, netdev@xxxxxxxxxxx, pekkas@xxxxxxxxxx, lksctp-developers@xxxxxxxxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
Organization: Conectiva S.A.
References: <20030928225941.GW15338@xxxxxxxxx> <20030928231842.GE1039@xxxxxxxxxxxxxxxx> <20030928232403.GX15338@xxxxxxxxx> <20030928233909.GG1039@xxxxxxxxxxxxxxxx> <20030929001439.GY15338@xxxxxxxxx> <20030929003229.GM1039@xxxxxxxxxxxxxxxx> <20030929221129.7689e088.davem@xxxxxxxxxx> <20030930133729.GJ295@xxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.5.4i
Em Tue, Sep 30, 2003 at 03:37:29PM +0200, Adrian Bunk escreveu:
> On Mon, Sep 29, 2003 at 10:11:29PM -0700, David S. Miller wrote:
> > On Sun, 28 Sep 2003 21:32:30 -0300
> > Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxx> wrote:
> > 
> > > Em Mon, Sep 29, 2003 at 02:14:39AM +0200, Adrian Bunk escreveu:
> > > > On Sun, Sep 28, 2003 at 08:39:10PM -0300, Arnaldo Carvalho de Melo 
> > > > wrote:
> > > > What about the following solution (the names and help texts for the
> > > > config options might not be optimal, I hope you understand the
> > > > intention):
> > > > 
> > > > config IPV6_SUPPORT
> > > >         bool "IPv6 support"
> > > > 
> > > > config IPV6_ENABLE
> > > >         tristate "enable IPv6"
> > > >         depends on IPV6_SUPPORT
> > > > 
> > > > IPV6_SUPPORT changes structs etc. and IPV6_ENABLE is responsible for 
> > > > ipv6.o .
> > > 
> > > Humm, and the idea is? This seems confusing, could you elaborate on why 
> > > such
> > > scheme is a good thing?
> > 
> > I think the idea is totally broken.  At first, Adrian comments that
> > changing the layout of structs based upon a config option is broken,
> > then he proposes a config option that does nothing except change the
> > layout of structures.
> > 
> > The current situation is perfectly fine.
> 
> I did perhaps express my opinion not clearly.
> 
> My personal opinions:
> 
> It's OK that setting an option to y changes structs or whatever else in 
> the kernel.
> 
> It's not OK if adding a module changes the layout of structs compiled 
> into the kernel.
> 
> Modules have many advantages, one advantage is e.g. that they allow 
> generic distribution kernels without resulting in huge kernel images.
> 
> Another advantage is that you can later add modules to a running kernel, 
> you can compile a module for your kernel and insert it without rebooting 
> the machine. This is currently not possible with moduler IPv6.
> 
> That was my personal opinion.
> 
> My opinions seem to be very close to the opinions of David Woodhouse, so 
> there's no need to repeat your discussion.

And just for the record, as a matter of taste I'd like to see all #ifdefs in
structs to disappear, look at what I did to struct sock in 2.5 and look at
struct sock (include/net/sock.h) in 2.4: no #ifdefs where there was a ton,
what I disagree is to make IPV6 not to be built as a module, that would harm
generic kernels, what I said was that this has to be fixed properly, this
requires time and we are too late in 2.6 for such bigger changes, as this is
not just #ifdefs in structs, it is #ifdefs in the IPV4 code, etc.

Lets revisit this in 2.7.

- Arnaldo

For the record: I did an audit in 99% of the headers in the linux source tree,
#ifdefs in structs are mostly just for: CONFIG_PROCFS, DEBUG, NETFILTER and
IPV6, and just a few.

<Prev in Thread] Current Thread [Next in Thread>