Skip to contentSkip to conversation

Instrumentation menu removal

PATCH In review Mathieu Desnoyers 2 participants 8 messages Nov 13, 2007 – Nov 14, 2007

Subsystems (12)
Arm (32-bit) x86 PowerPC MIPS +8 more subsystems
lore
Share & tools
lore
#0 lore raw

cover Instrumentation menu removal

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

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

PATCH 1/4 Create arch/Kconfig

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

Linus:

Quoted 4 lines

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.

CC Linus Torvalds <[email protected]>
CC Sam Ravnborg <[email protected]>
---
 arch/Kconfig |    3 +++
 init/Kconfig |    2 ++
 2 files changed, 5 insertions(+)
init/Kconfig +2 -0
Index: linux-2.6-lttng/init/Kconfig
===================================================================
@@ -644,6 +644,8 @@ config SLOB
 
 endchoice
 
+source "arch/Kconfig"
+
 endmenu		# General setup
 
 config RT_MUTEXES
arch/Kconfig new file +3 -0
Index: linux-2.6-lttng/arch/Kconfig
===================================================================
@@ -0,0 +1,3 @@
+#
+# General architecture dependent options
+#
Signature · 3 lines
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
#2 lore raw

PATCH 2/4 Add ARCH_SUPPORTS_OPROFILE

In reply to Mathieu Desnoyers

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...

CC Linus Torvalds <[email protected]>
CC Sam Ravnborg <[email protected]>
---
 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(-)
arch/alpha/Kconfig +3 -0
Index: linux-2.6-lttng/arch/alpha/Kconfig
===================================================================
@@ -66,6 +66,9 @@ config AUTO_IRQ_AFFINITY
 	depends on SMP
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
arch/arm/Kconfig +3 -0
Index: linux-2.6-lttng/arch/arm/Kconfig
===================================================================
@@ -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
 
arch/blackfin/Kconfig +3 -0
Index: linux-2.6-lttng/arch/blackfin/Kconfig
===================================================================
@@ -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)
arch/ia64/Kconfig +3 -0
Index: linux-2.6-lttng/arch/ia64/Kconfig
===================================================================
@@ -99,6 +99,9 @@ config AUDIT_ARCH
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 choice
 	prompt "System type"
 	default IA64_GENERIC
arch/m32r/Kconfig +3 -0
Index: linux-2.6-lttng/arch/m32r/Kconfig
===================================================================
@@ -34,6 +34,9 @@ config NO_IOPORT
 config NO_DMA
 	def_bool y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
arch/mips/Kconfig +3 -0
Index: linux-2.6-lttng/arch/mips/Kconfig
===================================================================
@@ -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.
 #
arch/parisc/Kconfig +3 -0
Index: linux-2.6-lttng/arch/parisc/Kconfig
===================================================================
@@ -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
arch/powerpc/Kconfig +3 -0
Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
@@ -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"
arch/ppc/Kconfig +3 -0
Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
@@ -69,6 +69,9 @@ config GENERIC_BUG
 	default y
 	depends on BUG
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor"
arch/s390/Kconfig +3 -0
Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
@@ -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"
arch/sh/Kconfig +3 -0
Index: linux-2.6-lttng/arch/sh/Kconfig
===================================================================
@@ -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"
arch/sh64/Kconfig +3 -0
Index: linux-2.6-lttng/arch/sh64/Kconfig
===================================================================
@@ -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"
arch/sparc/Kconfig +3 -0
Index: linux-2.6-lttng/arch/sparc/Kconfig
===================================================================
@@ -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"
arch/sparc64/Kconfig +3 -0
Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
@@ -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
arch/x86/Kconfig.i386 +3 -0
Index: linux-2.6-lttng/arch/x86/Kconfig.i386
===================================================================
@@ -91,6 +91,9 @@ config DMI
 	bool
 	default y
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 menu "Processor type and features"
arch/x86/Kconfig.x86_64 +3 -0
Index: linux-2.6-lttng/arch/x86/Kconfig.x86_64
===================================================================
@@ -133,6 +133,9 @@ config ARCH_HAS_ILOG2_U64
 	bool
 	default n
 
