Re: [PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL
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
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
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
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
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
[PATCH v2 1/2] config: Add new CONFIG_PROVE_LOCKING_SMALL
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. + config LOCKDEP bool depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT -- 1.7.1