2007-09-18 21:13:44

by Mathieu Desnoyers

[permalink] [raw]
Subject: [PATCH] Combine instrumentation menus in kernel/Kconfig.instrumentation

Combine instrumentation menus in kernel/Kconfig.instrumentation

Quoting Randy:

"It seems sad that this patch sources Kconfig.marker, a 7-line file,
20-something times. Yes, you (we) don't want to put those 7 lines
into 20-something different files, so sourcing is the right thing.

However, what you did for avr32 seems more on the right track to me:
make _one_ Instrumentation support menu that includes PROFILING,
OPROFILE, KPROBES, and MARKERS and then use (source) that in all
of the arches."

Signed-off-by: Mathieu Desnoyers <[email protected]>
Acked-by: Randy Dunlap <[email protected]>
---
arch/alpha/Kconfig | 2 -
arch/alpha/oprofile/Kconfig | 23 ----------------------
arch/arm/Kconfig | 2 -
arch/arm/oprofile/Kconfig | 42 -----------------------------------------
arch/blackfin/Kconfig | 2 -
arch/blackfin/oprofile/Kconfig | 29 ----------------------------
arch/cris/Kconfig | 2 +
arch/frv/Kconfig | 2 +
arch/h8300/Kconfig | 2 +
arch/i386/Kconfig | 25 ------------------------
arch/i386/oprofile/Kconfig | 17 ----------------
arch/ia64/Kconfig | 15 --------------
arch/ia64/oprofile/Kconfig | 20 -------------------
arch/m32r/Kconfig | 2 -
arch/m32r/oprofile/Kconfig | 23 ----------------------
arch/m68k/Kconfig | 2 +
arch/m68knommu/Kconfig | 2 +
arch/mips/Kconfig | 2 -
arch/mips/oprofile/Kconfig | 23 ----------------------
arch/parisc/Kconfig | 2 -
arch/parisc/oprofile/Kconfig | 23 ----------------------
arch/powerpc/Kconfig | 15 --------------
arch/powerpc/oprofile/Kconfig | 24 -----------------------
arch/ppc/Kconfig | 2 -
arch/s390/Kconfig | 16 ---------------
arch/s390/oprofile/Kconfig | 22 ---------------------
arch/sh/Kconfig | 2 -
arch/sh/oprofile/Kconfig | 23 ----------------------
arch/sh64/Kconfig | 2 -
arch/sh64/oprofile/Kconfig | 23 ----------------------
arch/sparc/Kconfig | 6 -----
arch/sparc/oprofile/Kconfig | 17 ----------------
arch/sparc64/Kconfig | 15 --------------
arch/sparc64/oprofile/Kconfig | 17 ----------------
arch/um/Kconfig | 2 +
arch/v850/Kconfig | 2 +
arch/x86_64/Kconfig | 15 --------------
arch/x86_64/oprofile/Kconfig | 17 ----------------
arch/xtensa/Kconfig | 2 +
kernel/Kconfig.instrumentation | 40 +++++++++++++++++++++++++++++++++++++++
40 files changed, 72 insertions(+), 452 deletions(-)

