From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <46A09DB2.5040408@redhat.com> Date: Fri, 20 Jul 2007 07:34:10 -0400 From: Chris Snook MIME-Version: 1.0 Subject: Re: [RFC 1/4] CONFIG_STABLE: Define it References: <20070531002047.702473071@sgi.com> <20070531003012.302019683@sgi.com> <46A097FE.3000701@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org Return-Path: To: Satyam Sharma Cc: "clameter@sgi.com" , linux-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org List-ID: Satyam Sharma wrote: > On 7/20/07, Chris Snook wrote: >> Satyam Sharma wrote: >> > [ Just cleaning up my inbox, and stumbled across this thread ... ] >> > >> > >> > On 5/31/07, clameter@sgi.com wrote: >> >> Introduce CONFIG_STABLE to control checks only useful for development. >> >> >> >> Signed-off-by: Christoph Lameter >> >> [...] >> >> 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: email@kvack.org