diff mbox

[v2,1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

Message ID 1474929098-68914-2-git-send-email-babu.moger@oracle.com
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Babu Moger Sept. 26, 2016, 10:31 p.m. UTC
Adding the new config parameter CONFIG_PROVE_LOCKING_SMALL for sparc.

This feature limits the space used for "Lock debugging: prove locking
correctness" by about 4MB. The current sparc systms have the limitation of
32MB size for kernel size including .text, .data and .bss sections. With
PROVE_LOCKING feature, the kernel size could grow beyond this limit and
causing system bootup issues. With this option, kernel limits the size
of the entries of lock_chains, stack_trace etc. so that kernel fits in
required size limit.  This is only visible for sparc.

Signed-off-by: Babu Moger <babu.moger@oracle.com>
---
 lib/Kconfig.debug |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

Comments

Sam Ravnborg Sept. 27, 2016, 4:46 a.m. UTC | #1
Hi Babu.

On Mon, Sep 26, 2016 at 03:31:37PM -0700, Babu Moger wrote:
> Adding the new config parameter CONFIG_PROVE_LOCKING_SMALL for sparc.
> 
> This feature limits the space used for "Lock debugging: prove locking
> correctness" by about 4MB. The current sparc systms have the limitation of
> 32MB size for kernel size including .text, .data and .bss sections. With
> PROVE_LOCKING feature, the kernel size could grow beyond this limit and
> causing system bootup issues. With this option, kernel limits the size
> of the entries of lock_chains, stack_trace etc. so that kernel fits in
> required size limit.  This is only visible for sparc.
> 
> Signed-off-by: Babu Moger <babu.moger@oracle.com>
> ---
>  lib/Kconfig.debug |   17 +++++++++++++++++
>  1 files changed, 17 insertions(+), 0 deletions(-)
> 
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index b9cfdbf..c79de25 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -1035,6 +1035,7 @@ config PROVE_LOCKING
>  	select DEBUG_MUTEXES
>  	select DEBUG_LOCK_ALLOC
>  	select TRACE_IRQFLAGS
> +	select PROVE_LOCKING_SMALL if SPARC
>  	default n
>  	help
>  	 This feature enables the kernel to prove that all locking
> @@ -1070,6 +1071,22 @@ config PROVE_LOCKING
>  
>  	 For more details, see Documentation/locking/lockdep-design.txt.
>  
> +config PROVE_LOCKING_SMALL
> +	bool "Limit the space for prove locking correctness"
> +	depends on PROVE_LOCKING && SPARC
> +	help
> +	 This feature limits the space used for "Lock debugging: prove
> +	 locking correctness" by about 4MB. In sparc system, all the
> +	 kernel's code, data, and bss, must have locked translations in
> +	 the TLB so that it does not hit TLB misses. The current sparc
> +	 chips have 8 TLB entries available that may be locked down, and
> +	 with a 4mb page size, this gives a maximum of 32mb of memory for
> +	 the kernel size. With PROVE_LOCKING feature, the kernel size could
> +	 grow beyond this limit and causing system bootup issues. With
> +	 this option, kernel limits the size of the entries of lock_chains,
> +	 stack_trace etc. to debug PROVE_LOCKING so that kernel size fits
> +	 in 32MB. This is only visible for SPARC.

Since this is only relevant for sparc, and for sparc this is "select"ed,
then there is limited/no gain having this as a visible menu config option.

How about adding just a simple non-visible config symbol:

config PROVE_LOCKING_SMALL
	bool

The nice help text can be added to the H file, and the select
can be move to the sparc/Kconfig file where it really belongs.

	Sam
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Peter Zijlstra Sept. 27, 2016, 11:40 a.m. UTC | #2
On Tue, Sep 27, 2016 at 06:46:25AM +0200, Sam Ravnborg wrote:
> Since this is only relevant for sparc, and for sparc this is "select"ed,
> then there is limited/no gain having this as a visible menu config option.
> 
> How about adding just a simple non-visible config symbol:
> 
> config PROVE_LOCKING_SMALL
> 	bool
> 
> The nice help text can be added to the H file, and the select
> can be move to the sparc/Kconfig file where it really belongs.

Yes, this should not be user selectable. I don't mind the help being
here though.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index b9cfdbf..c79de25 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -1035,6 +1035,7 @@  config PROVE_LOCKING
 	select DEBUG_MUTEXES
 	select DEBUG_LOCK_ALLOC
 	select TRACE_IRQFLAGS
+	select PROVE_LOCKING_SMALL if SPARC
 	default n
 	help
 	 This feature enables the kernel to prove that all locking
@@ -1070,6 +1071,22 @@  config PROVE_LOCKING
 
 	 For more details, see Documentation/locking/lockdep-design.txt.
 
+config PROVE_LOCKING_SMALL
+	bool "Limit the space for prove locking correctness"
+	depends on PROVE_LOCKING && SPARC
+	help
+	 This feature limits the space used for "Lock debugging: prove
+	 locking correctness" by about 4MB. In sparc system, all the
+	 kernel's code, data, and bss, must have locked translations in
+	 the TLB so that it does not hit TLB misses. The current sparc
+	 chips have 8 TLB entries available that may be locked down, and
+	 with a 4mb page size, this gives a maximum of 32mb of memory for
+	 the kernel size. With PROVE_LOCKING feature, the kernel size could
+	 grow beyond this limit and causing system bootup issues. With
+	 this option, kernel limits the size of the entries of lock_chains,
+	 stack_trace etc. to debug PROVE_LOCKING so that kernel size fits
+	 in 32MB. This is only visible for SPARC.
+
 config LOCKDEP
 	bool
 	depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT