All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Snook <csnook@redhat.com>
To: Satyam Sharma <satyam.sharma@gmail.com>
Cc: "clameter@sgi.com" <clameter@sgi.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	akpm@linux-foundation.org
Subject: Re: [RFC 1/4] CONFIG_STABLE: Define it
Date: Fri, 20 Jul 2007 07:34:10 -0400	[thread overview]
Message-ID: <46A09DB2.5040408@redhat.com> (raw)
In-Reply-To: <a781481a0707200427y7a29257fpfa5978c391eb3534@mail.gmail.com>

Satyam Sharma wrote:
> On 7/20/07, Chris Snook <csnook@redhat.com> wrote:
>> Satyam Sharma wrote:
>> > [ Just cleaning up my inbox, and stumbled across this thread ... ]
>> >
>> >
>> > On 5/31/07, clameter@sgi.com <clameter@sgi.com> wrote:
>> >> Introduce CONFIG_STABLE to control checks only useful for development.
>> >>
>> >> Signed-off-by: Christoph Lameter <clameter@sgi.com>
>> >> [...]
>> >>  menu "General setup"
>> >>
>> >> +config STABLE
>> >> +       bool "Stable kernel"
>> >> +       help
>> >> +         If the kernel is configured to be a stable kernel then 
>> various
>> >> +         checks that are only of interest to kernel development 
>> will be
>> >> +         omitted.
>> >> +
>> >
>> >
>> > "A programmer who uses assertions during testing and turns them off
>> > during production is like a sailor who wears a life vest while drilling
>> > on shore and takes it off at sea."
>> >                                                - Tony Hoare
>> >
>> >
>> > Probably you meant to turn off debug _output_ (and not _checks_)
>> > with this config option? But we already have CONFIG_FOO_DEBUG_BAR
>> > for those situations ...
>>
>> There are plenty of validation and debugging features in the kernel 
>> that go WAY
>> beyond mere assertions, often imposing significant overhead 
>> (particularly when
>> you scale up) or creating interfaces you'd never use unless you were 
>> doing
>> kernel development work.  You really do want these features completely 
>> removed
>> from production kernels.
> 
> As for entire such "development/debugging-related features", most (all, 
> really)
> should anyway have their own config options.

They do.  With kconfig dependencies, we can ensure that those config options are 
off when CONFIG_STABLE is set.  That way you only have to set one option to 
ensure that all these expensive checks are disabled.

>> The point of this is not to remove one-line WARN_ON and BUG_ON checks 
>> (though we
>> might remove a few from fast paths), but rather to disable big chunks of
>> debugging code that don't implement anything visible to a production 
>> workload.
> 
> Oh yes, but it's still not clear to me why or how a kernel-wide 
> "CONFIG_STABLE"
> or "CONFIG_RELEASE" would help ... what's wrong with finer granularity
> "CONFIG_xxx_DEBUG_xxx" kind of knobs?

With kconfig dependencies, we can keep the fine granularity, but not have to 
spend a half hour digging through the configuration to make sure we have a 
production-suitable kernel.

	-- Chris

WARNING: multiple messages have this Message-ID (diff)
From: Chris Snook <csnook@redhat.com>
To: Satyam Sharma <satyam.sharma@gmail.com>
Cc: "clameter@sgi.com" <clameter@sgi.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	akpm@linux-foundation.org
Subject: Re: [RFC 1/4] CONFIG_STABLE: Define it
Date: Fri, 20 Jul 2007 07:34:10 -0400	[thread overview]
Message-ID: <46A09DB2.5040408@redhat.com> (raw)
In-Reply-To: <a781481a0707200427y7a29257fpfa5978c391eb3534@mail.gmail.com>

Satyam Sharma wrote:
> On 7/20/07, Chris Snook <csnook@redhat.com> wrote:
>> Satyam Sharma wrote:
>> > [ Just cleaning up my inbox, and stumbled across this thread ... ]
>> >
>> >
>> > On 5/31/07, clameter@sgi.com <clameter@sgi.com> wrote:
>> >> Introduce CONFIG_STABLE to control checks only useful for development.
>> >>
>> >> Signed-off-by: Christoph Lameter <clameter@sgi.com>
>> >> [...]
>> >>  menu "General setup"
>> >>
>> >> +config STABLE
>> >> +       bool "Stable kernel"
>> >> +       help
>> >> +         If the kernel is configured to be a stable kernel then 
>> various
>> >> +         checks that are only of interest to kernel development 
>> will be
>> >> +         omitted.
>> >> +
>> >
>> >
>> > "A programmer who uses assertions during testing and turns them off
>> > during production is like a sailor who wears a life vest while drilling
>> > on shore and takes it off at sea."
>> >                                                - Tony Hoare
>> >
>> >
>> > Probably you meant to turn off debug _output_ (and not _checks_)
>> > with this config option? But we already have CONFIG_FOO_DEBUG_BAR
>> > for those situations ...
>>
>> There are plenty of validation and debugging features in the kernel 
>> that go WAY
>> beyond mere assertions, often imposing significant overhead 
>> (particularly when
>> you scale up) or creating interfaces you'd never use unless you were 
>> doing
>> kernel development work.  You really do want these features completely 
>> removed
>> from production kernels.
> 
> As for entire such "development/debugging-related features", most (all, 
> really)
> should anyway have their own config options.

They do.  With kconfig dependencies, we can ensure that those config options are 
off when CONFIG_STABLE is set.  That way you only have to set one option to 
ensure that all these expensive checks are disabled.

