Conditional calls provide a way to compile in kernels features that can be enabled dynamically, with a very small footprint when disabled. This patch: Add Kconfig menus for the marker code. Signed-off-by: Mathieu Desnoyers CC: Adrian Bunk CC: Andi Kleen --- arch/alpha/Kconfig | 6 ++++++ arch/arm/Kconfig | 6 ++++++ arch/arm26/Kconfig | 6 ++++++ arch/avr32/Kconfig.debug | 7 +++++++ arch/cris/Kconfig | 6 ++++++ arch/frv/Kconfig | 6 ++++++ arch/h8300/Kconfig | 6 ++++++ arch/i386/Kconfig | 3 +++ arch/ia64/Kconfig | 3 +++ arch/m32r/Kconfig | 6 ++++++ arch/m68k/Kconfig | 6 ++++++ arch/m68knommu/Kconfig | 6 ++++++ arch/mips/Kconfig | 6 ++++++ arch/parisc/Kconfig | 6 ++++++ arch/powerpc/Kconfig | 3 +++ arch/ppc/Kconfig | 6 ++++++ arch/s390/Kconfig | 2 ++ arch/sh/Kconfig | 6 ++++++ arch/sh64/Kconfig | 6 ++++++ arch/sparc/Kconfig | 2 ++ arch/sparc64/Kconfig | 3 +++ arch/um/Kconfig | 6 ++++++ arch/v850/Kconfig | 6 ++++++ arch/x86_64/Kconfig | 3 +++ arch/xtensa/Kconfig | 6 ++++++ kernel/Kconfig.condcall | 20 ++++++++++++++++++++ 26 files changed, 148 insertions(+) Index: linux-2.6-lttng/arch/alpha/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/alpha/Kconfig 2007-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/alpha/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -642,6 +642,12 @@ source "arch/alpha/oprofile/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + source "arch/alpha/Kconfig.debug" source "security/Kconfig" Index: linux-2.6-lttng/arch/arm/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/arm/Kconfig 2007-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/arm/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -1025,6 +1025,12 @@ source "arch/arm/oprofile/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + source "arch/arm/Kconfig.debug" source "security/Kconfig" Index: linux-2.6-lttng/arch/arm26/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/arm26/Kconfig 2007-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/arm26/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -241,6 +241,12 @@ source "drivers/usb/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + source "arch/arm26/Kconfig.debug" source "security/Kconfig" Index: linux-2.6-lttng/arch/cris/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/cris/Kconfig 2007-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/cris/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -198,6 +198,12 @@ source "drivers/usb/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/frv/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -385,6 +385,12 @@ source "fs/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/h8300/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -220,6 +220,12 @@ source "fs/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + source "arch/h8300/Kconfig.debug" source "security/Kconfig" Index: linux-2.6-lttng/arch/i386/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/i386/Kconfig 2007-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/i386/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -1229,6 +1229,9 @@ a probepoint and specifies the callback. Kprobes is useful for kernel debugging, non-intrusive instrumentation and testing. If in doubt, say "N". + +source "kernel/Kconfig.condcall" + endmenu source "arch/i386/Kconfig.debug" Index: linux-2.6-lttng/arch/ia64/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/ia64/Kconfig 2007-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/ia64/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -591,6 +591,9 @@ a probepoint and specifies the callback. Kprobes is useful for kernel debugging, non-intrusive instrumentation and testing. If in doubt, say "N". + +source "kernel/Kconfig.condcall" + endmenu source "arch/ia64/Kconfig.debug" Index: linux-2.6-lttng/arch/m32r/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/m32r/Kconfig 2007-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/m32r/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -401,6 +401,12 @@ source "arch/m32r/oprofile/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/m68k/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -670,6 +670,12 @@ source "fs/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/m68knommu/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -676,6 +676,12 @@ source "fs/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/mips/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -2150,6 +2150,12 @@ source "arch/mips/oprofile/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/parisc/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -269,6 +269,12 @@ source "arch/parisc/oprofile/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/powerpc/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -902,6 +902,9 @@ a probepoint and specifies the callback. Kprobes is useful for kernel debugging, non-intrusive instrumentation and testing. If in doubt, say "N". + +source "kernel/Kconfig.condcall" + endmenu source "arch/powerpc/Kconfig.debug" Index: linux-2.6-lttng/arch/ppc/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/ppc/Kconfig 2007-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/ppc/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -1453,8 +1453,14 @@ source "lib/Kconfig" +menu "Instrumentation Support" + source "arch/powerpc/oprofile/Kconfig" +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:37.000000000 -0400 +++ linux-2.6-lttng/arch/s390/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -569,6 +569,8 @@ source "lib/Kconfig.statistic" +source "kernel/Kconfig.condcall" + endmenu source "arch/s390/Kconfig.debug" Index: linux-2.6-lttng/arch/sh/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/sh/Kconfig 2007-05-17 02:12:23.000000000 -0400 +++ linux-2.6-lttng/arch/sh/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -738,6 +738,12 @@ source "arch/sh/oprofile/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:24.000000000 -0400 +++ linux-2.6-lttng/arch/sh64/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -281,6 +281,12 @@ source "arch/sh64/oprofile/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:24.000000000 -0400 +++ linux-2.6-lttng/arch/sparc/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -306,6 +306,8 @@ source "arch/sparc/oprofile/Kconfig" +source "kernel/Kconfig.condcall" + endmenu source "arch/sparc/Kconfig.debug" Index: linux-2.6-lttng/arch/sparc64/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/sparc64/Kconfig 2007-05-17 02:12:24.000000000 -0400 +++ linux-2.6-lttng/arch/sparc64/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -444,6 +444,9 @@ a probepoint and specifies the callback. Kprobes is useful for kernel debugging, non-intrusive instrumentation and testing. If in doubt, say "N". + +source "kernel/Kconfig.condcall" + endmenu source "arch/sparc64/Kconfig.debug" Index: linux-2.6-lttng/arch/um/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/um/Kconfig 2007-05-17 02:12:24.000000000 -0400 +++ linux-2.6-lttng/arch/um/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -333,4 +333,10 @@ bool default n +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + source "arch/um/Kconfig.debug" Index: linux-2.6-lttng/arch/v850/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/v850/Kconfig 2007-05-17 02:12:24.000000000 -0400 +++ linux-2.6-lttng/arch/v850/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -339,6 +339,12 @@ source "drivers/usb/Kconfig" +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + 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-05-17 02:12:24.000000000 -0400 +++ linux-2.6-lttng/arch/x86_64/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -790,6 +790,9 @@ a probepoint and specifies the callback. Kprobes is useful for kernel debugging, non-intrusive instrumentation and testing. If in doubt, say "N". + +source "kernel/Kconfig.condcall" + endmenu source "arch/x86_64/Kconfig.debug" Index: linux-2.6-lttng/arch/xtensa/Kconfig =================================================================== --- linux-2.6-lttng.orig/arch/xtensa/Kconfig 2007-05-17 02:12:24.000000000 -0400 +++ linux-2.6-lttng/arch/xtensa/Kconfig 2007-05-17 02:13:28.000000000 -0400 @@ -251,6 +251,12 @@ provide one yourself. endmenu +menu "Instrumentation Support" + +source "kernel/Kconfig.condcall" + +endmenu + source "arch/xtensa/Kconfig.debug" source "security/Kconfig" Index: linux-2.6-lttng/kernel/Kconfig.condcall =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ linux-2.6-lttng/kernel/Kconfig.condcall 2007-05-17 02:12:41.000000000 -0400 @@ -0,0 +1,20 @@ +# Code markers configuration + +config COND_CALL + bool "Activate conditional calls" + depends on MODULES + help + Provides a way to dynamically enable kernel features while having a + very small footprint when disabled. + +config COND_CALL_DISABLE_OPTIMIZATION + bool "Disable conditional calls optimization" + depends on COND_CALL && EMBEDDED + default n + help + Disable code replacement jump optimisations. Especially useful if your + code is in a read-only rom/flash. + +config COND_CALL_ENABLE_OPTIMIZATION + def_bool y + depends on COND_CALL && !COND_CALL_DISABLE_OPTIMIZATION Index: linux-2.6-lttng/arch/avr32/Kconfig.debug =================================================================== --- linux-2.6-lttng.orig/arch/avr32/Kconfig.debug 2007-05-17 02:12:24.000000000 -0400 +++ linux-2.6-lttng/arch/avr32/Kconfig.debug 2007-05-17 02:13:28.000000000 -0400 @@ -6,6 +6,9 @@ source "lib/Kconfig.debug" +menu "Instrumentation Support" + depends on EXPERIMENTAL + config KPROBES bool "Kprobes" depends on DEBUG_KERNEL @@ -17,4 +20,8 @@ for kernel debugging, non-intrusive instrumentation and testing. If in doubt, say "N". +source "kernel/Kconfig.condcall" + +endmenu + endmenu -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/