[2.6 patch] remove CONFIG_EXPERIMENTAL

Previous thread: bonding sysfs output by Wagner Ferenc on Sunday, November 25, 2007 - 11:12 am. (9 messages)

Next thread: [2.6 patch] make I/O schedulers non-modular by Adrian Bunk on Sunday, November 25, 2007 - 12:18 pm. (15 messages)
To: <linux-kernel@...>
Date: Sunday, November 25, 2007 - 12:16 pm

This patch removes the EXPERIMENTAL option and all dependencies on
EXPERIMENTAL because they are pointless.

Complete rationale:
- Many people and all distributions are currently forced to enable
CONFIG_EXPERIMENTAL since the options for many device drivers depend
on this option.
I have yet to see someone not being able to install his favorite
distribution on his computer only because the distribution did choose
to disable all SATA drivers with dependencies on EXPERIMENTAL in their
kernels...
- History has shown that often the dependency on EXPERIMENTAL is not
removed when the code has proven usable.
As an example, is our NFSv4 support really still in an
"alpha-test phase" [1], or is it already ready for being used?
I don't know the answer in this specific case, but I wouldn't answer
"still in an alpha-test phase" only based on the fact that the NFSv4
options still depend on EXPERIMENTAL.
- It might have been differently 10 years ago, but today everything that
is available in a released kernel should also be in a usable state.

[1] quoted from the CONFIG_EXPERIMENTAL help text

Some subsystem maintainers might want to add (and maintain!) subsystem
specific options FOOBAR_EXPERIMENTAL limited to their subsystem instead.

This patch does not touch "EXPERIMENTAL" strings in prompts - there was
anyway no strong relation in any direction between prompts claiming an
option was experimental and actual dependencies on EXPERIMENTAL...

For avoiding clashes with other patches, this patch temporarily makes
CONFIG_EXPERIMENTAL available as always enabled option.

---

This patch has been sent on:
- 17 Nov 2007

Documentation/DocBook/kernel-hacking.tmpl | 7 --
Documentation/lguest/lguest.txt | 4 -
arch/alpha/Kconfig | 1
arch/arm/Kconfig | 10 +--
arch/frv/Kconfig | 1
arch/ia64/Kconfig | 6 +-
arch/m68k/Kconfig ...

To: Adrian Bunk <bunk@...>
Cc: <linux-kernel@...>
Date: Wednesday, November 28, 2007 - 8:38 am

Unfortunately I have to agree. The only think it does is confusing
users, when they forget to enable it.
--
Krzysztof Halasa
-

To: Adrian Bunk <bunk@...>
Cc: <linux-kernel@...>
Date: Monday, November 26, 2007 - 8:27 am

I don't think this is good idea. But perhaps 'experimental' should be
removed from stuff that is really stable these days, like SATA?

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

To: Pavel Machek <pavel@...>
Cc: Adrian Bunk <bunk@...>, <linux-kernel@...>
Date: Monday, November 26, 2007 - 11:44 pm