Index: linux-2.6-lttng/arch/alpha/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/alpha/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,23 +0,0 @@
-
-menu "Profiling support"
- depends on EXPERIMENTAL
-
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-endmenu
-
Index: linux-2.6-lttng/arch/arm/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/arm/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,42 +0,0 @@
-
-menu "Profiling support"
- depends on EXPERIMENTAL
-
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-if OPROFILE
-
-config OPROFILE_ARMV6
- bool
- depends on CPU_V6 && !SMP
- default y
- select OPROFILE_ARM11_CORE
-
-config OPROFILE_MPCORE
- bool
- depends on CPU_V6 && SMP
- default y
- select OPROFILE_ARM11_CORE
-
-config OPROFILE_ARM11_CORE
- bool
-
-endif
-
-endmenu
-
Index: linux-2.6-lttng/arch/blackfin/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/blackfin/oprofile/Kconfig 2007-09-18 10:04:13.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-menu "Profiling support"
-depends on EXPERIMENTAL
-
-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
- 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 HARDWARE_PM
- tristate "Hardware Performance Monitor Profiling"
- depends on PROFILING
- help
- take use of hardware performance monitor to profiling the kernel
- and application.
-
- If unsure, say N.
-
-endmenu
Index: linux-2.6-lttng/arch/i386/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/i386/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,17 +0,0 @@
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
Index: linux-2.6-lttng/arch/ia64/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ia64/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,20 +0,0 @@
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- Due to firmware bugs, you may need to use the "nohalt" boot
- option if you're using OProfile with the hardware performance
- counters.
-
- If unsure, say N.
-
Index: linux-2.6-lttng/arch/m32r/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m32r/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,23 +0,0 @@
-
-menu "Profiling support"
- depends on EXPERIMENTAL
-
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-endmenu
-
Index: linux-2.6-lttng/arch/mips/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/mips/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,23 +0,0 @@
-
-menu "Profiling support"
- depends on EXPERIMENTAL
-
-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 && !MIPS_MT_SMTC && EXPERIMENTAL
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-endmenu
-
Index: linux-2.6-lttng/arch/parisc/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/parisc/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,23 +0,0 @@
-
-menu "Profiling support"
- depends on EXPERIMENTAL
-
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-endmenu
-
Index: linux-2.6-lttng/arch/powerpc/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/powerpc/oprofile/Kconfig 2007-09-18 10:04:21.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,24 +0,0 @@
-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
- 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 OPROFILE_CELL
- bool "OProfile for Cell Broadband Engine"
- depends on (SPU_FS = y && OPROFILE = m) || (SPU_FS = y && OPROFILE = y) || (SPU_FS = m && OPROFILE = m)
- default y
- help
- Profiling of Cell BE SPUs requires special support enabled
- by this option.
Index: linux-2.6-lttng/arch/s390/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/s390/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,22 +0,0 @@
-
-menu "Profiling support"
-
-config PROFILING
- bool "Profiling support"
- help
- Say Y here to enable profiling support mechanisms used by
- profilers such as readprofile or OProfile.
-
-
-config OPROFILE
- tristate "OProfile system profiling"
- depends on PROFILING
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-endmenu
-
Index: linux-2.6-lttng/arch/sh/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,23 +0,0 @@
-
-menu "Profiling support"
- depends on EXPERIMENTAL
-
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-endmenu
-
Index: linux-2.6-lttng/arch/sh64/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh64/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,23 +0,0 @@
-
-menu "Profiling support"
- depends on EXPERIMENTAL
-
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-endmenu
-
Index: linux-2.6-lttng/arch/sparc/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,17 +0,0 @@
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
Index: linux-2.6-lttng/arch/sparc64/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc64/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,17 +0,0 @@
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
Index: linux-2.6-lttng/arch/x86_64/oprofile/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/x86_64/oprofile/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,17 +0,0 @@
-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
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
Index: linux-2.6-lttng/kernel/Kconfig.instrumentation
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6-lttng/kernel/Kconfig.instrumentation 2007-09-18 13:18:17.000000000 -0400
@@ -0,0 +1,40 @@
+menuconfig INSTRUMENTATION
+ bool "Instrumentation Support"
+ default y
+ ---help---
+ Say Y here to get to see options related to performance measurement,
+ 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 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 ALPHA || ARM || BLACKFIN || X86_32 || IA64 || M32R || MIPS || PARISC || PPC || S390 || SUPERH || SPARC || X86_64
+ 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 X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32
+ 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".
+
+endif # INSTRUMENTATION
Index: linux-2.6-lttng/arch/i386/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/i386/Kconfig 2007-09-18 10:09:31.000000000 -0400
+++ linux-2.6-lttng/arch/i386/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -1242,30 +1242,7 @@ source "drivers/Kconfig"

source "fs/Kconfig"

-menuconfig INSTRUMENTATION
- bool "Instrumentation Support"
- default y
- ---help---
- Say Y here to get to see options related to performance measurement,
- 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 INSTRUMENTATION
-
-source "arch/i386/oprofile/Kconfig"
-
-config KPROBES
- bool "Kprobes"
- depends on KALLSYMS && MODULES
- 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".
-
-endif # INSTRUMENTATION
+source "kernel/Kconfig.instrumentation"

