Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-27 Thread Babu Moger



On 9/27/2016 10:43 AM, Sam Ravnborg wrote:

On Tue, Sep 27, 2016 at 09:51:40AM -0500, Babu Moger wrote:

On 9/27/2016 6:40 AM, Peter Zijlstra wrote:

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.

  How about this?
  Moved everything to arch/sparc/Kconfig.debug. It may be not useful
to have help in
config file as it is not visible. Lets have some explanation in .h file.
I will send v3 version if you all agree.
=
diff --git a/arch/sparc/Kconfig.debug b/arch/sparc/Kconfig.debug
index 6db35fb..67e58a1 100644
--- a/arch/sparc/Kconfig.debug
+++ b/arch/sparc/Kconfig.debug
@@ -21,4 +21,9 @@ config FRAME_POINTER
 depends on MCOUNT
 default y

+config PROVE_LOCKING_SMALL
+   bool
+   depends on PROVE_LOCKING && SPARC
+   default y
+
  endmenu

The idea is to have the SPAC specific stuff in arch/sparc/Kconfig,
and not scattered in Kconfig files all over the tree.

Therefore drop the "depends".

In sparc/Kconfig you then just do:

config SPARC
select PROVE_LOCKING_SMALL if PROVE_LOCKING

The if part is likely not needed as PROVE_LOCKING_SMALL will be ignored
unless PROVE_LOCKING is enabled.

 Sure. thanks.  Here it is below. I will re-post v3.


diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index cde1a62..353731f 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -43,6 +43,7 @@ config SPARC
select ODD_RT_SIGACTION
select OLD_SIGSUSPEND
select ARCH_HAS_SG_CHAIN
+   select PROVE_LOCKING_SMALL if PROVE_LOCKING

 config SPARC32
def_bool !64BIT
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index ba2b0c8..3ba1665 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -1008,6 +1008,9 @@ config PROVE_LOCKING

 For more details, see Documentation/locking/lockdep-design.txt.

+config PROVE_LOCKING_SMALL
+   bool
+
 config LOCKDEP
bool
depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && 
STACKTRACE_SUPPORT && LOCKDEP_SUPPORT






Sam




Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-27 Thread Babu Moger



On 9/27/2016 10:43 AM, Sam Ravnborg wrote:

On Tue, Sep 27, 2016 at 09:51:40AM -0500, Babu Moger wrote:

On 9/27/2016 6:40 AM, Peter Zijlstra wrote:

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.

  How about this?
  Moved everything to arch/sparc/Kconfig.debug. It may be not useful
to have help in
config file as it is not visible. Lets have some explanation in .h file.
I will send v3 version if you all agree.
=
diff --git a/arch/sparc/Kconfig.debug b/arch/sparc/Kconfig.debug
index 6db35fb..67e58a1 100644
--- a/arch/sparc/Kconfig.debug
+++ b/arch/sparc/Kconfig.debug
@@ -21,4 +21,9 @@ config FRAME_POINTER
 depends on MCOUNT
 default y

+config PROVE_LOCKING_SMALL
+   bool
+   depends on PROVE_LOCKING && SPARC
+   default y
+
  endmenu

The idea is to have the SPAC specific stuff in arch/sparc/Kconfig,
and not scattered in Kconfig files all over the tree.

Therefore drop the "depends".

In sparc/Kconfig you then just do:

config SPARC
select PROVE_LOCKING_SMALL if PROVE_LOCKING

The if part is likely not needed as PROVE_LOCKING_SMALL will be ignored
unless PROVE_LOCKING is enabled.

 Sure. thanks.  Here it is below. I will re-post v3.


diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index cde1a62..353731f 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -43,6 +43,7 @@ config SPARC
select ODD_RT_SIGACTION
select OLD_SIGSUSPEND
select ARCH_HAS_SG_CHAIN
+   select PROVE_LOCKING_SMALL if PROVE_LOCKING

 config SPARC32
def_bool !64BIT
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index ba2b0c8..3ba1665 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -1008,6 +1008,9 @@ config PROVE_LOCKING

 For more details, see Documentation/locking/lockdep-design.txt.

+config PROVE_LOCKING_SMALL
+   bool
+
 config LOCKDEP
bool
depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && 
STACKTRACE_SUPPORT && LOCKDEP_SUPPORT






