diff mbox

arm64: add HAVE_LATENCYTOP_SUPPORT config

Message ID 20151110111829.GD31947@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Will Deacon Nov. 10, 2015, 11:18 a.m. UTC
On Tue, Nov 10, 2015 at 12:01:45PM +0100, Heiko Carstens wrote:
> On Tue, Nov 10, 2015 at 10:05:48AM +0000, Will Deacon wrote:
> > Hi Heiko,
> > 
> > On Tue, Nov 10, 2015 at 08:41:24AM +0100, Heiko Carstens wrote:
> > > On Fri, Nov 06, 2015 at 04:21:10PM +0000, Will Deacon wrote:
> > > > On Sat, Nov 07, 2015 at 12:11:16AM +0800, yalin wang wrote:
> > > > > i just enable it on ARM64,
> > > > > and it can work,
> > > > > i don’t see some special requirement to enable this config .
> > > > 
> > > > Right, so why does HAVE_LATENCYTOP_SUPPORT exist?
> [...]
> > > And looking through the kernel there is at least avr32 which would break
> > > at build time if the config option would be removed completely.
> > > 
> > > So.. renaming it to STACKTRACE_TSK_SUPPORT would be a good idea.
> > 
> > ftrace has a similar issue and solves it by having architectures define
> > a `config STACKTRACE_SUPPORT' symbol. Over in kernel/trace/Kconfig,
> > there's a `select STACKTRACE if STACKTRACE_SUPPORT', which means
> > that kernel/stacktrace.c gets built and a dummy (weak symbol) version of
> > save_stack_trace_tsk appears.
> 
> Ah, I wasn't aware of the weak symbol.
> 
> > I don't think adding another STACKTRACE-related Kconfig option is
> > necessarily the best thing to do. Maybe we should instead have LATENCYTOP
> > depend on STACKTRACE_SUPPORT (already the case) and select STACKTRACE?
> 
> LATENCYTOP also already selects STACKTRACE. So it looks like
> HAVE_LATENCYTOP_SUPPORT could simply be removed.

Ha, so it does! Patch below. The only non-trivial part was arch/arm/,
which has a dependency on !SMP which I believe is no longer required
as of d5996b2ff0e2 ("ARM: fix /proc/$PID/stack on SMP").

Will

--->8

From 8dfb40e92ac322cbd68bf9f16cbb11fc5e210269 Mon Sep 17 00:00:00 2001
From: Will Deacon <will.deacon@arm.com>
Date: Tue, 10 Nov 2015 11:10:04 +0000
Subject: [PATCH] Kconfig: remove HAVE_LATENCYTOP_SUPPORT

As illustrated by a3afe70b83fd ("[S390] latencytop s390 support."),
HAVE_LATENCYTOP_SUPPORT is defined by an architecture to advertise an
implementation of save_stack_trace_tsk.