source "arch/i386/Kconfig.debug"

Index: linux-2.6-lttng/arch/alpha/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/alpha/Kconfig 2007-09-18 10:04:10.000000000 -0400
+++ linux-2.6-lttng/arch/alpha/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -654,7 +654,7 @@ source "drivers/Kconfig"

source "fs/Kconfig"

-source "arch/alpha/oprofile/Kconfig"
+source "kernel/Kconfig.instrumentation"

source "arch/alpha/Kconfig.debug"

Index: linux-2.6-lttng/arch/arm/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/arm/Kconfig 2007-09-18 10:07:36.000000000 -0400
+++ linux-2.6-lttng/arch/arm/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -1061,7 +1061,7 @@ endmenu

source "fs/Kconfig"

-source "arch/arm/oprofile/Kconfig"
+source "kernel/Kconfig.instrumentation"

source "arch/arm/Kconfig.debug"

Index: linux-2.6-lttng/arch/blackfin/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/blackfin/Kconfig 2007-09-18 10:09:09.000000000 -0400
+++ linux-2.6-lttng/arch/blackfin/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -914,7 +914,7 @@ source "drivers/Kconfig"

source "fs/Kconfig"

-source "arch/blackfin/oprofile/Kconfig"
+source "kernel/Kconfig.instrumentation"

menu "Kernel hacking"

Index: linux-2.6-lttng/arch/cris/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/cris/Kconfig 2007-09-18 10:04:13.000000000 -0400
+++ linux-2.6-lttng/arch/cris/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -196,6 +196,8 @@ 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-09-18 10:04:13.000000000 -0400
+++ linux-2.6-lttng/arch/frv/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -375,6 +375,8 @@ 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-09-18 10:04:13.000000000 -0400
+++ linux-2.6-lttng/arch/h8300/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -223,6 +223,8 @@ 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-09-18 10:08:56.000000000 -0400
+++ linux-2.6-lttng/arch/ia64/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -579,20 +579,7 @@ config IRQ_PER_CPU

source "arch/ia64/hp/sim/Kconfig"

-menu "Instrumentation Support"
-
-source "arch/ia64/oprofile/Kconfig"
-
-config KPROBES
- bool "Kprobes"
- depends on KALLSYMS && MODULES
- 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".
-endmenu
+source "kernel/Kconfig.instrumentation"

source "arch/ia64/Kconfig.debug"

Index: linux-2.6-lttng/arch/m32r/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m32r/Kconfig 2007-09-18 10:04:19.000000000 -0400
+++ linux-2.6-lttng/arch/m32r/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -426,7 +426,7 @@ source "drivers/Kconfig"

source "fs/Kconfig"

-source "arch/m32r/oprofile/Kconfig"
+source "kernel/Kconfig.instrumentation"

source "arch/m32r/Kconfig.debug"

Index: linux-2.6-lttng/arch/m68k/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/m68k/Kconfig 2007-09-18 10:04:19.000000000 -0400
+++ linux-2.6-lttng/arch/m68k/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -683,6 +683,8 @@ 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-09-18 10:04:19.000000000 -0400
+++ linux-2.6-lttng/arch/m68knommu/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -696,6 +696,8 @@ 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-09-18 10:08:33.000000000 -0400
+++ linux-2.6-lttng/arch/mips/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -1961,7 +1961,7 @@ source "drivers/Kconfig"

source "fs/Kconfig"

-source "arch/mips/oprofile/Kconfig"
+source "kernel/Kconfig.instrumentation"

source "arch/mips/Kconfig.debug"

Index: linux-2.6-lttng/arch/parisc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/parisc/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ linux-2.6-lttng/arch/parisc/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -267,7 +267,7 @@ source "drivers/Kconfig"

source "fs/Kconfig"

-source "arch/parisc/oprofile/Kconfig"
+source "kernel/Kconfig.instrumentation"

source "arch/parisc/Kconfig.debug"

Index: linux-2.6-lttng/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/powerpc/Kconfig 2007-09-18 10:08:56.000000000 -0400
+++ linux-2.6-lttng/arch/powerpc/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -638,20 +638,7 @@ source "arch/powerpc/sysdev/qe_lib/Kconf