+config ARCH_SUPPORTS_OPROFILE
+	def_bool y
+
 source "init/Kconfig"
 
 
kernel/Kconfig.instrumentation +1 -1
Index: linux-2.6-lttng/kernel/Kconfig.instrumentation
===================================================================
@@ -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,
Signature · 3 lines
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
#3 lore raw

Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE

Hi Mathieu.

Quoted 10 lines

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

#4 lore raw

Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE

Quoted 29 lines · * Sam Ravnborg ([email protected]) wrote:

Hi Mathieu.

Quoted 10 lines

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"

Quoted 7 lines

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 ?

Quoted 13 lines

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

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

Re: [patch 2/4] Add ARCH_SUPPORTS_OPROFILE

Quoted 6 lines
Quoted 5 lines

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

config SUITABLE_OPTION

Quoted 8 lines

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

#6 lore raw

PATCH 3/4 Add ARCH_SUPPORTS_KPROBES

In reply to Mathieu Desnoyers

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...

CC Linus Torvalds <[email protected]>
CC Sam Ravnborg <[email protected]>
---
 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(-)
arch/avr32/Kconfig +3 -0
Index: linux-2.6-lttng/arch/avr32/Kconfig
===================================================================
@@ -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"
arch/ia64/Kconfig +3 -0
Index: linux-2.6-lttng/arch/ia64/Kconfig
===================================================================
@@ -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
arch/powerpc/Kconfig +3 -0
Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
@@ -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"
arch/ppc/Kconfig +3 -0
Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
@@ -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"
arch/s390/Kconfig +3 -0
Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
@@ -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"
arch/sparc64/Kconfig +3 -0
Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
@@ -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
arch/x86/Kconfig.i386 +3 -0
Index: linux-2.6-lttng/arch/x86/Kconfig.i386
===================================================================
@@ -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"
arch/x86/Kconfig.x86_64 +3 -0
Index: linux-2.6-lttng/arch/x86/Kconfig.x86_64
===================================================================
@@ -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"
 
 
kernel/Kconfig.instrumentation +1 -1
Index: linux-2.6-lttng/kernel/Kconfig.instrumentation
===================================================================
@@ -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
Signature · 3 lines
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
#7 lore raw

PATCH 4/4 Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig

In reply to Mathieu Desnoyers

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.

CC Linus Torvalds <[email protected]>
CC Sam Ravnborg <[email protected]>
---
 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(-)
arch/Kconfig +22 -0
Index: linux-2.6-lttng/arch/Kconfig
===================================================================
@@ -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".
init/Kconfig +12 -0
Index: linux-2.6-lttng/init/Kconfig
===================================================================
@@ -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
kernel/Kconfig.instrumentation deleted +0 -49

49 lines not on this page · raw message

arch/alpha/Kconfig +0 -2
Index: linux-2.6-lttng/arch/alpha/Kconfig
===================================================================
@@ -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
arch/arm/Kconfig +0 -2
Index: linux-2.6-lttng/arch/arm/Kconfig
===================================================================
@@ -1071,8 +1071,6 @@ endmenu
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/arm/Kconfig.debug"
 
 source "security/Kconfig"
arch/blackfin/Kconfig +0 -2
Index: linux-2.6-lttng/arch/blackfin/Kconfig
===================================================================
@@ -1076,8 +1076,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 menu "Kernel hacking"
 
 source "lib/Kconfig.debug"
arch/cris/Kconfig +0 -2
Index: linux-2.6-lttng/arch/cris/Kconfig
===================================================================
@@ -196,8 +196,6 @@ source "sound/Kconfig"
 
 source "drivers/usb/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/cris/Kconfig.debug"
 
 source "security/Kconfig"
arch/frv/Kconfig +0 -2
Index: linux-2.6-lttng/arch/frv/Kconfig
===================================================================
@@ -375,8 +375,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/frv/Kconfig.debug"
 
 source "security/Kconfig"
arch/h8300/Kconfig +0 -2
Index: linux-2.6-lttng/arch/h8300/Kconfig
===================================================================
@@ -223,8 +223,6 @@ endmenu
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/h8300/Kconfig.debug"
 
 source "security/Kconfig"
