From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
Kees Cook <keescook@chromium.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org,
"Eric W. Biederman" <ebiederm@xmission.com>,
Serge Hallyn <serge.hallyn@canonical.com>,
"David S. Miller" <davem@davemloft.net>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH] make CONFIG_EXPERIMENTAL invisible and default
Date: Sat, 6 Oct 2012 18:44:47 -0700 [thread overview]
Message-ID: <20121007014447.GB2485@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAFTL4hy434CQhT8WTvKmNzkO4k_isfKQOrCjgfYFYfMVgS7QDw@mail.gmail.com>
On Sat, Oct 06, 2012 at 06:10:36PM +0200, Frederic Weisbecker wrote:
> 2012/10/5 Paul E. McKenney <paulmck@linux.vnet.ibm.com>:
> > On Thu, Oct 04, 2012 at 07:31:50AM -0700, Paul E. McKenney wrote:
> >> On Thu, Oct 04, 2012 at 02:55:39AM +0100, Matthew Garrett wrote:
> >> > On Wed, Oct 03, 2012 at 01:03:14PM -0700, Paul E. McKenney wrote:
> >> >
> >> > > That has not proven sufficient for me in the past, RCU_FAST_NO_HZ
> >> > > being a case in point.
> >> >
> >> > Taint the kernel at boot time? That'd be sufficient to force distros to
> >> > disable it.
> >>
> >> Cool! That does sound much more socially responsible than my thought
> >> of forcing a splat (e.g., WARN_ON(1)) during boot. ;-)
> >
> > So, from what I can see, here is the list of the ways of warning distros
> > off of a given kernel config option, taken in terms of CONFIG_RCU_USER_QS:
> >
> > 1. Make CONFIG_RCU_USER_QS depend on CONFIG_BROKEN.
> >
> > It sounds to me like distros would avoid adding this (do they?),
> > but tester would probably avoid it as well.
> >
> > 2. Make CONFIG_RCU_USER_QS depend on CONFIG_STAGING.
> >
> > As Frederic noted, this is more of a driver thing than a
> > core-kernel thing, so probably not appropriate.
> >
> > 3. Boot-time WARN_ON() if CONFIG_RCU_USER_QS=y.
> >
> > This seems to me to be a tad excessive. But the place to do it
> > might be rcu_bootup_announce_oddness() in kernel/rcutree_plugin.h.
> >
> > 4. Remove CONFIG_RCU_USER_QS from Kconfig, so that users have to
> > patch their kernel to enable it.
> >
> > This also seems a tad excessive.
> >
> > 5. Maintain CONFIG_RCU_USER_QS out of tree, for example in the
> > -rt patchset.
> >
> > This is a good place to start, but it has been where
> > CONFIG_RCU_USER_QS has been for some time, and although it
> > got some good testing, it clearly needs more. In my view,
> > CONFIG_RCU_USER_QS has outgrown its out-of-tree roots.
> >
> > 6. Boot-time add_taint() if CONFIG_RCU_USER_QS=y, as suggested
> > by Matthew Garrett. The taint value might be TAINT_CRAP,
> > TAINT_OOT_MODULE, TAINT_WARN, or TAINT_FIRMWARE_WORKAROUND --
> > all the other taint values disable lockdep. Of these four,
> > TAINT_OOT_MODULE and TAINT_FIRMWARE_WORKAROUND are clearly
> > off-topic, leaving TAINT_CRAP and TAINT_WARN. Taking them one
> > at a time:
> >
> > TAINT_CRAP: Used when loading modules from staging.
> >
> > TAINT_WARN: Used when "scheduling while atomic" is encountered.
> >
> > So I have my tongue only halfway in my cheek when I suggest
> > starting with TAINT_CRAP, then moving to TAINT_WARN, then
> > removing the tainting altogether. The place to do this might
> > be rcu_bootup_announce_oddness() in kernel/rcutree_plugin.h.
> >
> > So how about the following progression?
> >
> > A. Early days, only a few crazies should test. In this case, the
> > code should be out of tree, perhaps in something like -rt,
> > perhaps as a set of patches.
> >
> > B. Need more testers, but still not expected to work reasonably.
> > Mainline, but depending on CONFIG_BROKEN. (I am not all that
> > enthusiastic about this option, but am including it for
> > completeness.)
>
> Yeah neither am I. With a dependency on CONFIG_BROKEN, it considerably
> reduce the testing coverage too.
;-)
> > C. Need wide testing, but don't want 100,000,000 unsuspecting
> > test subjects. Taint the kernel with TAINT_CRAP.
> >
> > D. OK for production in special situations, but definitely not
> > for typical users. Taint the kernel with TAINT_WARN.
> >
> > E. Ready for general production use. Mainlined without restrictions.
> >
> > I would say that CONFIG_RCU_USER_QS is currently at point C above, it
> > clearly now needs testing on a wide variety of hardware, but also is
> > clearly not ready for 100,000,000 users.
> >
> > Thoughts?
>
> Really I would much prefer to add some "Don't enable it unless you're
> doing kernel hacking.
> If unsure say N" text in the Kconfig.
>
> I can understand that distros want to cover as much feature as they
> can for their users. But
> should it be an excuse for not reading outstanding warnings in Kconfig
> help text?
In my experience, they do not read these warnings carefully. :-(
Or perhaps they do read them, but react to them by running the code
through some test suite rather than by putting full faith in the
warning.
> Or may be add some specific warning yeah. I wouldn't mind much.
We have some weeks to think about it -- I cannot see pushing a
warning in as a regression. ;-)
Thanx, Paul
next prev parent reply other threads:[~2012-10-07 1:46 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-02 19:50 [PATCH] make CONFIG_EXPERIMENTAL invisible and default Kees Cook
2012-10-02 21:40 ` Serge E. Hallyn
2012-10-03 13:25 ` Paul E. McKenney
2012-10-03 16:15 ` Kees Cook
2012-10-03 16:43 ` Josh Boyer
2012-10-03 16:16 ` Serge Hallyn
2012-10-03 16:17 ` Greg Kroah-Hartman
2012-10-03 16:47 ` Paul E. McKenney
2012-10-03 17:21 ` Greg Kroah-Hartman
2012-10-03 17:46 ` Frederic Weisbecker
2012-10-03 18:23 ` Josh Boyer
2012-10-03 19:36 ` Dave Jones
2012-10-03 20:05 ` Paul E. McKenney
2012-10-03 21:43 ` Frederic Weisbecker
2012-10-04 14:31 ` Paul E. McKenney
2012-10-03 17:46 ` Paul E. McKenney
2012-10-03 18:02 ` Serge Hallyn
2012-10-03 18:43 ` Kees Cook
2012-10-03 19:07 ` david
2012-10-03 20:03 ` Paul E. McKenney
2012-10-03 22:23 ` Eric W. Biederman
2012-10-04 0:11 ` Paul E. McKenney
2012-10-04 1:55 ` Matthew Garrett
2012-10-04 14:31 ` Paul E. McKenney
2012-10-05 16:46 ` Paul E. McKenney
2012-10-06 16:10 ` Frederic Weisbecker
2012-10-07 1:44 ` Paul E. McKenney [this message]
2012-10-07 2:33 ` Dave Airlie
2012-10-07 16:30 ` Paul E. McKenney
2012-10-07 20:18 ` Dave Jones
2012-10-08 1:04 ` Paul E. McKenney
2012-10-08 22:07 ` Kees Cook
2012-10-08 22:29 ` Paul E. McKenney
2012-10-08 22:37 ` Kees Cook
2012-10-08 22:40 ` Kees Cook
2012-10-08 22:59 ` Paul E. McKenney
2012-10-08 23:23 ` Kees Cook
2012-10-03 21:31 ` Frederic Weisbecker
2012-10-08 22:08 ` Kees Cook
2012-10-08 23:53 ` Greg Kroah-Hartman
2012-10-09 0:46 ` Kees Cook
2012-10-09 1:20 ` Greg Kroah-Hartman
2012-10-09 1:26 ` Paul E. McKenney
2012-10-09 1:57 ` Kees Cook
2012-10-09 2:47 ` Stephen Rothwell
2012-10-09 6:01 ` Kees Cook
2012-12-16 4:29 ` Jan Engelhardt
2012-12-16 16:19 ` Paul E. McKenney
2012-10-03 23:29 ` Guenter Roeck
2012-10-03 23:33 ` Kees Cook
2012-10-03 23:37 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121007014447.GB2485@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=ebiederm@xmission.com \
--cc=fweisbec@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mjg59@srcf.ucam.org \
--cc=serge.hallyn@canonical.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.