source "lib/Kconfig"

-menu "Instrumentation Support"
-
-source "arch/powerpc/oprofile/Kconfig"
-
-config KPROBES
- bool "Kprobes"
- depends on !BOOKE && !4xx && KALLSYMS && MODULES
- 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".
-endmenu
+source "kernel/Kconfig.instrumentation"

source "arch/powerpc/Kconfig.debug"

Index: linux-2.6-lttng/arch/ppc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/ppc/Kconfig 2007-09-18 10:07:40.000000000 -0400
+++ linux-2.6-lttng/arch/ppc/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -1307,7 +1307,7 @@ endmenu

source "lib/Kconfig"

-source "arch/powerpc/oprofile/Kconfig"
+source "kernel/Kconfig.instrumentation"

source "arch/ppc/Kconfig.debug"

Index: linux-2.6-lttng/arch/s390/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/s390/Kconfig 2007-09-18 10:04:24.000000000 -0400
+++ linux-2.6-lttng/arch/s390/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -529,21 +529,7 @@ source "drivers/Kconfig"

source "fs/Kconfig"

-menu "Instrumentation Support"
-
-source "arch/s390/oprofile/Kconfig"
-
-config KPROBES
- bool "Kprobes (EXPERIMENTAL)"
- depends on EXPERIMENTAL && MODULES
- 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".
-
-endmenu
+source "kernel/Kconfig.instrumentation"

source "arch/s390/Kconfig.debug"

Index: linux-2.6-lttng/arch/sh/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh/Kconfig 2007-09-18 10:08:07.000000000 -0400
+++ linux-2.6-lttng/arch/sh/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -738,7 +738,7 @@ source "drivers/Kconfig"

source "fs/Kconfig"

-source "arch/sh/oprofile/Kconfig"
+source "kernel/Kconfig.instrumentation"

source "arch/sh/Kconfig.debug"

Index: linux-2.6-lttng/arch/sh64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sh64/Kconfig 2007-09-18 10:04:25.000000000 -0400
+++ linux-2.6-lttng/arch/sh64/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -285,7 +285,7 @@ source "drivers/Kconfig"

source "fs/Kconfig"

-source "arch/sh64/oprofile/Kconfig"
+source "kernel/Kconfig.instrumentation"

source "arch/sh64/Kconfig.debug"

Index: linux-2.6-lttng/arch/sparc/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/Kconfig 2007-09-18 10:08:56.000000000 -0400
+++ linux-2.6-lttng/arch/sparc/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -320,11 +320,7 @@ endmenu

source "fs/Kconfig"

-menu "Instrumentation Support"
-
-source "arch/sparc/oprofile/Kconfig"
-
-endmenu
+source "kernel/Kconfig.instrumentation"

source "arch/sparc/Kconfig.debug"

Index: linux-2.6-lttng/arch/sparc64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/sparc64/Kconfig 2007-09-18 10:08:56.000000000 -0400
+++ linux-2.6-lttng/arch/sparc64/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -460,20 +460,7 @@ source "drivers/fc4/Kconfig"

source "fs/Kconfig"

-menu "Instrumentation Support"
-
-source "arch/sparc64/oprofile/Kconfig"
-
-config KPROBES
- bool "Kprobes (EXPERIMENTAL)"
- depends on KALLSYMS && EXPERIMENTAL && MODULES
- 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".
-endmenu
+source "kernel/Kconfig.instrumentation"

source "arch/sparc64/Kconfig.debug"

Index: linux-2.6-lttng/arch/um/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/um/Kconfig 2007-09-18 10:08:52.000000000 -0400
+++ linux-2.6-lttng/arch/um/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -292,4 +292,6 @@ 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-09-18 10:04:26.000000000 -0400
+++ linux-2.6-lttng/arch/v850/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -331,6 +331,8 @@ 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_64/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/x86_64/Kconfig 2007-09-18 10:09:31.000000000 -0400
+++ linux-2.6-lttng/arch/x86_64/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -842,20 +842,7 @@ source "drivers/firmware/Kconfig"