Sam




Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-27 Thread Sam Ravnborg
On Tue, Sep 27, 2016 at 09:51:40AM -0500, Babu Moger wrote:
> 
> On 9/27/2016 6:40 AM, Peter Zijlstra wrote:
> >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.
>  How about this?
>  Moved everything to arch/sparc/Kconfig.debug. It may be not useful
> to have help in
> config file as it is not visible. Lets have some explanation in .h file.
> I will send v3 version if you all agree.
> =
> diff --git a/arch/sparc/Kconfig.debug b/arch/sparc/Kconfig.debug
> index 6db35fb..67e58a1 100644
> --- a/arch/sparc/Kconfig.debug
> +++ b/arch/sparc/Kconfig.debug
> @@ -21,4 +21,9 @@ config FRAME_POINTER
> depends on MCOUNT
> default y
> 
> +config PROVE_LOCKING_SMALL
> +   bool
> +   depends on PROVE_LOCKING && SPARC
> +   default y
> +
>  endmenu

The idea is to have the SPAC specific stuff in arch/sparc/Kconfig,
and not scattered in Kconfig files all over the tree.

Therefore drop the "depends".

In sparc/Kconfig you then just do:

config SPARC
select PROVE_LOCKING_SMALL if PROVE_LOCKING

The if part is likely not needed as PROVE_LOCKING_SMALL will be ignored
unless PROVE_LOCKING is enabled.

Sam


Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-27 Thread Sam Ravnborg
On Tue, Sep 27, 2016 at 09:51:40AM -0500, Babu Moger wrote:
> 
> On 9/27/2016 6:40 AM, Peter Zijlstra wrote:
> >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.
>  How about this?
>  Moved everything to arch/sparc/Kconfig.debug. It may be not useful
> to have help in
> config file as it is not visible. Lets have some explanation in .h file.
> I will send v3 version if you all agree.
> =
> diff --git a/arch/sparc/Kconfig.debug b/arch/sparc/Kconfig.debug
> index 6db35fb..67e58a1 100644
> --- a/arch/sparc/Kconfig.debug
> +++ b/arch/sparc/Kconfig.debug
> @@ -21,4 +21,9 @@ config FRAME_POINTER
> depends on MCOUNT
> default y
> 
> +config PROVE_LOCKING_SMALL
> +   bool
> +   depends on PROVE_LOCKING && SPARC
> +   default y
> +
>  endmenu

The idea is to have the SPAC specific stuff in arch/sparc/Kconfig,
and not scattered in Kconfig files all over the tree.

Therefore drop the "depends".

In sparc/Kconfig you then just do:

config SPARC
select PROVE_LOCKING_SMALL if PROVE_LOCKING

The if part is likely not needed as PROVE_LOCKING_SMALL will be ignored
unless PROVE_LOCKING is enabled.

Sam


Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-27 Thread Babu Moger


On 9/27/2016 6:40 AM, Peter Zijlstra wrote:

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.

 How about this?
 Moved everything to arch/sparc/Kconfig.debug. It may be not useful to 
have help in

config file as it is not visible. Lets have some explanation in .h file.
I will send v3 version if you all agree.
=
diff --git a/arch/sparc/Kconfig.debug b/arch/sparc/Kconfig.debug
index 6db35fb..67e58a1 100644
--- a/arch/sparc/Kconfig.debug
+++ b/arch/sparc/Kconfig.debug
@@ -21,4 +21,9 @@ config FRAME_POINTER
depends on MCOUNT
default y

+config PROVE_LOCKING_SMALL
+   bool
+   depends on PROVE_LOCKING && SPARC
+   default y
+
 endmenu



Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-27 Thread Babu Moger


On 9/27/2016 6:40 AM, Peter Zijlstra wrote:

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.

 How about this?
 Moved everything to arch/sparc/Kconfig.debug. It may be not useful to 
have help in

config file as it is not visible. Lets have some explanation in .h file.
I will send v3 version if you all agree.
=
diff --git a/arch/sparc/Kconfig.debug b/arch/sparc/Kconfig.debug
index 6db35fb..67e58a1 100644
--- a/arch/sparc/Kconfig.debug
+++ b/arch/sparc/Kconfig.debug
@@ -21,4 +21,9 @@ config FRAME_POINTER
depends on MCOUNT
default y

+config PROVE_LOCKING_SMALL
+   bool
+   depends on PROVE_LOCKING && SPARC
+   default y
+
 endmenu



Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-27 Thread Peter Zijlstra
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.


Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-27 Thread Peter Zijlstra
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.


Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-26 Thread Sam Ravnborg
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 
> ---
>  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


Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL

2016-09-26 Thread Sam Ravnborg
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 
> ---
>  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