I suspect that given the "once it escapes, it's cast in stone" view we take
towards user-visible API/etc, there isn't much *real* room for an
'EXPERIMENTAL' flag anymore. Most of the usage should probably be confined to
individual drivers, where all we should need is a 'default n' and suitable
warning verbiage in the Kconfig file warning about the driver eating your
filesystems and small animals for breakfast. We certainly shouldn't have
one big flag for *all* in-progress drivers - I don't need to accidentally
enable a busticated ethernet driver because I want a USB widget. And if
you're worried about people accidentally enabling it, then *each driver*
should have a 'Do you really mean it?' flag with *opposite* sense (so
that 'make allyesconfig' doesn't turn it on by accident).

Anything bigger than that, we probably want to redefine 'experimental'
as "it doesn't escape from -mm to mainline till it's ready".

To: <Valdis.Kletnieks@...>
Cc: Pavel Machek <pavel@...>, Adrian Bunk <bunk@...>, <linux-kernel@...>
Date: Tuesday, November 27, 2007 - 12:34 am

On Mon, Nov 26, 2007 at 10:44:44PM -0500, Valdis.Kletnieks@vt.edu wrote:

> I suspect that given the "once it escapes, it's cast in stone" view we take
> towards user-visible API/etc, there isn't much *real* room for an
> 'EXPERIMENTAL' flag anymore. Most of the usage should probably be confined to
> individual drivers, where all we should need is a 'default n' and suitable
> warning verbiage in the Kconfig file warning about the driver eating your
> filesystems and small animals for breakfast.

Potential corruptors are usually flagged with (DANGEROUS) in the text,
(One may argue that they shouldn't have escaped -mm)

> We certainly shouldn't have
> one big flag for *all* in-progress drivers - I don't need to accidentally
> enable a busticated ethernet driver because I want a USB widget.

So no ethernet driver at all is better than a broken but mostly working one?
Again if it isn't mostly working, it shouldn't have escaped -mm

Dave

--
http://www.codemonkey.org.uk
-

To: Dave Jones <davej@...>
Cc: Pavel Machek <pavel@...>, Adrian Bunk <bunk@...>, <linux-kernel@...>
Date: Tuesday, November 27, 2007 - 2:13 am

No.

The point is that using the *same* flag to control whether I can select
a mostly-working USB widget and a mostly-working Ethernet driver is Just Wrong.

Those of us who live in the US may have seen the insurance commercial where
Joe Sixpack is asking "Honey, what does this switch do?" "I don't know" flip,
flip, flip with no obvious impact. Meanwhile, 3 houses down, somebody's car
is being beat up by a garage door opener going open/close/open/close...

I enable EXPERIMENTAL to enable my USB widget. When the next release comes out,
I then go and do something like a 'make [foo]config'. What indication do I
get that now-selectable device drivers are 'depends on EXPERIMENTAL' and *not*
safe for selection? (Yes, in menuconfig, you can ask it to show the 'depends
on' list, *if* you suspect that it might be an issue. But why would I suspect
that?)

In no case should we be creating a situation where users are thinking "Damn,
every driver may or may not be bodgy, I have to *check* if it's experimental
before I enable it, just because there was one that I *asked* for".
Particularly fun if you're migrating to new hardware and you don't *know* yet
which drivers you need, and you're getting prompted for possibly-dodgy ALSA
modules because you asked for a USB module....

(And yes, trying to wade through all the ALSA/Intel HDA/AC97/Sigmatel *was*
painful enough when I moved from a Dell Latitude C840 to a D820 - fortunately
enough, I didn't have to deal with EXPERIMENTAL ALSA drivers adding to the
mix.. )

EXPERIMENTAL in a mainline kernel as a *single* switch for a *lot* of totally
unreleated code is even more broken than EMBEDDED (which at least had a common
rationale). And over in the -mm kernel where it *should* be, it's superfluous
at best, because a -mm kernel might as well just add -DCONFIG_EXPERIMENTAL=y to
CFLAGS and save you the effort. ;)

To: Pavel Machek <pavel@...>
Cc: <linux-kernel@...>
Date: Monday, November 26, 2007 - 2:57 pm

It's not the SATA subsystem itself that is experimental.
There are some some drivers that are still experimental.

That's the same like e.g. with network drivers where the subsystem is
stable but some drivers are not (yet).

And therefore people are forced to enable CONFIG_EXPERIMENTAL for
getting the kernel running on their hardware.

But e.g. the fact that a user must enable an experimental SATA driver

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

-

Previous thread: bonding sysfs output by Wagner Ferenc on Sunday, November 25, 2007 - 11:12 am. (9 messages)

Next thread: [2.6 patch] make I/O schedulers non-modular by Adrian Bunk on Sunday, November 25, 2007 - 12:18 pm. (15 messages)