>> The point of this is not to remove one-line WARN_ON and BUG_ON checks 
>> (though we
>> might remove a few from fast paths), but rather to disable big chunks of
>> debugging code that don't implement anything visible to a production 
>> workload.
> 
> Oh yes, but it's still not clear to me why or how a kernel-wide 
> "CONFIG_STABLE"
> or "CONFIG_RELEASE" would help ... what's wrong with finer granularity
> "CONFIG_xxx_DEBUG_xxx" kind of knobs?

With kconfig dependencies, we can keep the fine granularity, but not have to 
spend a half hour digging through the configuration to make sure we have a 
production-suitable kernel.

	-- Chris

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2007-07-20 11:34 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-31  0:20 [RFC 0/4] CONFIG_STABLE to switch off development checks clameter
2007-05-31  0:20 ` clameter
2007-05-31  0:20 ` [RFC 1/4] CONFIG_STABLE: Define it clameter
2007-05-31  0:20   ` clameter
2007-05-31  0:35   ` young dave
2007-05-31  0:35     ` young dave
2007-05-31  0:49     ` Christoph Lameter
2007-05-31  0:49       ` Christoph Lameter
2007-06-01 18:08       ` Dave Jones
2007-06-01 18:08         ` Dave Jones
2007-06-01 18:25         ` Christoph Lameter
2007-06-01 18:25           ` Christoph Lameter
2007-05-31  8:54   ` Stefan Richter
2007-05-31  8:54     ` Stefan Richter
2007-05-31  9:03     ` David Miller
2007-05-31  9:03       ` David Miller, Stefan Richter
2007-05-31  9:03     ` Stefan Richter
2007-05-31  9:03       ` Stefan Richter
2007-05-31 21:11   ` Andrew Morton
2007-05-31 21:11     ` Andrew Morton
2007-05-31 21:14     ` Christoph Lameter
2007-05-31 21:14       ` Christoph Lameter
2007-05-31 21:30     ` Sam Ravnborg
2007-05-31 21:30       ` Sam Ravnborg
2007-06-01 18:02       ` Dave Jones
2007-06-01 18:02         ` Dave Jones
2007-06-01 20:22         ` Sam Ravnborg
2007-06-01 20:22           ` Sam Ravnborg
2007-06-01 20:30           ` Dave Jones
2007-06-01 20:30             ` Dave Jones
2007-06-01 20:55             ` Sam Ravnborg
2007-06-01 20:55               ` Sam Ravnborg
2007-06-01 20:25     ` Sam Ravnborg
2007-06-01 20:25       ` Sam Ravnborg
2007-07-20 10:41   ` Satyam Sharma
2007-07-20 10:41     ` Satyam Sharma
2007-07-20 11:09     ` Chris Snook
2007-07-20 11:09       ` Chris Snook
2007-07-20 11:27       ` Satyam Sharma
2007-07-20 11:27         ` Satyam Sharma
2007-07-20 11:34         ` Chris Snook [this message]
2007-07-20 11:34           ` Chris Snook
2007-07-20 11:40           ` Satyam Sharma
2007-07-20 11:40             ` Satyam Sharma
2007-07-20 11:50             ` Chris Snook
2007-07-20 11:50               ` Chris Snook
2007-07-20 16:48               ` Stefan Richter
2007-07-20 16:48                 ` Stefan Richter
2007-07-20 16:28     ` Stefan Richter
2007-07-20 16:28       ` Stefan Richter
2007-07-20 16:36       ` Stefan Richter
2007-07-20 16:36         ` Stefan Richter
2007-07-20 19:09         ` Chuck Ebbert
2007-07-20 19:09           ` Chuck Ebbert
2007-05-31  0:20 ` [RFC 2/4] CONFIG_STABLE: Switch off kmalloc(0) tests in slab allocators clameter
2007-05-31  0:20   ` clameter
2007-05-31 19:51   ` Zach Brown
2007-05-31 19:51     ` Zach Brown
2007-05-31 22:37     ` Andi Kleen
2007-05-31 22:37       ` Andi Kleen
2007-05-31  0:20 ` [RFC 3/4] CONFIG_STABLE: Switch off SLUB banner clameter
2007-05-31  0:20   ` clameter
2007-05-31  0:20 ` [RFC 4/4] CONFIG_STABLE: SLUB: Prefer object corruption over failure clameter
2007-05-31  0:20   ` clameter
2007-06-01 14:55 ` [RFC 0/4] CONFIG_STABLE to switch off development checks Jeremy Fitzhardinge
2007-06-01 14:55   ` Jeremy Fitzhardinge
2007-06-01 18:38   ` Christoph Lameter
2007-06-01 18:38     ` Christoph Lameter
2007-06-01 18:58     ` Jeremy Fitzhardinge
2007-06-01 18:58       ` Jeremy Fitzhardinge
2007-06-01 20:59       ` Christoph Lameter
2007-06-01 20:59         ` Christoph Lameter
2007-06-01 21:24         ` Jeremy Fitzhardinge
2007-06-01 21:24           ` Jeremy Fitzhardinge
2007-06-02 15:23       ` Dave Kleikamp
2007-06-02 15:23         ` Dave Kleikamp
2007-06-02 16:28         ` Jeremy Fitzhardinge
2007-06-02 16:28           ` Jeremy Fitzhardinge
2007-06-04  1:03           ` Dave Kleikamp
2007-06-04  1:03             ` Dave Kleikamp

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=46A09DB2.5040408@redhat.com \
    --to=csnook@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=satyam.sharma@gmail.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.