However, as of 9212ddb5eada ("stacktrace: provide save_stack_trace_tsk()
weak alias") a dummy implementation is provided if STACKTRACE=y.
Given that LATENCYTOP already depends on STACKTRACE_SUPPORT and selects
STACKTRACE, we can remove HAVE_LATENCYTOP_SUPPORT altogether.

Signed-off-by: Will Deacon <will.deacon@arm.com>
---
 arch/arc/Kconfig        | 3 ---
 arch/arm/Kconfig        | 5 -----
 arch/metag/Kconfig      | 3 ---
 arch/microblaze/Kconfig | 3 ---
 arch/parisc/Kconfig     | 3 ---
 arch/powerpc/Kconfig    | 3 ---
 arch/s390/Kconfig       | 3 ---
 arch/sh/Kconfig         | 3 ---
 arch/sparc/Kconfig      | 4 ----
 arch/unicore32/Kconfig  | 3 ---
 arch/x86/Kconfig        | 3 ---
 lib/Kconfig.debug       | 1 -
 12 files changed, 37 deletions(-)

Comments

yalin wang Nov. 10, 2015, 11:24 a.m. UTC | #1
> On Nov 10, 2015, at 19:18, Will Deacon <will.deacon@arm.com> wrote:
> 
> Ha, so it does! Patch below. The only non-trivial part was arch/arm/,
> which has a dependency on !SMP which I believe is no longer required
> as of d5996b2ff0e2 ("ARM: fix /proc/$PID/stack on SMP").
> 
> Will
> 
> --->8
> 
> From 8dfb40e92ac322cbd68bf9f16cbb11fc5e210269 Mon Sep 17 00:00:00 2001
> From: Will Deacon <will.deacon@arm.com>
> Date: Tue, 10 Nov 2015 11:10:04 +0000
> Subject: [PATCH] Kconfig: remove HAVE_LATENCYTOP_SUPPORT
> 
> As illustrated by a3afe70b83fd ("[S390] latencytop s390 support."),
> HAVE_LATENCYTOP_SUPPORT is defined by an architecture to advertise an
> implementation of save_stack_trace_tsk.
> 
> However, as of 9212ddb5eada ("stacktrace: provide save_stack_trace_tsk()
> weak alias") a dummy implementation is provided if STACKTRACE=y.
> Given that LATENCYTOP already depends on STACKTRACE_SUPPORT and selects
> STACKTRACE, we can remove HAVE_LATENCYTOP_SUPPORT altogether.
> 
> Signed-off-by: Will Deacon <will.deacon@arm.com>
> ---
> arch/arc/Kconfig        | 3 ---
> arch/arm/Kconfig        | 5 -----
> arch/metag/Kconfig      | 3 ---
> arch/microblaze/Kconfig | 3 ---
> arch/parisc/Kconfig     | 3 ---
> arch/powerpc/Kconfig    | 3 ---
> arch/s390/Kconfig       | 3 ---
> arch/sh/Kconfig         | 3 ---
> arch/sparc/Kconfig      | 4 ----
> arch/unicore32/Kconfig  | 3 ---
> arch/x86/Kconfig        | 3 ---
> lib/Kconfig.debug       | 1 -
> 12 files changed, 37 deletions(-)
> 
> diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
> index 2c2ac3f3ff80..6dc312fd6480 100644
> --- a/arch/arc/Kconfig
> +++ b/arch/arc/Kconfig
> @@ -73,9 +73,6 @@ config STACKTRACE_SUPPORT
> 	def_bool y
> 	select STACKTRACE
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	def_bool y
> -
> config HAVE_ARCH_TRANSPARENT_HUGEPAGE
> 	def_bool y
> 	depends on ARC_MMU_V4
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 35854e8d97ff..94eff0c6b0f8 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -162,11 +162,6 @@ config STACKTRACE_SUPPORT
> 	bool
> 	default y
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	bool
> -	depends on !SMP
> -	default y
> -
> config LOCKDEP_SUPPORT
> 	bool
> 	default y
> diff --git a/arch/metag/Kconfig b/arch/metag/Kconfig
> index 0b389a81c43a..a0fa88da3e31 100644
> --- a/arch/metag/Kconfig
> +++ b/arch/metag/Kconfig
> @@ -36,9 +36,6 @@ config STACKTRACE_SUPPORT
> config LOCKDEP_SUPPORT
> 	def_bool y
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	def_bool y
> -
> config RWSEM_GENERIC_SPINLOCK
> 	def_bool y
> 
> diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
> index 0bce820428fc..5ecd0287a874 100644
> --- a/arch/microblaze/Kconfig
> +++ b/arch/microblaze/Kconfig
> @@ -67,9 +67,6 @@ config STACKTRACE_SUPPORT
> config LOCKDEP_SUPPORT
> 	def_bool y
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	def_bool y
> -
> source "init/Kconfig"
> 
> source "kernel/Kconfig.freezer"
> diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
> index c36546959e86..16276d505cd6 100644
> --- a/arch/parisc/Kconfig
> +++ b/arch/parisc/Kconfig
> @@ -79,9 +79,6 @@ config TIME_LOW_RES
> 	depends on SMP
> 	default y
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -        def_bool y
> -
> # unless you want to implement ACPI on PA-RISC ... ;-)
> config PM
> 	bool
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index db49e0d796b1..89210bfdfc7a 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -47,9 +47,6 @@ config STACKTRACE_SUPPORT
> 	bool
> 	default y
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	def_bool y
> -
> config TRACE_IRQFLAGS_SUPPORT
> 	bool
> 	default y
> diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
> index 3a55f493c7da..69e22b502d09 100644
> --- a/arch/s390/Kconfig
> +++ b/arch/s390/Kconfig
> @@ -10,9 +10,6 @@ config LOCKDEP_SUPPORT
> config STACKTRACE_SUPPORT
> 	def_bool y
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	def_bool y
> -
> config RWSEM_GENERIC_SPINLOCK
> 	bool
> 
> diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
> index d514df7e04dd..6c391a5d3e5c 100644
> --- a/arch/sh/Kconfig
> +++ b/arch/sh/Kconfig
> @@ -130,9 +130,6 @@ config STACKTRACE_SUPPORT
> config LOCKDEP_SUPPORT
> 	def_bool y
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	def_bool y
> -
> config ARCH_HAS_ILOG2_U32
> 	def_bool n
> 
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index 56442d2d7bbc..3203e42190dd 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -101,10 +101,6 @@ config LOCKDEP_SUPPORT
> 	bool
> 	default y if SPARC64
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	bool
> -	default y if SPARC64
> -
> config ARCH_HIBERNATION_POSSIBLE
> 	def_bool y if SPARC64
> 
> diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig
> index c9faddc61100..910aaaaed969 100644
> --- a/arch/unicore32/Kconfig
> +++ b/arch/unicore32/Kconfig
> @@ -33,9 +33,6 @@ config NO_IOPORT_MAP
> config STACKTRACE_SUPPORT
> 	def_bool y
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	def_bool y
> -
> config LOCKDEP_SUPPORT
> 	def_bool y
> 
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index db3622f22b61..9574f7d1fe97 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -177,9 +177,6 @@ config LOCKDEP_SUPPORT
> config STACKTRACE_SUPPORT
> 	def_bool y
> 
> -config HAVE_LATENCYTOP_SUPPORT
> -	def_bool y
> -
> config MMU
> 	def_bool y
> 
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index 16bf3bc25e3e..6984710e75c9 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -1547,7 +1547,6 @@ config FAULT_INJECTION_STACKTRACE_FILTER
> 
> config LATENCYTOP
> 	bool "Latency measuring infrastructure"
> -	depends on HAVE_LATENCYTOP_SUPPORT
> 	depends on DEBUG_KERNEL
> 	depends on STACKTRACE_SUPPORT
> 	depends on PROC_FS
> -- 
> 2.1.4

seems fine. :)
Heiko Carstens Nov. 10, 2015, 11:34 a.m. UTC | #2
> From: Will Deacon <will.deacon@arm.com>
> Date: Tue, 10 Nov 2015 11:10:04 +0000
> Subject: [PATCH] Kconfig: remove HAVE_LATENCYTOP_SUPPORT
> 
> As illustrated by a3afe70b83fd ("[S390] latencytop s390 support."),
> HAVE_LATENCYTOP_SUPPORT is defined by an architecture to advertise an
> implementation of save_stack_trace_tsk.
> 
> However, as of 9212ddb5eada ("stacktrace: provide save_stack_trace_tsk()
> weak alias") a dummy implementation is provided if STACKTRACE=y.
> Given that LATENCYTOP already depends on STACKTRACE_SUPPORT and selects
> STACKTRACE, we can remove HAVE_LATENCYTOP_SUPPORT altogether.
> 
> Signed-off-by: Will Deacon <will.deacon@arm.com>
> ---
>  arch/arc/Kconfig        | 3 ---
>  arch/arm/Kconfig        | 5 -----
>  arch/metag/Kconfig      | 3 ---
>  arch/microblaze/Kconfig | 3 ---
>  arch/parisc/Kconfig     | 3 ---
>  arch/powerpc/Kconfig    | 3 ---
>  arch/s390/Kconfig       | 3 ---
>  arch/sh/Kconfig         | 3 ---
>  arch/sparc/Kconfig      | 4 ----
>  arch/unicore32/Kconfig  | 3 ---
>  arch/x86/Kconfig        | 3 ---
>  lib/Kconfig.debug       | 1 -
>  12 files changed, 37 deletions(-)

Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Yang Shi Dec. 14, 2015, 10:02 p.m. UTC | #3
Hi folks,

I tried to enable latencytop for arm64 and came across this discussion, 
so any plan about when this will get merged into mainline? 4.5 merge window?

Thanks,
Yang


On 11/10/2015 3:34 AM, Heiko Carstens wrote:
>> From: Will Deacon <will.deacon@arm.com>
>> Date: Tue, 10 Nov 2015 11:10:04 +0000
>> Subject: [PATCH] Kconfig: remove HAVE_LATENCYTOP_SUPPORT
>>
>> As illustrated by a3afe70b83fd ("[S390] latencytop s390 support."),
>> HAVE_LATENCYTOP_SUPPORT is defined by an architecture to advertise an
>> implementation of save_stack_trace_tsk.
>>
>> However, as of 9212ddb5eada ("stacktrace: provide save_stack_trace_tsk()
>> weak alias") a dummy implementation is provided if STACKTRACE=y.
>> Given that LATENCYTOP already depends on STACKTRACE_SUPPORT and selects
>> STACKTRACE, we can remove HAVE_LATENCYTOP_SUPPORT altogether.
>>
>> Signed-off-by: Will Deacon <will.deacon@arm.com>
>> ---
>>   arch/arc/Kconfig        | 3 ---
>>   arch/arm/Kconfig        | 5 -----
>>   arch/metag/Kconfig      | 3 ---
>>   arch/microblaze/Kconfig | 3 ---
>>   arch/parisc/Kconfig     | 3 ---
>>   arch/powerpc/Kconfig    | 3 ---
>>   arch/s390/Kconfig       | 3 ---
>>   arch/sh/Kconfig         | 3 ---
>>   arch/sparc/Kconfig      | 4 ----
>>   arch/unicore32/Kconfig  | 3 ---
>>   arch/x86/Kconfig        | 3 ---
>>   lib/Kconfig.debug       | 1 -
>>   12 files changed, 37 deletions(-)
>
> Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
Will Deacon Dec. 15, 2015, 9:48 a.m. UTC | #4
On Mon, Dec 14, 2015 at 02:02:18PM -0800, Shi, Yang wrote:
> I tried to enable latencytop for arm64 and came across this discussion, so
> any plan about when this will get merged into mainline? 4.5 merge window?

It's queued in linux-next, so I imagine its heading for 4.5.

Will
diff mbox

Patch

diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 2c2ac3f3ff80..6dc312fd6480 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -73,9 +73,6 @@  config STACKTRACE_SUPPORT
 	def_bool y
 	select STACKTRACE
 
-config HAVE_LATENCYTOP_SUPPORT
-	def_bool y
-
 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
 	def_bool y
 	depends on ARC_MMU_V4
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 35854e8d97ff..94eff0c6b0f8 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -162,11 +162,6 @@  config STACKTRACE_SUPPORT
 	bool
 	default y
 
-config HAVE_LATENCYTOP_SUPPORT
-	bool
-	depends on !SMP
-	default y
-
 config LOCKDEP_SUPPORT
 	bool
 	default y
diff --git a/arch/metag/Kconfig b/arch/metag/Kconfig
index 0b389a81c43a..a0fa88da3e31 100644
--- a/arch/metag/Kconfig
+++ b/arch/metag/Kconfig
@@ -36,9 +36,6 @@  config STACKTRACE_SUPPORT
 config LOCKDEP_SUPPORT
 	def_bool y
 
-config HAVE_LATENCYTOP_SUPPORT
-	def_bool y
-
 config RWSEM_GENERIC_SPINLOCK
 	def_bool y
 
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 0bce820428fc..5ecd0287a874 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -67,9 +67,6 @@  config STACKTRACE_SUPPORT
 config LOCKDEP_SUPPORT
 	def_bool y
 
-config HAVE_LATENCYTOP_SUPPORT
-	def_bool y
-
 source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index c36546959e86..16276d505cd6 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -79,9 +79,6 @@  config TIME_LOW_RES
 	depends on SMP
 	default y
 
-config HAVE_LATENCYTOP_SUPPORT
-        def_bool y
-
 # unless you want to implement ACPI on PA-RISC ... ;-)
 config PM
 	bool
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index db49e0d796b1..89210bfdfc7a 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -47,9 +47,6 @@  config STACKTRACE_SUPPORT
 	bool
 	default y
 
-config HAVE_LATENCYTOP_SUPPORT
-	def_bool y
-
 config TRACE_IRQFLAGS_SUPPORT
 	bool
 	default y
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 3a55f493c7da..69e22b502d09 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -10,9 +10,6 @@  config LOCKDEP_SUPPORT
 config STACKTRACE_SUPPORT
 	def_bool y
 
-config HAVE_LATENCYTOP_SUPPORT
-	def_bool y
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index d514df7e04dd..6c391a5d3e5c 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -130,9 +130,6 @@  config STACKTRACE_SUPPORT
 config LOCKDEP_SUPPORT
 	def_bool y
 
-config HAVE_LATENCYTOP_SUPPORT
-	def_bool y
-
 config ARCH_HAS_ILOG2_U32
 	def_bool n
 
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 56442d2d7bbc..3203e42190dd 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -101,10 +101,6 @@  config LOCKDEP_SUPPORT
 	bool
 	default y if SPARC64
 
-config HAVE_LATENCYTOP_SUPPORT
-	bool
-	default y if SPARC64
-
 config ARCH_HIBERNATION_POSSIBLE
 	def_bool y if SPARC64
 
diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig
index c9faddc61100..910aaaaed969 100644
--- a/arch/unicore32/Kconfig
+++ b/arch/unicore32/Kconfig
@@ -33,9 +33,6 @@  config NO_IOPORT_MAP
 config STACKTRACE_SUPPORT
 	def_bool y
 
-config HAVE_LATENCYTOP_SUPPORT
-	def_bool y
-
 config LOCKDEP_SUPPORT
 	def_bool y
 
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index db3622f22b61..9574f7d1fe97 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -177,9 +177,6 @@  config LOCKDEP_SUPPORT
 config STACKTRACE_SUPPORT
 	def_bool y
 
-config HAVE_LATENCYTOP_SUPPORT
-	def_bool y
-
 config MMU
 	def_bool y
 
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 16bf3bc25e3e..6984710e75c9 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -1547,7 +1547,6 @@  config FAULT_INJECTION_STACKTRACE_FILTER
 
 config LATENCYTOP
 	bool "Latency measuring infrastructure"
-	depends on HAVE_LATENCYTOP_SUPPORT
 	depends on DEBUG_KERNEL
 	depends on STACKTRACE_SUPPORT
 	depends on PROC_FS