linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 0/4] Instrumentation menu removal
@ 2007-11-13 14:26 Mathieu Desnoyers
  2007-11-13 14:26 ` [patch 1/4] Create arch/Kconfig Mathieu Desnoyers
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-13 14:26 UTC (permalink / raw)
  To: akpm, linux-kernel

Hi Andrew,

Following Linus's advice, this patch moves the content of "Instrumentation
Support" menu to "General Setup". The content is taken from
kernel/Kconfig.instrumentation and moved to init/Kconfig and arch/Kconfig.

This patchset applies on top of 2.6.24-rc2-git3 in the following order :

# instrumentation menu removal
#for -mm
add-kconfig-to-arch.patch
add-arch-supports-oprofile.patch
add-arch-supports-kprobes.patch
move-kconfig-instrumentation-to-arch.patch

This should be ready for -mm.

Mathieu

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [patch 1/4] Create arch/Kconfig
  2007-11-13 14:26 [patch 0/4] Instrumentation menu removal Mathieu Desnoyers
@ 2007-11-13 14:26 ` Mathieu Desnoyers
  2007-11-13 14:26 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-13 14:26 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: Mathieu Desnoyers, Linus Torvalds, Sam Ravnborg

[-- Attachment #1: add-kconfig-to-arch.patch --]
[-- Type: text/plain, Size: 2991 bytes --]

Puts the content of arch/Kconfig in the "General setup" menu.

Linus:

> Should it come with a re-duplication of it's content into each
> architecture, which was the case previously ? The oprofile and kprobes
> menu entries were litteraly cut and pasted from one architecture to
> another. Should we put its content in init/Kconfig then ?

I don't think it's a good idea to go back to making it per-architecture,
although that extensive "depends on <list-of-archiectures-here>" might
indicate that there certainly is room for cleanup there.

And I don't think it's wrong keeping it in kernel/Kconfig.xyz per se, I
just think it's wrong to (a) lump the code together when it really doesn't
necessarily need to and (b) show it to users as some kind of choice that
is tied together (whether it then has common code or not).

On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like

        depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32

really shouldn't exist in a file like kernel/Kconfig.instrumentation.

It would be much better to do

        depends on ARCH_SUPPORTS_KPROBES

in that generic file, and then architectures that do support it would just
have a

        bool ARCH_SUPPORTS_KPROBES
                default y

in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...
                   

Sam Ravnborg:

Stuff it into a new file: arch/Kconfig
We can then extend this file to include all the 'trailing'
Kconfig things that are anyway equal for all ARCHs.

But it should be kept clean - so if we introduce such a file
then we should use ARCH_HAS_whatever in the arch specific Kconfig
files to enable stuff that is not shared.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Sam Ravnborg <sam@ravnborg.org>
---
 arch/Kconfig |    3 +++
 init/Kconfig |    2 ++
 2 files changed, 5 insertions(+)

Index: linux-2.6-lttng/init/Kconfig
===================================================================
--- linux-2.6-lttng.orig/init/Kconfig	2007-11-02 13:20:51.000000000 -0400
+++ linux-2.6-lttng/init/Kconfig	2007-11-02 13:20:52.000000000 -0400
@@ -644,6 +644,8 @@ config SLOB
 
 endchoice
 
+source "arch/Kconfig"
+
 endmenu		# General setup
 
 config RT_MUTEXES
Index: linux-2.6-lttng/arch/Kconfig
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6-lttng/arch/Kconfig	2007-11-02 13:20:52.000000000 -0400
@@ -0,0 +1,3 @@
+#
+# General architecture dependent options
+#

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-13 14:26 [patch 0/4] Instrumentation menu removal Mathieu Desnoyers
  2007-11-13 14:26 ` [patch 1/4] Create arch/Kconfig Mathieu Desnoyers
@ 2007-11-13 14:26 ` Mathieu Desnoyers
  2007-11-14 19:41   ` Sam Ravnborg
  2007-11-13 14:26 ` [patch 3/4] Add ARCH_SUPPORTS_KPROBES Mathieu Desnoyers
  2007-11-13 14:26 ` [patch 4/4] Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig Mathieu Desnoyers
  3 siblings, 1 reply; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-13 14:26 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: Mathieu Desnoyers, Linus Torvalds, Sam Ravnborg

[-- Attachment #1: add-arch-supports-oprofile.patch --]
[-- Type: text/plain, Size: 9931 bytes --]

Linus:
On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like

        depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32

really shouldn't exist in a file like kernel/Kconfig.instrumentation.

It would be much better to do

        depends on ARCH_SUPPORTS_KPROBES

in that generic file, and then architectures that do support it would just
have a

        bool ARCH_SUPPORTS_KPROBES
                default y

in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...

Changelog:

Actually, I know I gave this as the magic incantation, but now that I see
it, I realize that I should have told you to just use

        config ARCH_SUPPORTS_KPROBES
                def_bool y

instead, which is a bit denser.

We seem to use both kinds of syntax for these things, but this is really
what "def_bool" is there for...

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Sam Ravnborg <sam@ravnborg.org>
---
 arch/alpha/Kconfig             |    3 +++
 arch/arm/Kconfig               |    3 +++
 arch/blackfin/Kconfig          |    3 +++
 arch/ia64/Kconfig              |    3 +++
 arch/m32r/Kconfig              |    3 +++
 arch/mips/Kconfig              |    3 +++
 arch/parisc/Kconfig            |    3 +++
 arch/powerpc/Kconfig           |    3 +++
 arch/ppc/Kconfig               |    3 +++
 arch/s390/Kconfig              |    3 +++
 arch/sh/Kconfig                |    3 +++
 arch/sh64/Kconfig              |    3 +++
 arch/sparc/Kconfig             |    3 +++
 arch/sparc64/Kconfig           |    3 +++
 arch/x86/Kconfig.i386          |    3 +++
 arch/x86/Kconfig.x86_64        |    3 +++
 kernel/Kconfig.instrumentation |    2 +-
 17 files changed, 49 insertions(+), 1 deletion(-)

Index: linux-2.6-lttng/arch/alpha/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/alpha/Kconfig	2007-11-02 13:20:47.000000000 -0400
+++ linux-2.6-lttng/arch/alpha/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -66,6 +66,9 @@ config AUTO_IRQ_AFFINITY
 	depends on SMP
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng/arch/arm/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/arm/Kconfig	2007-11-02 13:20:47.000000000 -0400
+++ linux-2.6-lttng/arch/arm/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -114,6 +114,9 @@ config GENERIC_CALIBRATE_DELAY
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 config ARCH_MAY_HAVE_PC_FDC
 	bool
 
Index: linux-2.6-lttng/arch/blackfin/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/blackfin/Kconfig	2007-11-02 13:20:47.000000000 -0400
+++ linux-2.6-lttng/arch/blackfin/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -69,6 +69,9 @@ config GENERIC_CALIBRATE_DELAY
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 config IRQCHIP_DEMUX_GPIO
 	bool
 	depends on (BF52x || BF53x || BF561 || BF54x)
Index: linux-2.6-lttng/arch/ia64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ia64/Kconfig	2007-11-02 13:20:47.000000000 -0400
+++ linux-2.6-lttng/arch/ia64/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -99,6 +99,9 @@ config AUDIT_ARCH
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 choice
 	prompt "System type"
 	default IA64_GENERIC
Index: linux-2.6-lttng/arch/m32r/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m32r/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/m32r/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -34,6 +34,9 @@ config NO_IOPORT
 config NO_DMA
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng/arch/mips/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/mips/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/mips/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -721,6 +721,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 	bool
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 #
 # Select some configuration options automatically based on user selections.
 #
Index: linux-2.6-lttng/arch/parisc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/parisc/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/parisc/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -69,6 +69,9 @@ config IRQ_PER_CPU
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 # unless you want to implement ACPI on PA-RISC ... ;-)
 config PM
 	bool
Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/powerpc/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/powerpc/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -163,6 +163,9 @@ config PPC_OF_PLATFORM_PCI
 	depends on PPC64 # not supported on 32 bits yet
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 source "arch/powerpc/platforms/Kconfig"
Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ppc/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/ppc/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -69,6 +69,9 @@ config GENERIC_BUG
 	default y
 	depends on BUG
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor"
Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/s390/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/s390/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -52,6 +52,9 @@ mainmenu "Linux Kernel Configuration"
 config S390
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Base setup"
Index: linux-2.6-lttng/arch/sh/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/sh/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -93,6 +93,9 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_NO_VIRT_TO_BUS
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "System type"
Index: linux-2.6-lttng/arch/sh64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh64/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/sh64/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -58,6 +58,9 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_NO_VIRT_TO_BUS
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source init/Kconfig
 
 menu "System type"
Index: linux-2.6-lttng/arch/sparc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/sparc/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -27,6 +27,9 @@ config ARCH_NO_VIRT_TO_BUS
 config OF
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "General machine setup"
Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc64/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/sparc64/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -76,6 +76,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 	bool
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 choice
 	prompt "Kernel page size"
 	default SPARC64_PAGE_SIZE_8KB
Index: linux-2.6-lttng/arch/x86/Kconfig.i386
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.i386	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/x86/Kconfig.i386	2007-11-02 13:20:54.000000000 -0400
@@ -91,6 +91,9 @@ config DMI
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor type and features"
Index: linux-2.6-lttng/arch/x86/Kconfig.x86_64
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.x86_64	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/x86/Kconfig.x86_64	2007-11-02 13:20:54.000000000 -0400
@@ -133,6 +133,9 @@ config ARCH_HAS_ILOG2_U64
 	bool
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng/kernel/Kconfig.instrumentation
===================================================================
--- linux-2.6-lttng.orig/kernel/Kconfig.instrumentation	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/kernel/Kconfig.instrumentation	2007-11-02 13:20:54.000000000 -0400
@@ -21,7 +21,7 @@ config PROFILING
 config OPROFILE
 	tristate "OProfile system profiling (EXPERIMENTAL)"
 	depends on PROFILING
-	depends on ALPHA || ARM || BLACKFIN || X86_32 || IA64 || M32R || MIPS || PARISC || PPC || S390 || SUPERH || SPARC || X86_64
+	depends on ARCH_SUPPORTS_OPROFILE
 	help
 	  OProfile is a profiling system capable of profiling the
 	  whole system, include the kernel, kernel modules, libraries,

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [patch 3/4] Add ARCH_SUPPORTS_KPROBES
  2007-11-13 14:26 [patch 0/4] Instrumentation menu removal Mathieu Desnoyers
  2007-11-13 14:26 ` [patch 1/4] Create arch/Kconfig Mathieu Desnoyers
  2007-11-13 14:26 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers
@ 2007-11-13 14:26 ` Mathieu Desnoyers
  2007-11-13 14:26 ` [patch 4/4] Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig Mathieu Desnoyers
  3 siblings, 0 replies; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-13 14:26 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: Mathieu Desnoyers, Linus Torvalds, Sam Ravnborg

[-- Attachment #1: add-arch-supports-kprobes.patch --]
[-- Type: text/plain, Size: 6105 bytes --]

Linus:

On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like

        depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32

really shouldn't exist in a file like kernel/Kconfig.instrumentation.

It would be much better to do

        depends on ARCH_SUPPORTS_KPROBES

in that generic file, and then architectures that do support it would just
have a

        bool ARCH_SUPPORTS_KPROBES
                default y

in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...

Changelog:

Actually, I know I gave this as the magic incantation, but now that I see
it, I realize that I should have told you to just use

        config ARCH_SUPPORTS_KPROBES
                def_bool y

instead, which is a bit denser.

We seem to use both kinds of syntax for these things, but this is really
what "def_bool" is there for...

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Sam Ravnborg <sam@ravnborg.org>
---
 arch/avr32/Kconfig             |    3 +++
 arch/ia64/Kconfig              |    3 +++
 arch/powerpc/Kconfig           |    3 +++
 arch/ppc/Kconfig               |    3 +++
 arch/s390/Kconfig              |    3 +++
 arch/sparc64/Kconfig           |    3 +++
 arch/x86/Kconfig.i386          |    3 +++
 arch/x86/Kconfig.x86_64        |    3 +++
 kernel/Kconfig.instrumentation |    2 +-
 9 files changed, 25 insertions(+), 1 deletion(-)

Index: linux-2.6-lttng/arch/avr32/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/avr32/Kconfig	2007-11-02 13:20:47.000000000 -0400
+++ linux-2.6-lttng/arch/avr32/Kconfig	2007-11-02 13:20:57.000000000 -0400
@@ -70,6 +70,9 @@ config GENERIC_BUG
 	default y
 	depends on BUG
 
+config ARCH_SUPPORTS_KPROBES
+	def_bool y
+
 source "init/Kconfig"
 
 menu "System Type and features"
Index: linux-2.6-lttng/arch/ia64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ia64/Kconfig	2007-11-02 13:20:54.000000000 -0400
+++ linux-2.6-lttng/arch/ia64/Kconfig	2007-11-02 13:20:57.000000000 -0400
@@ -102,6 +102,9 @@ config AUDIT_ARCH
 config ARCH_SUPPORTS_OPROFILE
 	def_bool y
 
+config ARCH_SUPPORTS_KPROBES
+	def_bool y
+
 choice
 	prompt "System type"
 	default IA64_GENERIC
Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/powerpc/Kconfig	2007-11-02 13:20:54.000000000 -0400
+++ linux-2.6-lttng/arch/powerpc/Kconfig	2007-11-02 13:20:57.000000000 -0400
@@ -166,6 +166,9 @@ config PPC_OF_PLATFORM_PCI
 config ARCH_SUPPORTS_OPROFILE
 	def_bool y
 
+config ARCH_SUPPORTS_KPROBES
+	def_bool y
+
 source "init/Kconfig"
 
 source "arch/powerpc/platforms/Kconfig"
Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ppc/Kconfig	2007-11-02 13:20:54.000000000 -0400
+++ linux-2.6-lttng/arch/ppc/Kconfig	2007-11-02 13:20:57.000000000 -0400
@@ -72,6 +72,9 @@ config GENERIC_BUG
 config ARCH_SUPPORTS_OPROFILE
 	def_bool y
 
+config ARCH_SUPPORTS_KPROBES
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor"
Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/s390/Kconfig	2007-11-02 13:20:54.000000000 -0400
+++ linux-2.6-lttng/arch/s390/Kconfig	2007-11-02 13:20:57.000000000 -0400
@@ -55,6 +55,9 @@ config S390
 config ARCH_SUPPORTS_OPROFILE
 	def_bool y
 
+config ARCH_SUPPORTS_KPROBES
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Base setup"
Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc64/Kconfig	2007-11-02 13:20:54.000000000 -0400
+++ linux-2.6-lttng/arch/sparc64/Kconfig	2007-11-02 13:20:57.000000000 -0400
@@ -79,6 +79,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 config ARCH_SUPPORTS_OPROFILE
 	def_bool y
 
+config ARCH_SUPPORTS_KPROBES
+	def_bool y
+
 choice
 	prompt "Kernel page size"
 	default SPARC64_PAGE_SIZE_8KB
Index: linux-2.6-lttng/arch/x86/Kconfig.i386
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.i386	2007-11-02 13:20:54.000000000 -0400
+++ linux-2.6-lttng/arch/x86/Kconfig.i386	2007-11-02 13:20:57.000000000 -0400
@@ -94,6 +94,9 @@ config DMI
 config ARCH_SUPPORTS_OPROFILE
 	def_bool y
 
+config ARCH_SUPPORTS_KPROBES
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor type and features"
Index: linux-2.6-lttng/arch/x86/Kconfig.x86_64
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.x86_64	2007-11-02 13:20:54.000000000 -0400
+++ linux-2.6-lttng/arch/x86/Kconfig.x86_64	2007-11-02 13:20:57.000000000 -0400
@@ -136,6 +136,9 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_SUPPORTS_OPROFILE
 	def_bool y
 
+config ARCH_SUPPORTS_KPROBES
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng/kernel/Kconfig.instrumentation
===================================================================
--- linux-2.6-lttng.orig/kernel/Kconfig.instrumentation	2007-11-02 13:20:54.000000000 -0400
+++ linux-2.6-lttng/kernel/Kconfig.instrumentation	2007-11-02 13:20:57.000000000 -0400
@@ -32,7 +32,7 @@ config OPROFILE
 config KPROBES
 	bool "Kprobes"
 	depends on KALLSYMS && MODULES
-	depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32
+	depends on ARCH_SUPPORTS_KPROBES
 	help
 	  Kprobes allows you to trap at almost any kernel address and
 	  execute a callback function.  register_kprobe() establishes

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [patch 4/4] Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig
  2007-11-13 14:26 [patch 0/4] Instrumentation menu removal Mathieu Desnoyers
                   ` (2 preceding siblings ...)
  2007-11-13 14:26 ` [patch 3/4] Add ARCH_SUPPORTS_KPROBES Mathieu Desnoyers
@ 2007-11-13 14:26 ` Mathieu Desnoyers
  3 siblings, 0 replies; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-13 14:26 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: Mathieu Desnoyers, Linus Torvalds, Sam Ravnborg

[-- Attachment #1: move-kconfig-instrumentation-to-arch.patch --]
[-- Type: text/plain, Size: 15933 bytes --]

Move the instrumentation Kconfig to

arch/Kconfig for architecture dependent options
  - oprofile
  - kprobes

and

init/Kconfig for architecture independent options
  - profiling
  - markers

Remove the "Instrumentation Support" menu. Everything moves to "General setup".
Delete the kernel/Kconfig.instrumentation file.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Sam Ravnborg <sam@ravnborg.org>
---
 arch/Kconfig                   |   22 ++++++++++++++++++
 arch/alpha/Kconfig             |    2 -
 arch/arm/Kconfig               |    2 -
 arch/blackfin/Kconfig          |    2 -
 arch/cris/Kconfig              |    2 -
 arch/frv/Kconfig               |    2 -
 arch/h8300/Kconfig             |    2 -
 arch/ia64/Kconfig              |    2 -
 arch/m32r/Kconfig              |    2 -
 arch/m68k/Kconfig              |    2 -
 arch/m68knommu/Kconfig         |    2 -
 arch/mips/Kconfig              |    2 -
 arch/parisc/Kconfig            |    2 -
 arch/powerpc/Kconfig           |    2 -
 arch/ppc/Kconfig               |    2 -
 arch/s390/Kconfig              |    2 -
 arch/sh/Kconfig                |    2 -
 arch/sh64/Kconfig              |    2 -
 arch/sparc/Kconfig             |    2 -
 arch/sparc64/Kconfig           |    2 -
 arch/um/Kconfig                |    2 -
 arch/v850/Kconfig              |    2 -
 arch/x86/Kconfig.i386          |    2 -
 arch/x86/Kconfig.x86_64        |    2 -
 arch/xtensa/Kconfig            |    2 -
 init/Kconfig                   |   12 ++++++++++
 kernel/Kconfig.instrumentation |   49 -----------------------------------------
 27 files changed, 34 insertions(+), 97 deletions(-)

Index: linux-2.6-lttng/arch/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/Kconfig	2007-11-11 22:01:40.000000000 -0500
+++ linux-2.6-lttng/arch/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -1,3 +1,25 @@
 #
 # General architecture dependent options
 #
+
+config OPROFILE
+	tristate "OProfile system profiling (EXPERIMENTAL)"
+	depends on PROFILING
+	depends on ARCH_SUPPORTS_OPROFILE
+	help
+	  OProfile is a profiling system capable of profiling the
+	  whole system, include the kernel, kernel modules, libraries,
+	  and applications.
+
+	  If unsure, say N.
+
+config KPROBES
+	bool "Kprobes"
+	depends on KALLSYMS && MODULES
+	depends on ARCH_SUPPORTS_KPROBES
+	help
+	  Kprobes allows you to trap at almost any kernel address and
+	  execute a callback function.  register_kprobe() establishes
+	  a probepoint and specifies the callback.  Kprobes is useful
+	  for kernel debugging, non-intrusive instrumentation and testing.
+	  If in doubt, say "N".
Index: linux-2.6-lttng/init/Kconfig
===================================================================
--- linux-2.6-lttng.orig/init/Kconfig	2007-11-11 22:01:40.000000000 -0500
+++ linux-2.6-lttng/init/Kconfig	2007-11-11 22:02:32.000000000 -0500
@@ -644,6 +644,18 @@ config SLOB
 
 endchoice
 
+config PROFILING
+	bool "Profiling support (EXPERIMENTAL)"
+	help
+	  Say Y here to enable the extended profiling support mechanisms used
+	  by profilers such as OProfile.
+
+config MARKERS
+	bool "Activate markers"
+	help
+	  Place an empty function call at each marker site. Can be
+	  dynamically changed for a probe function.
+
 source "arch/Kconfig"
 
 endmenu		# General setup
Index: linux-2.6-lttng/kernel/Kconfig.instrumentation
===================================================================
--- linux-2.6-lttng.orig/kernel/Kconfig.instrumentation	2007-11-11 22:01:56.000000000 -0500
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,49 +0,0 @@
-menuconfig INSTRUMENTATION
-	bool "Instrumentation Support"
-	default y
-	---help---
-	  Say Y here to get to see options related to performance measurement,
-	  system-wide debugging, and testing. This option alone does not add any
-	  kernel code.
-
-	  If you say N, all options in this submenu will be skipped and
-	  disabled. If you're trying to debug the kernel itself, go see the
-	  Kernel Hacking menu.
-
-if INSTRUMENTATION
-
-config PROFILING
-	bool "Profiling support (EXPERIMENTAL)"
-	help
-	  Say Y here to enable the extended profiling support mechanisms used
-	  by profilers such as OProfile.
-
-config OPROFILE
-	tristate "OProfile system profiling (EXPERIMENTAL)"
-	depends on PROFILING
-	depends on ARCH_SUPPORTS_OPROFILE
-	help
-	  OProfile is a profiling system capable of profiling the
-	  whole system, include the kernel, kernel modules, libraries,
-	  and applications.
-
-	  If unsure, say N.
-
-config KPROBES
-	bool "Kprobes"
-	depends on KALLSYMS && MODULES
-	depends on ARCH_SUPPORTS_KPROBES
-	help
-	  Kprobes allows you to trap at almost any kernel address and
-	  execute a callback function.  register_kprobe() establishes
-	  a probepoint and specifies the callback.  Kprobes is useful
-	  for kernel debugging, non-intrusive instrumentation and testing.
-	  If in doubt, say "N".
-
-config MARKERS
-	bool "Activate markers"
-	help
-	  Place an empty function call at each marker site. Can be
-	  dynamically changed for a probe function.
-
-endif # INSTRUMENTATION
Index: linux-2.6-lttng/arch/alpha/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/alpha/Kconfig	2007-11-11 22:01:51.000000000 -0500
+++ linux-2.6-lttng/arch/alpha/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -657,8 +657,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/alpha/Kconfig.debug"
 
 # DUMMY_CONSOLE may be defined in drivers/video/console/Kconfig
Index: linux-2.6-lttng/arch/arm/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/arm/Kconfig	2007-11-11 22:01:51.000000000 -0500
+++ linux-2.6-lttng/arch/arm/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -1071,8 +1071,6 @@ endmenu
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/arm/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/blackfin/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/blackfin/Kconfig	2007-11-11 22:01:51.000000000 -0500
+++ linux-2.6-lttng/arch/blackfin/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -1076,8 +1076,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 menu "Kernel hacking"
 
 source "lib/Kconfig.debug"
Index: linux-2.6-lttng/arch/cris/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/cris/Kconfig	2007-11-11 22:01:26.000000000 -0500
+++ linux-2.6-lttng/arch/cris/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -196,8 +196,6 @@ source "sound/Kconfig"
 
 source "drivers/usb/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/cris/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/frv/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/frv/Kconfig	2007-11-11 22:01:26.000000000 -0500
+++ linux-2.6-lttng/arch/frv/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -375,8 +375,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/frv/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/h8300/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/h8300/Kconfig	2007-11-11 22:01:26.000000000 -0500
+++ linux-2.6-lttng/arch/h8300/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -223,8 +223,6 @@ endmenu
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/h8300/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/ia64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ia64/Kconfig	2007-11-11 22:01:56.000000000 -0500
+++ linux-2.6-lttng/arch/ia64/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -598,8 +598,6 @@ config IRQ_PER_CPU
 
 source "arch/ia64/hp/sim/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/ia64/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/m32r/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m32r/Kconfig	2007-11-11 22:01:51.000000000 -0500
+++ linux-2.6-lttng/arch/m32r/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -429,8 +429,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/m32r/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/m68k/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m68k/Kconfig	2007-11-11 22:01:26.000000000 -0500
+++ linux-2.6-lttng/arch/m68k/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -683,8 +683,6 @@ endmenu
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/m68k/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/m68knommu/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m68knommu/Kconfig	2007-11-11 22:01:26.000000000 -0500
+++ linux-2.6-lttng/arch/m68knommu/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -707,8 +707,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/m68knommu/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/mips/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/mips/Kconfig	2007-11-11 22:01:51.000000000 -0500
+++ linux-2.6-lttng/arch/mips/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -2031,8 +2031,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/mips/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/parisc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/parisc/Kconfig	2007-11-11 22:01:51.000000000 -0500
+++ linux-2.6-lttng/arch/parisc/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -270,8 +270,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/parisc/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/powerpc/Kconfig	2007-11-11 22:01:56.000000000 -0500
+++ linux-2.6-lttng/arch/powerpc/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -675,8 +675,6 @@ source "arch/powerpc/sysdev/qe_lib/Kconf
 
 source "lib/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/powerpc/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ppc/Kconfig	2007-11-11 22:01:56.000000000 -0500
+++ linux-2.6-lttng/arch/ppc/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -1323,8 +1323,6 @@ endmenu
 
 source "lib/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/ppc/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/s390/Kconfig	2007-11-11 22:01:56.000000000 -0500
+++ linux-2.6-lttng/arch/s390/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -535,8 +535,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/s390/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/sh/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh/Kconfig	2007-11-11 22:01:51.000000000 -0500
+++ linux-2.6-lttng/arch/sh/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -757,8 +757,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/sh/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/sh64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh64/Kconfig	2007-11-11 22:01:51.000000000 -0500
+++ linux-2.6-lttng/arch/sh64/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -287,8 +287,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/sh64/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/sparc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/Kconfig	2007-11-11 22:01:51.000000000 -0500
+++ linux-2.6-lttng/arch/sparc/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -323,8 +323,6 @@ endmenu
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/sparc/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc64/Kconfig	2007-11-11 22:01:56.000000000 -0500
+++ linux-2.6-lttng/arch/sparc64/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -468,8 +468,6 @@ source "drivers/sbus/char/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/sparc64/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/um/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/um/Kconfig	2007-11-11 22:01:26.000000000 -0500
+++ linux-2.6-lttng/arch/um/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -289,6 +289,4 @@ config INPUT
 	bool
 	default n
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/um/Kconfig.debug"
Index: linux-2.6-lttng/arch/v850/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/v850/Kconfig	2007-11-11 22:01:26.000000000 -0500
+++ linux-2.6-lttng/arch/v850/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -331,8 +331,6 @@ source "sound/Kconfig"
 
 source "drivers/usb/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/v850/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/x86/Kconfig.i386
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.i386	2007-11-11 22:01:56.000000000 -0500
+++ linux-2.6-lttng/arch/x86/Kconfig.i386	2007-11-11 22:02:03.000000000 -0500
@@ -1276,8 +1276,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/x86/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/x86/Kconfig.x86_64
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.x86_64	2007-11-11 22:01:56.000000000 -0500
+++ linux-2.6-lttng/arch/x86/Kconfig.x86_64	2007-11-11 22:02:03.000000000 -0500
@@ -834,8 +834,6 @@ source "drivers/firmware/Kconfig"
 
 source fs/Kconfig
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/x86/Kconfig.debug"
 
 source "security/Kconfig"
Index: linux-2.6-lttng/arch/xtensa/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/xtensa/Kconfig	2007-11-11 22:01:26.000000000 -0500
+++ linux-2.6-lttng/arch/xtensa/Kconfig	2007-11-11 22:02:03.000000000 -0500
@@ -251,8 +251,6 @@ config EMBEDDED_RAMDISK_IMAGE
 	  provide one yourself.
 endmenu
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/xtensa/Kconfig.debug"
 
 source "security/Kconfig"

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-13 14:26 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers
@ 2007-11-14 19:41   ` Sam Ravnborg
  2007-11-14 21:35     ` Mathieu Desnoyers
  0 siblings, 1 reply; 17+ messages in thread
From: Sam Ravnborg @ 2007-11-14 19:41 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: akpm, linux-kernel, Linus Torvalds

Hi Mathieu.

> 
> It would be much better to do
> 
>         depends on ARCH_SUPPORTS_KPROBES
> 
> in that generic file, and then architectures that do support it would just
> have a
> 
>         bool ARCH_SUPPORTS_KPROBES
>                 default y

The above suggestion is actually not exactly the best way to do it...
First the naming..
A quick grep shows following usage today (in Kconfig files)
ARCH_HAS	51
ARCH_SUPPORTS	4
HAVE_ARCH	7

ARCH_HAS is the clear winner.


In the common Kconfig file do:

config FOO
	depends on ARCH_HAS_FOO
	bool "bla bla" 

config ARCH_HAS_FOO
	def_bool n


In the arch specific Kconfig file in a suitable place do:

config SUITABLE_OPTION
	select ARCH_HAS_FOO


The naming of ARCH_HAS_ is fixed and shall be:
ARCH_HAS_<config option it will enable>


Only a single line added pr. architecture.
And we will end up with a (maybe even commented) list of trivial selects.

Sorry for providing late feedback on this!

	Sam

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-14 19:41   ` Sam Ravnborg
@ 2007-11-14 21:35     ` Mathieu Desnoyers
  2007-11-14 21:54       ` Sam Ravnborg
  0 siblings, 1 reply; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-14 21:35 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: akpm, linux-kernel, Linus Torvalds

* Sam Ravnborg (sam@ravnborg.org) wrote:
> Hi Mathieu.
> 
> > 
> > It would be much better to do
> > 
> >         depends on ARCH_SUPPORTS_KPROBES
> > 
> > in that generic file, and then architectures that do support it would just
> > have a
> > 
> >         bool ARCH_SUPPORTS_KPROBES
> >                 default y
> 
> The above suggestion is actually not exactly the best way to do it...
> First the naming..
> A quick grep shows following usage today (in Kconfig files)
> ARCH_HAS	51
> ARCH_SUPPORTS	4
> HAVE_ARCH	7
> 
> ARCH_HAS is the clear winner.
> 
> 
> In the common Kconfig file do:
> 
> config FOO
> 	depends on ARCH_HAS_FOO
> 	bool "bla bla" 
> 
> config ARCH_HAS_FOO
> 	def_bool n
> 
> 
> In the arch specific Kconfig file in a suitable place do:
> 
> config SUITABLE_OPTION

Since config KPROBES will already be used in the architecture
independent Kconfig, I should find a different name for "config
SUITABLE_OPTION". Would

config KPROBES_SUPPORT
  select ARCH_HAS_KPROBES

be ok ?

> 	select ARCH_HAS_FOO
> 
> 
> The naming of ARCH_HAS_ is fixed and shall be:
> ARCH_HAS_<config option it will enable>
> 
> 
> Only a single line added pr. architecture.
> And we will end up with a (maybe even commented) list of trivial selects.
> 
> Sorry for providing late feedback on this!
> 
> 	Sam

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-14 21:35     ` Mathieu Desnoyers
@ 2007-11-14 21:54       ` Sam Ravnborg
  0 siblings, 0 replies; 17+ messages in thread
From: Sam Ravnborg @ 2007-11-14 21:54 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: akpm, linux-kernel, Linus Torvalds

> > 
> > 
> > In the arch specific Kconfig file in a suitable place do:
> > 
> > config SUITABLE_OPTION
> 
> Since config KPROBES will already be used in the architecture
> independent Kconfig, I should find a different name for "config
> SUITABLE_OPTION". Would
> 
> config KPROBES_SUPPORT
>   select ARCH_HAS_KPROBES
> 
> be ok ?

I should have been more specific here.

We do NOT want a dedicated config symbol just for this.
For x86 use X86
For arm use ARM
For sparc64 use SPARC64
For sparc use SPARC32

etc. you get the picture.

For x86 (where I spend a fair amount of time recently)
there are several candidates to be moved to such a select
list.
Only reason not to do it then was to keep changes minimal.

It would look like this:

config X86
	select ARCH_HAS_KPROBES        # yada yada
	select ARCH_HAS_FOO            # more yada yada

If you select an undefined symbol kconfig will warn you so keep
an eye out for this (among all the other warnings kconfig spits out).

arm uses this for the different boards as a good example.
But they do not have the common-prefix rule in place.

	Sam

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-16  2:30       ` Andrew Morton
@ 2007-11-16  3:10         ` Mathieu Desnoyers
  0 siblings, 0 replies; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-16  3:10 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-kernel, Linus Torvalds, Sam Ravnborg, Ananth N Mavinakayanahalli

* Andrew Morton (akpm@linux-foundation.org) wrote:
> On Thu, 15 Nov 2007 21:23:19 -0500 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:
> 
> > * Andrew Morton (akpm@linux-foundation.org) wrote:
> > > On Thu, 15 Nov 2007 20:59:27 -0500 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:
> > > 
> > > >  arch/x86/Kconfig.i386          |    1 +
> > > >  arch/x86/Kconfig.x86_64        |    1 +
> > > 
> > > these no longer exist.
> > 
> > Ok, should I prepare a fix or is it duplicated work ?
> 
> I fixed the new patches, then had a go at fixing the thus-broken kprobes
> ones and the resulting mess caused me to give up and drop both patchsets.
> 
> 

Arg.. yet another change of mid from Sam.. he prefers 

HAVE_* to ARCH_HAS_*.

will it ever stop...... ?

Please don't merge my previous patchset, I'll resend them. I will adapt
them accordingly.

Mathieu

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-16  2:36 [patch 0/4] Instrumentation menu removal, updated to 2.6.24-rc2-git5 Mathieu Desnoyers
@ 2007-11-16  2:36 ` Mathieu Desnoyers
  0 siblings, 0 replies; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-16  2:36 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: Mathieu Desnoyers, Linus Torvalds, Sam Ravnborg

[-- Attachment #1: add-arch-supports-oprofile.patch --]
[-- Type: text/plain, Size: 9665 bytes --]

Linus:
On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like

        depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32

really shouldn't exist in a file like kernel/Kconfig.instrumentation.

It would be much better to do

        depends on ARCH_SUPPORTS_KPROBES

in that generic file, and then architectures that do support it would just
have a

        bool ARCH_SUPPORTS_KPROBES
                default y

in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...

Changelog:

Actually, I know I gave this as the magic incantation, but now that I see
it, I realize that I should have told you to just use

        config ARCH_SUPPORTS_KPROBES
                def_bool y

instead, which is a bit denser.

We seem to use both kinds of syntax for these things, but this is really
what "def_bool" is there for...

- Use ARCH_HAS_* instead of ARCH_SUPPORTS).
- Use a select ARCH_HAS_*

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Sam Ravnborg <sam@ravnborg.org>
---
 arch/alpha/Kconfig             |    1 +
 arch/arm/Kconfig               |    1 +
 arch/blackfin/Kconfig          |    1 +
 arch/ia64/Kconfig              |    1 +
 arch/m32r/Kconfig              |    1 +
 arch/mips/Kconfig              |    1 +
 arch/parisc/Kconfig            |    1 +
 arch/powerpc/Kconfig           |    1 +
 arch/ppc/Kconfig               |    1 +
 arch/s390/Kconfig              |    1 +
 arch/sh/Kconfig                |    1 +
 arch/sh64/Kconfig              |    1 +
 arch/sparc/Kconfig             |    1 +
 arch/sparc64/Kconfig           |    1 +
 arch/x86/Kconfig               |    1 +
 kernel/Kconfig.instrumentation |    5 ++++-
 16 files changed, 19 insertions(+), 1 deletion(-)

Index: linux-2.6-lttng/arch/alpha/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/alpha/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/alpha/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -5,6 +5,7 @@
 config ALPHA
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 	help
 	  The Alpha is a 64-bit general-purpose processor designed and
 	  marketed by the Digital Equipment Corporation of blessed memory,
Index: linux-2.6-lttng/arch/arm/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/arm/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/arm/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -10,6 +10,7 @@ config ARM
 	default y
 	select RTC_LIB
 	select SYS_SUPPORTS_APM_EMULATION
+	select ARCH_HAS_OPROFILE
 	help
 	  The ARM series is a line of low-power-consumption RISC chip designs
 	  licensed by ARM Ltd and targeted at embedded applications and
Index: linux-2.6-lttng/arch/blackfin/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/blackfin/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/blackfin/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -24,6 +24,7 @@ config RWSEM_XCHGADD_ALGORITHM
 config BLACKFIN
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config ZONE_DMA
 	bool
Index: linux-2.6-lttng/arch/ia64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ia64/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/ia64/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -15,6 +15,7 @@ config IA64
 	select ACPI if (!IA64_HP_SIM)
 	select PM if (!IA64_HP_SIM)
 	select ARCH_SUPPORTS_MSI
+	select ARCH_HAS_OPROFILE
 	default y
 	help
 	  The Itanium Processor Family is Intel's 64-bit successor to
Index: linux-2.6-lttng/arch/m32r/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m32r/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/m32r/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -8,6 +8,7 @@ mainmenu "Linux/M32R Kernel Configuratio
 config M32R
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config SBUS
 	bool
Index: linux-2.6-lttng/arch/mips/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/mips/Kconfig	2007-11-15 21:18:40.000000000 -0500
+++ linux-2.6-lttng/arch/mips/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -1,6 +1,7 @@
 config MIPS
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 	# Horrible source of confusion.  Die, die, die ...
 	select EMBEDDED
 	select RTC_LIB
Index: linux-2.6-lttng/arch/parisc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/parisc/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/parisc/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -7,6 +7,7 @@ mainmenu "Linux/PA-RISC Kernel Configura
 
 config PARISC
 	def_bool y
+	select ARCH_HAS_OPROFILE
 	help
 	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
 	  in many of their workstations & servers (HP9000 700 and 800 series,
Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/powerpc/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/powerpc/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -79,6 +79,7 @@ config ARCH_NO_VIRT_TO_BUS
 config PPC
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config EARLY_PRINTK
 	bool
Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ppc/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/ppc/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -42,6 +42,7 @@ config GENERIC_CALIBRATE_DELAY
 config PPC
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config PPC32
 	bool
Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/s390/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/s390/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -51,6 +51,7 @@ mainmenu "Linux Kernel Configuration"
 
 config S390
 	def_bool y
+	select ARCH_HAS_OPROFILE
 
 source "init/Kconfig"
 
Index: linux-2.6-lttng/arch/sh/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/sh/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -9,6 +9,7 @@ config SUPERH
 	bool
 	default y
 	select EMBEDDED
+	select ARCH_HAS_OPROFILE
 	help
 	  The SuperH is a RISC processor targeted for use in embedded systems
 	  and consumer electronics; it was also used in the Sega Dreamcast
Index: linux-2.6-lttng/arch/sh64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh64/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/sh64/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -8,6 +8,7 @@ mainmenu "Linux/SH64 Kernel Configuratio
 config SUPERH
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config SUPERH64
 	bool
Index: linux-2.6-lttng/arch/sparc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/Kconfig	2007-11-15 21:15:48.000000000 -0500
+++ linux-2.6-lttng/arch/sparc/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -63,6 +63,7 @@ config NR_CPUS
 config SPARC
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 # Identify this as a Sparc32 build
 config SPARC32
Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc64/Kconfig	2007-11-15 21:15:49.000000000 -0500
+++ linux-2.6-lttng/arch/sparc64/Kconfig	2007-11-15 21:23:35.000000000 -0500
@@ -8,6 +8,7 @@ mainmenu "Linux/UltraSPARC Kernel Config
 config SPARC
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config SPARC64
 	bool
Index: linux-2.6-lttng/kernel/Kconfig.instrumentation
===================================================================
--- linux-2.6-lttng.orig/kernel/Kconfig.instrumentation	2007-11-15 21:15:49.000000000 -0500
+++ linux-2.6-lttng/kernel/Kconfig.instrumentation	2007-11-15 21:23:35.000000000 -0500
@@ -21,7 +21,7 @@ config PROFILING
 config OPROFILE
 	tristate "OProfile system profiling (EXPERIMENTAL)"
 	depends on PROFILING
-	depends on ALPHA || ARM || BLACKFIN || X86_32 || IA64 || M32R || MIPS || PARISC || PPC || S390 || SUPERH || SPARC || X86_64
+	depends on ARCH_HAS_OPROFILE
 	help
 	  OProfile is a profiling system capable of profiling the
 	  whole system, include the kernel, kernel modules, libraries,
@@ -29,6 +29,9 @@ config OPROFILE
 
 	  If unsure, say N.
 
+config ARCH_HAS_OPROFILE
+	def_bool n
+
 config KPROBES
 	bool "Kprobes"
 	depends on KALLSYMS && MODULES
Index: linux-2.6-lttng/arch/x86/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig	2007-11-15 21:24:36.000000000 -0500
+++ linux-2.6-lttng/arch/x86/Kconfig	2007-11-15 21:24:43.000000000 -0500
@@ -19,6 +19,7 @@ config X86_64
 config X86
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config GENERIC_TIME
 	bool

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-16  2:23     ` Mathieu Desnoyers
@ 2007-11-16  2:30       ` Andrew Morton
  2007-11-16  3:10         ` Mathieu Desnoyers
  0 siblings, 1 reply; 17+ messages in thread
From: Andrew Morton @ 2007-11-16  2:30 UTC (permalink / raw)
  To: Mathieu Desnoyers
  Cc: linux-kernel, Linus Torvalds, Sam Ravnborg, Ananth N Mavinakayanahalli

On Thu, 15 Nov 2007 21:23:19 -0500 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:

> * Andrew Morton (akpm@linux-foundation.org) wrote:
> > On Thu, 15 Nov 2007 20:59:27 -0500 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:
> > 
> > >  arch/x86/Kconfig.i386          |    1 +
> > >  arch/x86/Kconfig.x86_64        |    1 +
> > 
> > these no longer exist.
> 
> Ok, should I prepare a fix or is it duplicated work ?

I fixed the new patches, then had a go at fixing the thus-broken kprobes
ones and the resulting mess caused me to give up and drop both patchsets.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-16  2:08   ` Andrew Morton
@ 2007-11-16  2:23     ` Mathieu Desnoyers
  2007-11-16  2:30       ` Andrew Morton
  0 siblings, 1 reply; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-16  2:23 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Linus Torvalds, Sam Ravnborg

* Andrew Morton (akpm@linux-foundation.org) wrote:
> On Thu, 15 Nov 2007 20:59:27 -0500 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:
> 
> >  arch/x86/Kconfig.i386          |    1 +
> >  arch/x86/Kconfig.x86_64        |    1 +
> 
> these no longer exist.

Ok, should I prepare a fix or is it duplicated work ?

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-16  1:59 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers
@ 2007-11-16  2:08   ` Andrew Morton
  2007-11-16  2:23     ` Mathieu Desnoyers
  0 siblings, 1 reply; 17+ messages in thread
From: Andrew Morton @ 2007-11-16  2:08 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: linux-kernel, Linus Torvalds, Sam Ravnborg

On Thu, 15 Nov 2007 20:59:27 -0500 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:

>  arch/x86/Kconfig.i386          |    1 +
>  arch/x86/Kconfig.x86_64        |    1 +

these no longer exist.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-16  1:59 [patch 0/4] Updated instrumentation menu patches Mathieu Desnoyers
@ 2007-11-16  1:59 ` Mathieu Desnoyers
  2007-11-16  2:08   ` Andrew Morton
  0 siblings, 1 reply; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-16  1:59 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: Mathieu Desnoyers, Linus Torvalds, Sam Ravnborg

[-- Attachment #1: add-arch-supports-oprofile.patch --]
[-- Type: text/plain, Size: 10398 bytes --]

Linus:
On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like

        depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32

really shouldn't exist in a file like kernel/Kconfig.instrumentation.

It would be much better to do

        depends on ARCH_SUPPORTS_KPROBES

in that generic file, and then architectures that do support it would just
have a

        bool ARCH_SUPPORTS_KPROBES
                default y

in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...

Changelog:

Actually, I know I gave this as the magic incantation, but now that I see
it, I realize that I should have told you to just use

        config ARCH_SUPPORTS_KPROBES
                def_bool y

instead, which is a bit denser.

We seem to use both kinds of syntax for these things, but this is really
what "def_bool" is there for...

- Use ARCH_HAS_* instead of ARCH_SUPPORTS).
- Use a select ARCH_HAS_*

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Sam Ravnborg <sam@ravnborg.org>
---
 arch/alpha/Kconfig             |    1 +
 arch/arm/Kconfig               |    1 +
 arch/blackfin/Kconfig          |    1 +
 arch/ia64/Kconfig              |    1 +
 arch/m32r/Kconfig              |    1 +
 arch/mips/Kconfig              |    1 +
 arch/parisc/Kconfig            |    1 +
 arch/powerpc/Kconfig           |    1 +
 arch/ppc/Kconfig               |    1 +
 arch/s390/Kconfig              |    1 +
 arch/sh/Kconfig                |    1 +
 arch/sh64/Kconfig              |    1 +
 arch/sparc/Kconfig             |    1 +
 arch/sparc64/Kconfig           |    1 +
 arch/x86/Kconfig.i386          |    1 +
 arch/x86/Kconfig.x86_64        |    1 +
 kernel/Kconfig.instrumentation |    5 ++++-
 17 files changed, 20 insertions(+), 1 deletion(-)

Index: linux-2.6-lttng/arch/alpha/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/alpha/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/alpha/Kconfig	2007-11-14 17:04:59.000000000 -0500
@@ -5,6 +5,7 @@
 config ALPHA
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 	help
 	  The Alpha is a 64-bit general-purpose processor designed and
 	  marketed by the Digital Equipment Corporation of blessed memory,
Index: linux-2.6-lttng/arch/arm/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/arm/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/arm/Kconfig	2007-11-14 17:05:08.000000000 -0500
@@ -10,6 +10,7 @@ config ARM
 	default y
 	select RTC_LIB
 	select SYS_SUPPORTS_APM_EMULATION
+	select ARCH_HAS_OPROFILE
 	help
 	  The ARM series is a line of low-power-consumption RISC chip designs
 	  licensed by ARM Ltd and targeted at embedded applications and
Index: linux-2.6-lttng/arch/blackfin/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/blackfin/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/blackfin/Kconfig	2007-11-14 17:10:25.000000000 -0500
@@ -24,6 +24,7 @@ config RWSEM_XCHGADD_ALGORITHM
 config BLACKFIN
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config ZONE_DMA
 	bool
Index: linux-2.6-lttng/arch/ia64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ia64/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/ia64/Kconfig	2007-11-14 17:12:54.000000000 -0500
@@ -15,6 +15,7 @@ config IA64
 	select ACPI if (!IA64_HP_SIM)
 	select PM if (!IA64_HP_SIM)
 	select ARCH_SUPPORTS_MSI
+	select ARCH_HAS_OPROFILE
 	default y
 	help
 	  The Itanium Processor Family is Intel's 64-bit successor to
Index: linux-2.6-lttng/arch/m32r/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m32r/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/m32r/Kconfig	2007-11-14 17:10:49.000000000 -0500
@@ -8,6 +8,7 @@ mainmenu "Linux/M32R Kernel Configuratio
 config M32R
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config SBUS
 	bool
Index: linux-2.6-lttng/arch/mips/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/mips/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/mips/Kconfig	2007-11-14 17:06:22.000000000 -0500
@@ -1,6 +1,7 @@
 config MIPS
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 	# Horrible source of confusion.  Die, die, die ...
 	select EMBEDDED
 	select RTC_LIB
Index: linux-2.6-lttng/arch/parisc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/parisc/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/parisc/Kconfig	2007-11-14 17:06:39.000000000 -0500
@@ -7,6 +7,7 @@ mainmenu "Linux/PA-RISC Kernel Configura
 
 config PARISC
 	def_bool y
+	select ARCH_HAS_OPROFILE
 	help
 	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
 	  in many of their workstations & servers (HP9000 700 and 800 series,
Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/powerpc/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/powerpc/Kconfig	2007-11-14 17:12:54.000000000 -0500
@@ -79,6 +79,7 @@ config ARCH_NO_VIRT_TO_BUS
 config PPC
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config EARLY_PRINTK
 	bool
Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ppc/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/ppc/Kconfig	2007-11-14 17:12:54.000000000 -0500
@@ -42,6 +42,7 @@ config GENERIC_CALIBRATE_DELAY
 config PPC
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config PPC32
 	bool
Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/s390/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/s390/Kconfig	2007-11-14 17:12:54.000000000 -0500
@@ -51,6 +51,7 @@ mainmenu "Linux Kernel Configuration"
 
 config S390
 	def_bool y
+	select ARCH_HAS_OPROFILE
 
 source "init/Kconfig"
 
Index: linux-2.6-lttng/arch/sh/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/sh/Kconfig	2007-11-14 17:08:24.000000000 -0500
@@ -9,6 +9,7 @@ config SUPERH
 	bool
 	default y
 	select EMBEDDED
+	select ARCH_HAS_OPROFILE
 	help
 	  The SuperH is a RISC processor targeted for use in embedded systems
 	  and consumer electronics; it was also used in the Sega Dreamcast
Index: linux-2.6-lttng/arch/sh64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh64/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/sh64/Kconfig	2007-11-14 17:08:40.000000000 -0500
@@ -8,6 +8,7 @@ mainmenu "Linux/SH64 Kernel Configuratio
 config SUPERH
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config SUPERH64
 	bool
Index: linux-2.6-lttng/arch/sparc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/sparc/Kconfig	2007-11-14 17:08:59.000000000 -0500
@@ -63,6 +63,7 @@ config NR_CPUS
 config SPARC
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 # Identify this as a Sparc32 build
 config SPARC32
Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc64/Kconfig	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/sparc64/Kconfig	2007-11-14 17:12:54.000000000 -0500
@@ -8,6 +8,7 @@ mainmenu "Linux/UltraSPARC Kernel Config
 config SPARC
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 
 config SPARC64
 	bool
Index: linux-2.6-lttng/arch/x86/Kconfig.i386
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.i386	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/x86/Kconfig.i386	2007-11-14 17:12:54.000000000 -0500
@@ -8,6 +8,7 @@ mainmenu "Linux Kernel Configuration"
 config X86_32
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 	help
 	  This is Linux's home port.  Linux was originally native to the Intel
 	  386, and runs on all the later x86 processors including the Intel
Index: linux-2.6-lttng/arch/x86/Kconfig.x86_64
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.x86_64	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/arch/x86/Kconfig.x86_64	2007-11-14 17:12:54.000000000 -0500
@@ -12,6 +12,7 @@ mainmenu "Linux Kernel Configuration"
 config X86_64
 	bool
 	default y
+	select ARCH_HAS_OPROFILE
 	help
 	  Port to the x86-64 architecture. x86-64 is a 64-bit extension to the
 	  classical 32-bit x86 architecture. For details see
Index: linux-2.6-lttng/kernel/Kconfig.instrumentation
===================================================================
--- linux-2.6-lttng.orig/kernel/Kconfig.instrumentation	2007-11-14 17:03:05.000000000 -0500
+++ linux-2.6-lttng/kernel/Kconfig.instrumentation	2007-11-14 17:12:54.000000000 -0500
@@ -21,7 +21,7 @@ config PROFILING
 config OPROFILE
 	tristate "OProfile system profiling (EXPERIMENTAL)"
 	depends on PROFILING
-	depends on ALPHA || ARM || BLACKFIN || X86_32 || IA64 || M32R || MIPS || PARISC || PPC || S390 || SUPERH || SPARC || X86_64
+	depends on ARCH_HAS_OPROFILE
 	help
 	  OProfile is a profiling system capable of profiling the
 	  whole system, include the kernel, kernel modules, libraries,
@@ -29,6 +29,9 @@ config OPROFILE
 
 	  If unsure, say N.
 
+config ARCH_HAS_OPROFILE
+	def_bool n
+
 config KPROBES
 	bool "Kprobes"
 	depends on KALLSYMS && MODULES

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-11-06 20:37 [patch 0/4] Move Instrumentation Support menu to arch/Kconfig Mathieu Desnoyers
@ 2007-11-06 20:37 ` Mathieu Desnoyers
  0 siblings, 0 replies; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-11-06 20:37 UTC (permalink / raw)
  To: akpm, linux-kernel, Haavard Skinnemoen
  Cc: Mathieu Desnoyers, Linus Torvalds, Sam Ravnborg

[-- Attachment #1: add-arch-supports-oprofile.patch --]
[-- Type: text/plain, Size: 9931 bytes --]

Linus:
On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like

        depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32

really shouldn't exist in a file like kernel/Kconfig.instrumentation.

It would be much better to do

        depends on ARCH_SUPPORTS_KPROBES

in that generic file, and then architectures that do support it would just
have a

        bool ARCH_SUPPORTS_KPROBES
                default y

in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...

Changelog:

Actually, I know I gave this as the magic incantation, but now that I see
it, I realize that I should have told you to just use

        config ARCH_SUPPORTS_KPROBES
                def_bool y

instead, which is a bit denser.

We seem to use both kinds of syntax for these things, but this is really
what "def_bool" is there for...

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Sam Ravnborg <sam@ravnborg.org>
---
 arch/alpha/Kconfig             |    3 +++
 arch/arm/Kconfig               |    3 +++
 arch/blackfin/Kconfig          |    3 +++
 arch/ia64/Kconfig              |    3 +++
 arch/m32r/Kconfig              |    3 +++
 arch/mips/Kconfig              |    3 +++
 arch/parisc/Kconfig            |    3 +++
 arch/powerpc/Kconfig           |    3 +++
 arch/ppc/Kconfig               |    3 +++
 arch/s390/Kconfig              |    3 +++
 arch/sh/Kconfig                |    3 +++
 arch/sh64/Kconfig              |    3 +++
 arch/sparc/Kconfig             |    3 +++
 arch/sparc64/Kconfig           |    3 +++
 arch/x86/Kconfig.i386          |    3 +++
 arch/x86/Kconfig.x86_64        |    3 +++
 kernel/Kconfig.instrumentation |    2 +-
 17 files changed, 49 insertions(+), 1 deletion(-)

Index: linux-2.6-lttng/arch/alpha/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/alpha/Kconfig	2007-11-02 13:20:47.000000000 -0400
+++ linux-2.6-lttng/arch/alpha/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -66,6 +66,9 @@ config AUTO_IRQ_AFFINITY
 	depends on SMP
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng/arch/arm/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/arm/Kconfig	2007-11-02 13:20:47.000000000 -0400
+++ linux-2.6-lttng/arch/arm/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -114,6 +114,9 @@ config GENERIC_CALIBRATE_DELAY
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 config ARCH_MAY_HAVE_PC_FDC
 	bool
 
Index: linux-2.6-lttng/arch/blackfin/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/blackfin/Kconfig	2007-11-02 13:20:47.000000000 -0400
+++ linux-2.6-lttng/arch/blackfin/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -69,6 +69,9 @@ config GENERIC_CALIBRATE_DELAY
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 config IRQCHIP_DEMUX_GPIO
 	bool
 	depends on (BF52x || BF53x || BF561 || BF54x)
Index: linux-2.6-lttng/arch/ia64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ia64/Kconfig	2007-11-02 13:20:47.000000000 -0400
+++ linux-2.6-lttng/arch/ia64/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -99,6 +99,9 @@ config AUDIT_ARCH
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 choice
 	prompt "System type"
 	default IA64_GENERIC
Index: linux-2.6-lttng/arch/m32r/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m32r/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/m32r/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -34,6 +34,9 @@ config NO_IOPORT
 config NO_DMA
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng/arch/mips/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/mips/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/mips/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -721,6 +721,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 	bool
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 #
 # Select some configuration options automatically based on user selections.
 #
Index: linux-2.6-lttng/arch/parisc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/parisc/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/parisc/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -69,6 +69,9 @@ config IRQ_PER_CPU
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 # unless you want to implement ACPI on PA-RISC ... ;-)
 config PM
 	bool
Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/powerpc/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/powerpc/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -163,6 +163,9 @@ config PPC_OF_PLATFORM_PCI
 	depends on PPC64 # not supported on 32 bits yet
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 source "arch/powerpc/platforms/Kconfig"
Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ppc/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/ppc/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -69,6 +69,9 @@ config GENERIC_BUG
 	default y
 	depends on BUG
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor"
Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/s390/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/s390/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -52,6 +52,9 @@ mainmenu "Linux Kernel Configuration"
 config S390
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Base setup"
Index: linux-2.6-lttng/arch/sh/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/sh/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -93,6 +93,9 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_NO_VIRT_TO_BUS
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "System type"
Index: linux-2.6-lttng/arch/sh64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh64/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/sh64/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -58,6 +58,9 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_NO_VIRT_TO_BUS
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source init/Kconfig
 
 menu "System type"
Index: linux-2.6-lttng/arch/sparc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/sparc/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -27,6 +27,9 @@ config ARCH_NO_VIRT_TO_BUS
 config OF
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "General machine setup"
Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc64/Kconfig	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/sparc64/Kconfig	2007-11-02 13:20:54.000000000 -0400
@@ -76,6 +76,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 	bool
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 choice
 	prompt "Kernel page size"
 	default SPARC64_PAGE_SIZE_8KB
Index: linux-2.6-lttng/arch/x86/Kconfig.i386
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.i386	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/x86/Kconfig.i386	2007-11-02 13:20:54.000000000 -0400
@@ -91,6 +91,9 @@ config DMI
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor type and features"
Index: linux-2.6-lttng/arch/x86/Kconfig.x86_64
===================================================================
--- linux-2.6-lttng.orig/arch/x86/Kconfig.x86_64	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/arch/x86/Kconfig.x86_64	2007-11-02 13:20:54.000000000 -0400
@@ -133,6 +133,9 @@ config ARCH_HAS_ILOG2_U64
 	bool
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng/kernel/Kconfig.instrumentation
===================================================================
--- linux-2.6-lttng.orig/kernel/Kconfig.instrumentation	2007-11-02 13:20:48.000000000 -0400
+++ linux-2.6-lttng/kernel/Kconfig.instrumentation	2007-11-02 13:20:54.000000000 -0400
@@ -21,7 +21,7 @@ config PROFILING
 config OPROFILE
 	tristate "OProfile system profiling (EXPERIMENTAL)"
 	depends on PROFILING
-	depends on ALPHA || ARM || BLACKFIN || X86_32 || IA64 || M32R || MIPS || PARISC || PPC || S390 || SUPERH || SPARC || X86_64
+	depends on ARCH_SUPPORTS_OPROFILE
 	help
 	  OProfile is a profiling system capable of profiling the
 	  whole system, include the kernel, kernel modules, libraries,

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-10-31  1:03 [patch 0/4] Add ARCH_SUPPORTS_KPROBES (take 2) Mathieu Desnoyers
@ 2007-10-31  1:03 ` Mathieu Desnoyers
  0 siblings, 0 replies; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-10-31  1:03 UTC (permalink / raw)
  To: linux-kernel; +Cc: Mathieu Desnoyers, Linus Torvalds, Sam Ravnborg

[-- Attachment #1: add-arch-supports-oprofile.patch --]
[-- Type: text/plain, Size: 10304 bytes --]

Linus:
On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like

        depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32

really shouldn't exist in a file like kernel/Kconfig.instrumentation.

It would be much better to do

        depends on ARCH_SUPPORTS_KPROBES

in that generic file, and then architectures that do support it would just
have a

        bool ARCH_SUPPORTS_KPROBES
                default y

in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...

Changelog:

Actually, I know I gave this as the magic incantation, but now that I see
it, I realize that I should have told you to just use

        config ARCH_SUPPORTS_KPROBES
                def_bool y

instead, which is a bit denser.

We seem to use both kinds of syntax for these things, but this is really
what "def_bool" is there for...

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Sam Ravnborg <sam@ravnborg.org>
---
 arch/alpha/Kconfig             |    4 ++++
 arch/arm/Kconfig               |    4 ++++
 arch/blackfin/Kconfig          |    4 ++++
 arch/ia64/Kconfig              |    4 ++++
 arch/m32r/Kconfig              |    4 ++++
 arch/mips/Kconfig              |    4 ++++
 arch/parisc/Kconfig            |    4 ++++
 arch/powerpc/Kconfig           |    4 ++++
 arch/ppc/Kconfig               |    4 ++++
 arch/s390/Kconfig              |    4 ++++
 arch/sh/Kconfig                |    4 ++++
 arch/sh64/Kconfig              |    4 ++++
 arch/sparc/Kconfig             |    4 ++++
 arch/sparc64/Kconfig           |    4 ++++
 arch/x86/Kconfig.i386          |    4 ++++
 arch/x86/Kconfig.x86_64        |    4 ++++
 kernel/Kconfig.instrumentation |    2 +-
 17 files changed, 65 insertions(+), 1 deletion(-)

Index: linux-2.6-lttng.stable/arch/alpha/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/alpha/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/alpha/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -66,6 +66,9 @@ config AUTO_IRQ_AFFINITY
 	depends on SMP
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng.stable/arch/arm/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/arm/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/arm/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -114,6 +114,9 @@ config GENERIC_CALIBRATE_DELAY
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 config ARCH_MAY_HAVE_PC_FDC
 	bool
 
Index: linux-2.6-lttng.stable/arch/blackfin/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/blackfin/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/blackfin/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -69,6 +69,9 @@ config GENERIC_CALIBRATE_DELAY
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 config IRQCHIP_DEMUX_GPIO
 	bool
 	depends on (BF52x || BF53x || BF561 || BF54x)
Index: linux-2.6-lttng.stable/arch/ia64/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/ia64/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/ia64/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -99,6 +99,9 @@ config AUDIT_ARCH
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 choice
 	prompt "System type"
 	default IA64_GENERIC
Index: linux-2.6-lttng.stable/arch/m32r/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/m32r/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/m32r/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -34,6 +34,9 @@ config NO_IOPORT
 config NO_DMA
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng.stable/arch/mips/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/mips/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/mips/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -721,6 +721,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 	bool
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 #
 # Select some configuration options automatically based on user selections.
 #
Index: linux-2.6-lttng.stable/arch/parisc/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/parisc/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/parisc/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -69,6 +69,9 @@ config IRQ_PER_CPU
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 # unless you want to implement ACPI on PA-RISC ... ;-)
 config PM
 	bool
Index: linux-2.6-lttng.stable/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/powerpc/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/powerpc/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -163,6 +163,9 @@ config PPC_OF_PLATFORM_PCI
 	depends on PPC64 # not supported on 32 bits yet
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 source "arch/powerpc/platforms/Kconfig"
Index: linux-2.6-lttng.stable/arch/ppc/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/ppc/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/ppc/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -69,6 +69,9 @@ config GENERIC_BUG
 	default y
 	depends on BUG
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor"
Index: linux-2.6-lttng.stable/arch/s390/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/s390/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/s390/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -52,6 +52,9 @@ mainmenu "Linux Kernel Configuration"
 config S390
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Base setup"
Index: linux-2.6-lttng.stable/arch/sh/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/sh/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/sh/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -93,6 +93,9 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_NO_VIRT_TO_BUS
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "System type"
Index: linux-2.6-lttng.stable/arch/sh64/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/sh64/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/sh64/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -58,6 +58,9 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_NO_VIRT_TO_BUS
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source init/Kconfig
 
 menu "System type"
Index: linux-2.6-lttng.stable/arch/sparc/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/sparc/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/sparc/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -27,6 +27,9 @@ config ARCH_NO_VIRT_TO_BUS
 config OF
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "General machine setup"
Index: linux-2.6-lttng.stable/arch/sparc64/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/sparc64/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/sparc64/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -76,6 +76,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 	bool
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 choice
 	prompt "Kernel page size"
 	default SPARC64_PAGE_SIZE_8KB
Index: linux-2.6-lttng.stable/arch/x86/Kconfig.i386
===================================================================
--- linux-2.6-lttng.stable.orig/arch/x86/Kconfig.i386	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/x86/Kconfig.i386	2007-10-30 20:18:38.000000000 -0400
@@ -91,6 +91,9 @@ config DMI
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor type and features"
Index: linux-2.6-lttng.stable/arch/x86/Kconfig.x86_64
===================================================================
--- linux-2.6-lttng.stable.orig/arch/x86/Kconfig.x86_64	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/x86/Kconfig.x86_64	2007-10-30 20:18:38.000000000 -0400
@@ -133,6 +133,9 @@ config ARCH_HAS_ILOG2_U64
 	bool
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng.stable/kernel/Kconfig.instrumentation
===================================================================
--- linux-2.6-lttng.stable.orig/kernel/Kconfig.instrumentation	2007-10-30 20:18:54.000000000 -0400
+++ linux-2.6-lttng.stable/kernel/Kconfig.instrumentation	2007-10-30 20:19:05.000000000 -0400
@@ -21,7 +21,7 @@ config PROFILING
 config OPROFILE
 	tristate "OProfile system profiling (EXPERIMENTAL)"
 	depends on PROFILING
-	depends on ALPHA || ARM || BLACKFIN || X86_32 || IA64 || M32R || MIPS || PARISC || PPC || S390 || SUPERH || SPARC || X86_64
+	depends on ARCH_SUPPORTS_OPROFILE
 	help
 	  OProfile is a profiling system capable of profiling the
 	  whole system, include the kernel, kernel modules, libraries,

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [patch 2/4] Add ARCH_SUPPORTS_OPROFILE
  2007-10-31  0:31 [patch 0/4] Creation of arch/Kconfig for ARCH_SUPPORTS_* options Mathieu Desnoyers
@ 2007-10-31  0:31 ` Mathieu Desnoyers
  0 siblings, 0 replies; 17+ messages in thread
From: Mathieu Desnoyers @ 2007-10-31  0:31 UTC (permalink / raw)
  To: linux-kernel; +Cc: Mathieu Desnoyers, Linus Torvalds, Sam Ravnborg

[-- Attachment #1: add-arch-supports-oprofile.patch --]
[-- Type: text/plain, Size: 10071 bytes --]

Linus:
On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like

        depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32

really shouldn't exist in a file like kernel/Kconfig.instrumentation.

It would be much better to do

        depends on ARCH_SUPPORTS_KPROBES

in that generic file, and then architectures that do support it would just
have a

        bool ARCH_SUPPORTS_KPROBES
                default y

in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Sam Ravnborg <sam@ravnborg.org>
---
 arch/alpha/Kconfig             |    4 ++++
 arch/arm/Kconfig               |    4 ++++
 arch/blackfin/Kconfig          |    4 ++++
 arch/ia64/Kconfig              |    4 ++++
 arch/m32r/Kconfig              |    4 ++++
 arch/mips/Kconfig              |    4 ++++
 arch/parisc/Kconfig            |    4 ++++
 arch/powerpc/Kconfig           |    4 ++++
 arch/ppc/Kconfig               |    4 ++++
 arch/s390/Kconfig              |    4 ++++
 arch/sh/Kconfig                |    4 ++++
 arch/sh64/Kconfig              |    4 ++++
 arch/sparc/Kconfig             |    4 ++++
 arch/sparc64/Kconfig           |    4 ++++
 arch/x86/Kconfig.i386          |    4 ++++
 arch/x86/Kconfig.x86_64        |    4 ++++
 kernel/Kconfig.instrumentation |    2 +-
 17 files changed, 65 insertions(+), 1 deletion(-)

Index: linux-2.6-lttng.stable/arch/alpha/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/alpha/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/alpha/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -66,6 +66,10 @@ config AUTO_IRQ_AFFINITY
 	depends on SMP
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng.stable/arch/arm/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/arm/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/arm/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -114,6 +114,10 @@ config GENERIC_CALIBRATE_DELAY
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 config ARCH_MAY_HAVE_PC_FDC
 	bool
 
Index: linux-2.6-lttng.stable/arch/blackfin/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/blackfin/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/blackfin/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -69,6 +69,10 @@ config GENERIC_CALIBRATE_DELAY
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 config IRQCHIP_DEMUX_GPIO
 	bool
 	depends on (BF52x || BF53x || BF561 || BF54x)
Index: linux-2.6-lttng.stable/arch/ia64/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/ia64/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/ia64/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -99,6 +99,10 @@ config AUDIT_ARCH
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 choice
 	prompt "System type"
 	default IA64_GENERIC
Index: linux-2.6-lttng.stable/arch/m32r/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/m32r/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/m32r/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -34,6 +34,10 @@ config NO_IOPORT
 config NO_DMA
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng.stable/arch/mips/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/mips/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/mips/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -721,6 +721,10 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 	bool
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 #
 # Select some configuration options automatically based on user selections.
 #
Index: linux-2.6-lttng.stable/arch/parisc/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/parisc/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/parisc/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -69,6 +69,10 @@ config IRQ_PER_CPU
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 # unless you want to implement ACPI on PA-RISC ... ;-)
 config PM
 	bool
Index: linux-2.6-lttng.stable/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/powerpc/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/powerpc/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -163,6 +163,10 @@ config PPC_OF_PLATFORM_PCI
 	depends on PPC64 # not supported on 32 bits yet
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source "init/Kconfig"
 
 source "arch/powerpc/platforms/Kconfig"
Index: linux-2.6-lttng.stable/arch/ppc/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/ppc/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/ppc/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -69,6 +69,10 @@ config GENERIC_BUG
 	default y
 	depends on BUG
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source "init/Kconfig"
 
 menu "Processor"
Index: linux-2.6-lttng.stable/arch/s390/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/s390/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/s390/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -52,6 +52,10 @@ mainmenu "Linux Kernel Configuration"
 config S390
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source "init/Kconfig"
 
 menu "Base setup"
Index: linux-2.6-lttng.stable/arch/sh/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/sh/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/sh/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -93,6 +93,10 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_NO_VIRT_TO_BUS
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source "init/Kconfig"
 
 menu "System type"
Index: linux-2.6-lttng.stable/arch/sh64/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/sh64/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/sh64/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -58,6 +58,10 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_NO_VIRT_TO_BUS
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source init/Kconfig
 
 menu "System type"
Index: linux-2.6-lttng.stable/arch/sparc/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/sparc/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/sparc/Kconfig	2007-10-30 20:18:36.000000000 -0400
@@ -27,6 +27,10 @@ config ARCH_NO_VIRT_TO_BUS
 config OF
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source "init/Kconfig"
 
 menu "General machine setup"
Index: linux-2.6-lttng.stable/arch/sparc64/Kconfig
===================================================================
--- linux-2.6-lttng.stable.orig/arch/sparc64/Kconfig	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/sparc64/Kconfig	2007-10-30 20:18:38.000000000 -0400
@@ -76,6 +76,10 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 	bool
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 choice
 	prompt "Kernel page size"
 	default SPARC64_PAGE_SIZE_8KB
Index: linux-2.6-lttng.stable/arch/x86/Kconfig.i386
===================================================================
--- linux-2.6-lttng.stable.orig/arch/x86/Kconfig.i386	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/x86/Kconfig.i386	2007-10-30 20:18:38.000000000 -0400
@@ -91,6 +91,10 @@ config DMI
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source "init/Kconfig"
 
 menu "Processor type and features"
Index: linux-2.6-lttng.stable/arch/x86/Kconfig.x86_64
===================================================================
--- linux-2.6-lttng.stable.orig/arch/x86/Kconfig.x86_64	2007-10-30 20:17:18.000000000 -0400
+++ linux-2.6-lttng.stable/arch/x86/Kconfig.x86_64	2007-10-30 20:18:38.000000000 -0400
@@ -133,6 +133,10 @@ config ARCH_HAS_ILOG2_U64
 	bool
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	bool
+	default y
+
 source "init/Kconfig"
 
 
Index: linux-2.6-lttng.stable/kernel/Kconfig.instrumentation
===================================================================
--- linux-2.6-lttng.stable.orig/kernel/Kconfig.instrumentation	2007-10-30 20:18:54.000000000 -0400
+++ linux-2.6-lttng.stable/kernel/Kconfig.instrumentation	2007-10-30 20:19:05.000000000 -0400
@@ -21,7 +21,7 @@ config PROFILING
 config OPROFILE
 	tristate "OProfile system profiling (EXPERIMENTAL)"
 	depends on PROFILING
-	depends on ALPHA || ARM || BLACKFIN || X86_32 || IA64 || M32R || MIPS || PARISC || PPC || S390 || SUPERH || SPARC || X86_64
+	depends on ARCH_SUPPORTS_OPROFILE
 	help
 	  OProfile is a profiling system capable of profiling the
 	  whole system, include the kernel, kernel modules, libraries,

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2007-11-16  3:10 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-13 14:26 [patch 0/4] Instrumentation menu removal Mathieu Desnoyers
2007-11-13 14:26 ` [patch 1/4] Create arch/Kconfig Mathieu Desnoyers
2007-11-13 14:26 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers
2007-11-14 19:41   ` Sam Ravnborg
2007-11-14 21:35     ` Mathieu Desnoyers
2007-11-14 21:54       ` Sam Ravnborg
2007-11-13 14:26 ` [patch 3/4] Add ARCH_SUPPORTS_KPROBES Mathieu Desnoyers
2007-11-13 14:26 ` [patch 4/4] Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig Mathieu Desnoyers
  -- strict thread matches above, loose matches on Subject: below --
2007-11-16  2:36 [patch 0/4] Instrumentation menu removal, updated to 2.6.24-rc2-git5 Mathieu Desnoyers
2007-11-16  2:36 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers
2007-11-16  1:59 [patch 0/4] Updated instrumentation menu patches Mathieu Desnoyers
2007-11-16  1:59 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers
2007-11-16  2:08   ` Andrew Morton
2007-11-16  2:23     ` Mathieu Desnoyers
2007-11-16  2:30       ` Andrew Morton
2007-11-16  3:10         ` Mathieu Desnoyers
2007-11-06 20:37 [patch 0/4] Move Instrumentation Support menu to arch/Kconfig Mathieu Desnoyers
2007-11-06 20:37 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers
2007-10-31  1:03 [patch 0/4] Add ARCH_SUPPORTS_KPROBES (take 2) Mathieu Desnoyers
2007-10-31  1:03 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers
2007-10-31  0:31 [patch 0/4] Creation of arch/Kconfig for ARCH_SUPPORTS_* options Mathieu Desnoyers
2007-10-31  0:31 ` [patch 2/4] Add ARCH_SUPPORTS_OPROFILE Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).