arch/ia64/Kconfig +0 -2
Index: linux-2.6-lttng/arch/ia64/Kconfig
===================================================================
@@ -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"
arch/m32r/Kconfig +0 -2
Index: linux-2.6-lttng/arch/m32r/Kconfig
===================================================================
@@ -429,8 +429,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/m32r/Kconfig.debug"
 
 source "security/Kconfig"
arch/m68k/Kconfig +0 -2
Index: linux-2.6-lttng/arch/m68k/Kconfig
===================================================================
@@ -683,8 +683,6 @@ endmenu
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/m68k/Kconfig.debug"
 
 source "security/Kconfig"
arch/m68knommu/Kconfig +0 -2
Index: linux-2.6-lttng/arch/m68knommu/Kconfig
===================================================================
@@ -707,8 +707,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/m68knommu/Kconfig.debug"
 
 source "security/Kconfig"
arch/mips/Kconfig +0 -2
Index: linux-2.6-lttng/arch/mips/Kconfig
===================================================================
@@ -2031,8 +2031,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/mips/Kconfig.debug"
 
 source "security/Kconfig"
arch/parisc/Kconfig +0 -2
Index: linux-2.6-lttng/arch/parisc/Kconfig
===================================================================
@@ -270,8 +270,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/parisc/Kconfig.debug"
 
 source "security/Kconfig"
arch/powerpc/Kconfig +0 -2
Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
@@ -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"
arch/ppc/Kconfig +0 -2
Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
@@ -1323,8 +1323,6 @@ endmenu
 
 source "lib/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/ppc/Kconfig.debug"
 
 source "security/Kconfig"
arch/s390/Kconfig +0 -2
Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
@@ -535,8 +535,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/s390/Kconfig.debug"
 
 source "security/Kconfig"
arch/sh/Kconfig +0 -2
Index: linux-2.6-lttng/arch/sh/Kconfig
===================================================================
@@ -757,8 +757,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/sh/Kconfig.debug"
 
 source "security/Kconfig"
arch/sh64/Kconfig +0 -2
Index: linux-2.6-lttng/arch/sh64/Kconfig
===================================================================
@@ -287,8 +287,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/sh64/Kconfig.debug"
 
 source "security/Kconfig"
arch/sparc/Kconfig +0 -2
Index: linux-2.6-lttng/arch/sparc/Kconfig
===================================================================
@@ -323,8 +323,6 @@ endmenu
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/sparc/Kconfig.debug"
 
 source "security/Kconfig"
arch/sparc64/Kconfig +0 -2
Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
@@ -468,8 +468,6 @@ source "drivers/sbus/char/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/sparc64/Kconfig.debug"
 
 source "security/Kconfig"
arch/um/Kconfig +0 -2
Index: linux-2.6-lttng/arch/um/Kconfig
===================================================================
@@ -289,6 +289,4 @@ config INPUT
 	bool
 	default n
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/um/Kconfig.debug"
arch/v850/Kconfig +0 -2
Index: linux-2.6-lttng/arch/v850/Kconfig
===================================================================
@@ -331,8 +331,6 @@ source "sound/Kconfig"
 
 source "drivers/usb/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/v850/Kconfig.debug"
 
 source "security/Kconfig"
arch/x86/Kconfig.i386 +0 -2
Index: linux-2.6-lttng/arch/x86/Kconfig.i386
===================================================================
@@ -1276,8 +1276,6 @@ source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/x86/Kconfig.debug"
 
 source "security/Kconfig"
arch/x86/Kconfig.x86_64 +0 -2
Index: linux-2.6-lttng/arch/x86/Kconfig.x86_64
===================================================================
@@ -834,8 +834,6 @@ source "drivers/firmware/Kconfig"
 
 source fs/Kconfig
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/x86/Kconfig.debug"
 
 source "security/Kconfig"
arch/xtensa/Kconfig +0 -2
Index: linux-2.6-lttng/arch/xtensa/Kconfig
===================================================================
@@ -251,8 +251,6 @@ config EMBEDDED_RAMDISK_IMAGE
 	  provide one yourself.
 endmenu
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/xtensa/Kconfig.debug"
 
 source "security/Kconfig"
Signature · 3 lines
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68