source fs/Kconfig

-menu "Instrumentation Support"
-
-source "arch/x86_64/oprofile/Kconfig"
-
-config KPROBES
- bool "Kprobes"
- depends on KALLSYMS && MODULES
- 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".
-endmenu
+source "kernel/Kconfig.instrumentation"

source "arch/x86_64/Kconfig.debug"

Index: linux-2.6-lttng/arch/xtensa/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/xtensa/Kconfig 2007-09-18 09:05:06.000000000 -0400
+++ linux-2.6-lttng/arch/xtensa/Kconfig 2007-09-18 13:18:17.000000000 -0400
@@ -251,6 +251,8 @@ config EMBEDDED_RAMDISK_IMAGE
provide one yourself.
endmenu

+source "kernel/Kconfig.instrumentation"
+
source "arch/xtensa/Kconfig.debug"

source "security/Kconfig"


2007-09-18 21:46:41

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: [PATCH] Combine instrumentation menus in kernel/Kconfig.instrumentation

On Tue, 18 Sep 2007 17:12:59 EDT, Mathieu Desnoyers said:

> +++ linux-2.6-lttng/kernel/Kconfig.instrumentation 2007-09-18 13:18:17.000
000000 -0400
> @@ -0,0 +1,40 @@
> +menuconfig INSTRUMENTATION
> + bool "Instrumentation Support"
> + default y
> + ---help---
> + Say Y here to get to see options related to performance measurement,
> + 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.

OK, I'll bite - given the mention of 'debugging' there, do we want to go for
broke and *also* suck in the 'Kernel Hacking' menu as well?


Attachments:
(No filename) (226.00 B)

2007-09-19 01:06:38

by Mathieu Desnoyers

[permalink] [raw]
Subject: Re: [PATCH] Combine instrumentation menus in kernel/Kconfig.instrumentation

* [email protected] ([email protected]) wrote:
> On Tue, 18 Sep 2007 17:12:59 EDT, Mathieu Desnoyers said:
>
> > +++ linux-2.6-lttng/kernel/Kconfig.instrumentation 2007-09-18 13:18:17.000
> 000000 -0400
> > @@ -0,0 +1,40 @@
> > +menuconfig INSTRUMENTATION
> > + bool "Instrumentation Support"
> > + default y
> > + ---help---
> > + Say Y here to get to see options related to performance measurement,
> > + 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.
>
> OK, I'll bite - given the mention of 'debugging' there, do we want to go for
> broke and *also* suck in the 'Kernel Hacking' menu as well?

Instrumentation primarity aims at debugging user-space applications by
giving the ability to extract information across execution layers, hence
being a feature useful to users, not only kernel hackers. Therefore I
strongly doubt that it belongs to the kernel hacking submenu. It today's
world, where we face complex user-space problems involving
multithreaded, multiprocesses applications, the kernel and
hypervisors, running on many cores, this kind of tool has proven useful
to many, not only kernel developers. Please have a look at the
papers (especially the OLS2007 paper) linked on http://ltt.polymtl.ca as a
starting point if you are intereted in the question.

But yes, it can also be useful to kernel debugging, amongst other
things.

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


Attachments:
(No filename) (1.61 kB)
signature.asc (189.00 B)
Digital signature
Download all attachments

2007-09-19 05:58:46

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: [PATCH] Combine instrumentation menus in kernel/Kconfig.instrumentation

On Tue, 18 Sep 2007 21:06:28 EDT, Mathieu Desnoyers said:

> * [email protected] ([email protected]) wrote:
> > OK, I'll bite - given the mention of 'debugging' there, do we want to go for
> > broke and *also* suck in the 'Kernel Hacking' menu as well?
>
> Instrumentation primarity aims at debugging user-space applications by
> giving the ability to extract information across execution layers, hence
> being a feature useful to users, not only kernel hackers.

Ahh.. Where I come from, "Instrumentation" includes *all* the code that doesn't
actually *do* the work, but exists solely so you can tell what the code is
doing - so almost everything on the i386/x86_64 "Kernel Hacking" menu counts
as "instrumentation" in my book.

