All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: 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>,
	Frederic Weisbecker <fweisbec@gmail.com>
Subject: Re: [PATCH] make CONFIG_EXPERIMENTAL invisible and default
Date: Fri, 5 Oct 2012 09:46:42 -0700	[thread overview]
Message-ID: <20121005164642.GA10711@linux.vnet.ibm.com> (raw)
In-Reply-To: <20121004143150.GA2464@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.)

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?

							Thanx, Paul


  reply	other threads:[~2012-10-05 16: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 [this message]
2012-10-06 16:10                 ` Frederic Weisbecker
2012-10-07  1:44                   ` Paul E. McKenney
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=20121005164642.GA10711@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.