Now if we're talking about the features provided by one specific *instance*
of instrumentation code, I can buy that too - but I think that help text
needs to be clear on what is included under "debugging"

(I'd settle for "If you're trying to debug the kernel itself, go see the
Kernel Hacking menu" or similar.. ;)

> to many, not only kernel developers. Please have a look at the
> papers (especially the OLS2007 paper) linked on http://ltt.polymtl.ca as a
> starting point if you are intereted in the question.

Ahh, LTT. *that* I recognize. Yeah, I count that as *one flavor* of
instrumentation. :)


Attachments:
(No filename) (226.00 B)

2007-09-19 11:20:44

by Mathieu Desnoyers

[permalink] [raw]
Subject: Re: [PATCH] Combine instrumentation menus in kernel/Kconfig.instrumentation

* [email protected] ([email protected]) wrote:
> On Tue, 18 Sep 2007 21:06:28 EDT, Mathieu Desnoyers said:
>
> > * [email protected] ([email protected]) wrote:
> > > OK, I'll bite - given the mention of 'debugging' there, do we want to go for
> > > broke and *also* suck in the 'Kernel Hacking' menu as well?
> >
> > Instrumentation primarity aims at debugging user-space applications by
> > giving the ability to extract information across execution layers, hence
> > being a feature useful to users, not only kernel hackers.
>
> Ahh.. Where I come from, "Instrumentation" includes *all* the code that doesn't
> actually *do* the work, but exists solely so you can tell what the code is
> doing - so almost everything on the i386/x86_64 "Kernel Hacking" menu counts
> as "instrumentation" in my book.
>
> Now if we're talking about the features provided by one specific *instance*
> of instrumentation code, I can buy that too - but I think that help text
> needs to be clear on what is included under "debugging"
>
> (I'd settle for "If you're trying to debug the kernel itself, go see the
> Kernel Hacking menu" or similar.. ;)
>

Ok, let's add that.

> > to many, not only kernel developers. Please have a look at the
> > papers (especially the OLS2007 paper) linked on http://ltt.polymtl.ca as a
> > starting point if you are intereted in the question.
>
> Ahh, LTT. *that* I recognize. Yeah, I count that as *one flavor* of
> instrumentation. :)
>

Systemtap, kprobes and oprofile would also fall into the same category.

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


Attachments:
(No filename) (1.70 kB)
signature.asc (189.00 B)
Digital signature
Download all attachments

2007-09-19 11:35:31

by Robert P. J. Day

[permalink] [raw]
Subject: Re: [PATCH] Combine instrumentation menus in kernel/Kconfig.instrumentation

On Wed, 19 Sep 2007, Mathieu Desnoyers wrote:

> * [email protected] ([email protected]) wrote:

> > Ahh, LTT. *that* I recognize. Yeah, I count that as *one flavor*
> > of instrumentation. :)

mathieu clarified this in a previous email to me, but is LTT not
entirely superseded by LTT-ng? just curious.

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

2007-09-19 11:45:30

by Mathieu Desnoyers

[permalink] [raw]
Subject: Re: [PATCH] Combine instrumentation menus in kernel/Kconfig.instrumentation

* Robert P. J. Day ([email protected]) wrote:
> On Wed, 19 Sep 2007, Mathieu Desnoyers wrote:
>
> > * [email protected] ([email protected]) wrote:
>
> > > Ahh, LTT. *that* I recognize. Yeah, I count that as *one flavor*
> > > of instrumentation. :)
>
> mathieu clarified this in a previous email to me, but is LTT not
> entirely superseded by LTT-ng? just curious.
>

Yes, LTTng supersedes LTT. It provides the ability to extract traces
across execution layers (hypervisor, kernel, userspace) to perform
performance analysis and debugging of applications at the system level.
LTTng's approach differs from LTT in that it allows completely
customizable instrumentation. We chose to provide that based on the
previous LTT experience, where we have seen that adding instrumentation
is very often required when digging deeply into a problem.

Mathieu

> rday
> --
> ========================================================================
> Robert P. J. Day
> Linux Consulting, Training and Annoying Kernel Pedantry
> Waterloo, Ontario, CANADA
>
> http://crashcourse.ca
> ========================================================================

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