diff options
34 files changed, 122 insertions, 194 deletions
diff --git a/arch/Kconfig b/arch/Kconfig new file mode 100644 index 000000000000..3d72dc3fc8f5 --- /dev/null +++ b/arch/Kconfig | |||
@@ -0,0 +1,31 @@ | |||
1 | # | ||
2 | # General architecture dependent options | ||
3 | # | ||
4 | |||
5 | config OPROFILE | ||
6 | tristate "OProfile system profiling (EXPERIMENTAL)" | ||
7 | depends on PROFILING | ||
8 | depends on HAVE_OPROFILE | ||
9 | help | ||
10 | OProfile is a profiling system capable of profiling the | ||
11 | whole system, include the kernel, kernel modules, libraries, | ||
12 | and applications. | ||
13 | |||
14 | If unsure, say N. | ||
15 | |||
16 | config HAVE_OPROFILE | ||
17 | def_bool n | ||
18 | |||
19 | config KPROBES | ||
20 | bool "Kprobes" | ||
21 | depends on KALLSYMS && MODULES | ||
22 | depends on HAVE_KPROBES | ||
23 | help | ||
24 | Kprobes allows you to trap at almost any kernel address and | ||
25 | execute a callback function. register_kprobe() establishes | ||
26 | a probepoint and specifies the callback. Kprobes is useful | ||
27 | for kernel debugging, non-intrusive instrumentation and testing. | ||
28 | If in doubt, say "N". | ||
29 | |||
30 | config HAVE_KPROBES | ||
31 | def_bool n | ||
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index c613d5fb0daa..9abcd5fd8969 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
@@ -5,6 +5,7 @@ | |||
5 | config ALPHA | 5 | config ALPHA |
6 | bool | 6 | bool |
7 | default y | 7 | default y |
8 | select HAVE_OPROFILE | ||
8 | help | 9 | help |
9 | The Alpha is a 64-bit general-purpose processor designed and | 10 | The Alpha is a 64-bit general-purpose processor designed and |
10 | marketed by the Digital Equipment Corporation of blessed memory, | 11 | marketed by the Digital Equipment Corporation of blessed memory, |
@@ -649,8 +650,6 @@ source "drivers/Kconfig" | |||
649 | 650 | ||
650 | source "fs/Kconfig" | 651 | source "fs/Kconfig" |
651 | 652 | ||
652 | source "kernel/Kconfig.instrumentation" | ||
653 | |||
654 | source "arch/alpha/Kconfig.debug" | 653 | source "arch/alpha/Kconfig.debug" |
655 | 654 | ||
656 | # DUMMY_CONSOLE may be defined in drivers/video/console/Kconfig | 655 | # DUMMY_CONSOLE may be defined in drivers/video/console/Kconfig |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4b1a8e3d292c..36176f40dfdf 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -10,6 +10,8 @@ config ARM | |||
10 | default y | 10 | default y |
11 | select RTC_LIB | 11 | select RTC_LIB |
12 | select SYS_SUPPORTS_APM_EMULATION | 12 | select SYS_SUPPORTS_APM_EMULATION |
13 | select HAVE_OPROFILE | ||
14 | select HAVE_KPROBES if (!XIP_KERNEL) | ||
13 | help | 15 | help |
14 | The ARM series is a line of low-power-consumption RISC chip designs | 16 | The ARM series is a line of low-power-consumption RISC chip designs |
15 | licensed by ARM Ltd and targeted at embedded applications and | 17 | licensed by ARM Ltd and targeted at embedded applications and |
@@ -135,6 +137,23 @@ config FIQ | |||
135 | config ARCH_MTD_XIP | 137 | config ARCH_MTD_XIP |
136 | bool | 138 | bool |
137 | 139 | ||
140 | if OPROFILE | ||
141 | |||
142 | config OPROFILE_ARMV6 | ||
143 | def_bool y | ||
144 | depends on CPU_V6 && !SMP | ||
145 | select OPROFILE_ARM11_CORE | ||
146 | |||
147 | config OPROFILE_MPCORE | ||
148 | def_bool y | ||
149 | depends on CPU_V6 && SMP | ||
150 | select OPROFILE_ARM11_CORE | ||
151 | |||
152 | config OPROFILE_ARM11_CORE | ||
153 | bool | ||
154 | |||
155 | endif | ||
156 | |||
138 | config VECTORS_BASE | 157 | config VECTORS_BASE |
139 | hex | 158 | hex |
140 | default 0xffff0000 if MMU || CPU_HIGH_VECTOR | 159 | default 0xffff0000 if MMU || CPU_HIGH_VECTOR |
@@ -1128,8 +1147,6 @@ endmenu | |||
1128 | 1147 | ||
1129 | source "fs/Kconfig" | 1148 | source "fs/Kconfig" |
1130 | 1149 | ||
1131 | source "arch/arm/Kconfig.instrumentation" | ||
1132 | |||
1133 | source "arch/arm/Kconfig.debug" | 1150 | source "arch/arm/Kconfig.debug" |
1134 | 1151 | ||
1135 | source "security/Kconfig" | 1152 | source "security/Kconfig" |
diff --git a/arch/arm/Kconfig.instrumentation b/arch/arm/Kconfig.instrumentation deleted file mode 100644 index 453ad8e15d69..000000000000 --- a/arch/arm/Kconfig.instrumentation +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | menuconfig INSTRUMENTATION | ||
2 | bool "Instrumentation Support" | ||
3 | default y | ||
4 | ---help--- | ||
5 | Say Y here to get to see options related to performance measurement, | ||
6 | system-wide debugging, and testing. This option alone does not add any | ||
7 | kernel code. | ||
8 | |||
9 | If you say N, all options in this submenu will be skipped and | ||
10 | disabled. If you're trying to debug the kernel itself, go see the | ||
11 | Kernel Hacking menu. | ||
12 | |||
13 | if INSTRUMENTATION | ||
14 | |||
15 | config PROFILING | ||
16 | bool "Profiling support (EXPERIMENTAL)" | ||
17 | help | ||
18 | Say Y here to enable the extended profiling support mechanisms used | ||
19 | by profilers such as OProfile. | ||
20 | |||
21 | config OPROFILE | ||
22 | tristate "OProfile system profiling (EXPERIMENTAL)" | ||
23 | depends on PROFILING && !UML | ||
24 | help | ||
25 | OProfile is a profiling system capable of profiling the | ||
26 | whole system, include the kernel, kernel modules, libraries, | ||
27 | and applications. | ||
28 | |||
29 | If unsure, say N. | ||
30 | |||
31 | config OPROFILE_ARMV6 | ||
32 | bool | ||
33 | depends on OPROFILE && CPU_V6 && !SMP | ||
34 | default y | ||
35 | select OPROFILE_ARM11_CORE | ||
36 | |||
37 | config OPROFILE_MPCORE | ||
38 | bool | ||
39 | depends on OPROFILE && CPU_V6 && SMP | ||
40 | default y | ||
41 | select OPROFILE_ARM11_CORE | ||
42 | |||
43 | config OPROFILE_ARM11_CORE | ||
44 | bool | ||
45 | |||
46 | config KPROBES | ||
47 | bool "Kprobes" | ||
48 | depends on KALLSYMS && MODULES && !UML && !XIP_KERNEL | ||
49 | help | ||
50 | Kprobes allows you to trap at almost any kernel address and | ||
51 | execute a callback function. register_kprobe() establishes | ||
52 | a probepoint and specifies the callback. Kprobes is useful | ||
53 | for kernel debugging, non-intrusive instrumentation and testing. | ||
54 | If in doubt, say "N". | ||
55 | |||
56 | config MARKERS | ||
57 | bool "Activate markers" | ||
58 | help | ||
59 | Place an empty function call at each marker site. Can be | ||
60 | dynamically changed for a probe function. | ||
61 | |||
62 | endif # INSTRUMENTATION | ||
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index e34e2c9c94cb..0e56e96a17a7 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
@@ -10,6 +10,8 @@ config AVR32 | |||
10 | # With EMBEDDED=n, we get lots of stuff automatically selected | 10 | # With EMBEDDED=n, we get lots of stuff automatically selected |
11 | # that we usually don't need on AVR32. | 11 | # that we usually don't need on AVR32. |
12 | select EMBEDDED | 12 | select EMBEDDED |
13 | select HAVE_OPROFILE | ||
14 | select HAVE_KPROBES | ||
13 | help | 15 | help |
14 | AVR32 is a high-performance 32-bit RISC microprocessor core, | 16 | AVR32 is a high-performance 32-bit RISC microprocessor core, |
15 | designed for cost-sensitive embedded applications, with particular | 17 | designed for cost-sensitive embedded applications, with particular |
@@ -54,9 +56,6 @@ config ARCH_HAS_ILOG2_U32 | |||
54 | config ARCH_HAS_ILOG2_U64 | 56 | config ARCH_HAS_ILOG2_U64 |
55 | def_bool n | 57 | def_bool n |
56 | 58 | ||
57 | config ARCH_SUPPORTS_OPROFILE | ||
58 | def_bool y | ||
59 | |||
60 | config GENERIC_HWEIGHT | 59 | config GENERIC_HWEIGHT |
61 | def_bool y | 60 | def_bool y |
62 | 61 | ||
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 4802eb767dc9..ba21e33b8b1f 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -24,6 +24,7 @@ config RWSEM_XCHGADD_ALGORITHM | |||
24 | config BLACKFIN | 24 | config BLACKFIN |
25 | bool | 25 | bool |
26 | default y | 26 | default y |
27 | select HAVE_OPROFILE | ||
27 | 28 | ||
28 | config ZONE_DMA | 29 | config ZONE_DMA |
29 | bool | 30 | bool |
@@ -973,8 +974,6 @@ source "drivers/Kconfig" | |||
973 | 974 | ||
974 | source "fs/Kconfig" | 975 | source "fs/Kconfig" |
975 | 976 | ||
976 | source "kernel/Kconfig.instrumentation" | ||
977 | |||
978 | source "arch/blackfin/Kconfig.debug" | 977 | source "arch/blackfin/Kconfig.debug" |
979 | 978 | ||
980 | source "security/Kconfig" | 979 | source "security/Kconfig" |
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 222da1501f47..7f0be4cd5e9a 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -213,8 +213,6 @@ source "drivers/pci/Kconfig" | |||
213 | 213 | ||
214 | source "drivers/usb/Kconfig" | 214 | source "drivers/usb/Kconfig" |
215 | 215 | ||
216 | source "kernel/Kconfig.instrumentation" | ||
217 | |||
218 | source "arch/cris/Kconfig.debug" | 216 | source "arch/cris/Kconfig.debug" |
219 | 217 | ||
220 | source "security/Kconfig" | 218 | source "security/Kconfig" |
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index e3f965c91e22..68380cb2ff88 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig | |||
@@ -375,8 +375,6 @@ source "drivers/Kconfig" | |||
375 | 375 | ||
376 | source "fs/Kconfig" | 376 | source "fs/Kconfig" |
377 | 377 | ||
378 | source "kernel/Kconfig.instrumentation" | ||
379 | |||
380 | source "arch/frv/Kconfig.debug" | 378 | source "arch/frv/Kconfig.debug" |
381 | 379 | ||
382 | source "security/Kconfig" | 380 | source "security/Kconfig" |
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index ff6a8712bd6d..dc61222e1120 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig | |||
@@ -223,8 +223,6 @@ endmenu | |||
223 | 223 | ||
224 | source "fs/Kconfig" | 224 | source "fs/Kconfig" |
225 | 225 | ||
226 | source "kernel/Kconfig.instrumentation" | ||
227 | |||
228 | source "arch/h8300/Kconfig.debug" | 226 | source "arch/h8300/Kconfig.debug" |
229 | 227 | ||
230 | source "security/Kconfig" | 228 | source "security/Kconfig" |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index c9307c99a1dc..a0740fbd94d9 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -15,6 +15,8 @@ config IA64 | |||
15 | select ACPI if (!IA64_HP_SIM) | 15 | select ACPI if (!IA64_HP_SIM) |
16 | select PM if (!IA64_HP_SIM) | 16 | select PM if (!IA64_HP_SIM) |
17 | select ARCH_SUPPORTS_MSI | 17 | select ARCH_SUPPORTS_MSI |
18 | select HAVE_OPROFILE | ||
19 | select HAVE_KPROBES | ||
18 | default y | 20 | default y |
19 | help | 21 | help |
20 | The Itanium Processor Family is Intel's 64-bit successor to | 22 | The Itanium Processor Family is Intel's 64-bit successor to |
@@ -600,8 +602,6 @@ config IRQ_PER_CPU | |||
600 | 602 | ||
601 | source "arch/ia64/hp/sim/Kconfig" | 603 | source "arch/ia64/hp/sim/Kconfig" |
602 | 604 | ||
603 | source "kernel/Kconfig.instrumentation" | ||
604 | |||
605 | source "arch/ia64/Kconfig.debug" | 605 | source "arch/ia64/Kconfig.debug" |
606 | 606 | ||
607 | source "security/Kconfig" | 607 | source "security/Kconfig" |
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index 49326e9d4413..12259759a2fe 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig | |||
@@ -8,6 +8,7 @@ mainmenu "Linux/M32R Kernel Configuration" | |||
8 | config M32R | 8 | config M32R |
9 | bool | 9 | bool |
10 | default y | 10 | default y |
11 | select HAVE_OPROFILE | ||
11 | 12 | ||
12 | config SBUS | 13 | config SBUS |
13 | bool | 14 | bool |
@@ -426,8 +427,6 @@ source "drivers/Kconfig" | |||
426 | 427 | ||
427 | source "fs/Kconfig" | 428 | source "fs/Kconfig" |
428 | 429 | ||
429 | source "kernel/Kconfig.instrumentation" | ||
430 | |||
431 | source "arch/m32r/Kconfig.debug" | 430 | source "arch/m32r/Kconfig.debug" |
432 | 431 | ||
433 | source "security/Kconfig" | 432 | source "security/Kconfig" |
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 24e6bc09e7a7..8236e42ef711 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig | |||
@@ -678,8 +678,6 @@ endmenu | |||
678 | 678 | ||
679 | source "fs/Kconfig" | 679 | source "fs/Kconfig" |
680 | 680 | ||
681 | source "kernel/Kconfig.instrumentation" | ||
682 | |||
683 | source "arch/m68k/Kconfig.debug" | 681 | source "arch/m68k/Kconfig.debug" |
684 | 682 | ||
685 | source "security/Kconfig" | 683 | source "security/Kconfig" |
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index bd9213749ac2..6abbbb8aac5e 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig | |||
@@ -711,8 +711,6 @@ source "drivers/Kconfig" | |||
711 | 711 | ||
712 | source "fs/Kconfig" | 712 | source "fs/Kconfig" |
713 | 713 | ||
714 | source "kernel/Kconfig.instrumentation" | ||
715 | |||
716 | source "arch/m68knommu/Kconfig.debug" | 714 | source "arch/m68knommu/Kconfig.debug" |
717 | 715 | ||
718 | source "security/Kconfig" | 716 | source "security/Kconfig" |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 36a4018f71d2..d38ebd3b1201 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -1,6 +1,7 @@ | |||
1 | config MIPS | 1 | config MIPS |
2 | bool | 2 | bool |
3 | default y | 3 | default y |
4 | select HAVE_OPROFILE | ||
4 | # Horrible source of confusion. Die, die, die ... | 5 | # Horrible source of confusion. Die, die, die ... |
5 | select EMBEDDED | 6 | select EMBEDDED |
6 | select RTC_LIB | 7 | select RTC_LIB |
@@ -2095,8 +2096,6 @@ source "drivers/Kconfig" | |||
2095 | 2096 | ||
2096 | source "fs/Kconfig" | 2097 | source "fs/Kconfig" |
2097 | 2098 | ||
2098 | source "kernel/Kconfig.instrumentation" | ||
2099 | |||
2100 | source "arch/mips/Kconfig.debug" | 2099 | source "arch/mips/Kconfig.debug" |
2101 | 2100 | ||
2102 | source "security/Kconfig" | 2101 | source "security/Kconfig" |
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 2b649c46631c..25c10fa69647 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
@@ -7,6 +7,7 @@ mainmenu "Linux/PA-RISC Kernel Configuration" | |||
7 | 7 | ||
8 | config PARISC | 8 | config PARISC |
9 | def_bool y | 9 | def_bool y |
10 | select HAVE_OPROFILE | ||
10 | help | 11 | help |
11 | The PA-RISC microprocessor is designed by Hewlett-Packard and used | 12 | The PA-RISC microprocessor is designed by Hewlett-Packard and used |
12 | in many of their workstations & servers (HP9000 700 and 800 series, | 13 | in many of their workstations & servers (HP9000 700 and 800 series, |
@@ -272,8 +273,6 @@ source "drivers/Kconfig" | |||
272 | 273 | ||
273 | source "fs/Kconfig" | 274 | source "fs/Kconfig" |
274 | 275 | ||
275 | source "kernel/Kconfig.instrumentation" | ||
276 | |||
277 | source "arch/parisc/Kconfig.debug" | 276 | source "arch/parisc/Kconfig.debug" |
278 | 277 | ||
279 | source "security/Kconfig" | 278 | source "security/Kconfig" |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 4a22c9928618..b94d4502a477 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -87,6 +87,8 @@ config ARCH_NO_VIRT_TO_BUS | |||
87 | config PPC | 87 | config PPC |
88 | bool | 88 | bool |
89 | default y | 89 | default y |
90 | select HAVE_OPROFILE | ||
91 | select HAVE_KPROBES | ||
90 | 92 | ||
91 | config EARLY_PRINTK | 93 | config EARLY_PRINTK |
92 | bool | 94 | bool |
@@ -713,8 +715,6 @@ source "arch/powerpc/sysdev/qe_lib/Kconfig" | |||
713 | 715 | ||
714 | source "lib/Kconfig" | 716 | source "lib/Kconfig" |
715 | 717 | ||
716 | source "kernel/Kconfig.instrumentation" | ||
717 | |||
718 | source "arch/powerpc/Kconfig.debug" | 718 | source "arch/powerpc/Kconfig.debug" |
719 | 719 | ||
720 | source "security/Kconfig" | 720 | source "security/Kconfig" |
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig index db5934cdafb3..531156f8919c 100644 --- a/arch/ppc/Kconfig +++ b/arch/ppc/Kconfig | |||
@@ -42,6 +42,8 @@ config GENERIC_CALIBRATE_DELAY | |||
42 | config PPC | 42 | config PPC |
43 | bool | 43 | bool |
44 | default y | 44 | default y |
45 | select HAVE_OPROFILE | ||
46 | select HAVE_KPROBES | ||
45 | 47 | ||
46 | config PPC32 | 48 | config PPC32 |
47 | bool | 49 | bool |
@@ -1256,8 +1258,6 @@ endmenu | |||
1256 | 1258 | ||
1257 | source "lib/Kconfig" | 1259 | source "lib/Kconfig" |
1258 | 1260 | ||
1259 | source "kernel/Kconfig.instrumentation" | ||
1260 | |||
1261 | source "arch/ppc/Kconfig.debug" | 1261 | source "arch/ppc/Kconfig.debug" |
1262 | 1262 | ||
1263 | source "security/Kconfig" | 1263 | source "security/Kconfig" |
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 6ef54d27fc00..974f9c3e89d9 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -51,6 +51,8 @@ mainmenu "Linux Kernel Configuration" | |||
51 | 51 | ||
52 | config S390 | 52 | config S390 |
53 | def_bool y | 53 | def_bool y |
54 | select HAVE_OPROFILE | ||
55 | select HAVE_KPROBES | ||
54 | 56 | ||
55 | source "init/Kconfig" | 57 | source "init/Kconfig" |
56 | 58 | ||
@@ -526,8 +528,6 @@ source "drivers/Kconfig" | |||
526 | 528 | ||
527 | source "fs/Kconfig" | 529 | source "fs/Kconfig" |
528 | 530 | ||
529 | source "kernel/Kconfig.instrumentation" | ||
530 | |||
531 | source "arch/s390/Kconfig.debug" | 531 | source "arch/s390/Kconfig.debug" |
532 | 532 | ||
533 | source "security/Kconfig" | 533 | source "security/Kconfig" |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index b30c4c376a83..bfbd54a22bde 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -8,6 +8,7 @@ mainmenu "Linux/SuperH Kernel Configuration" | |||
8 | config SUPERH | 8 | config SUPERH |
9 | def_bool y | 9 | def_bool y |
10 | select EMBEDDED | 10 | select EMBEDDED |
11 | select HAVE_OPROFILE | ||
11 | help | 12 | help |
12 | The SuperH is a RISC processor targeted for use in embedded systems | 13 | The SuperH is a RISC processor targeted for use in embedded systems |
13 | and consumer electronics; it was also used in the Sega Dreamcast | 14 | and consumer electronics; it was also used in the Sega Dreamcast |
@@ -896,8 +897,6 @@ source "drivers/Kconfig" | |||
896 | 897 | ||
897 | source "fs/Kconfig" | 898 | source "fs/Kconfig" |
898 | 899 | ||
899 | source "kernel/Kconfig.instrumentation" | ||
900 | |||
901 | source "arch/sh/Kconfig.debug" | 900 | source "arch/sh/Kconfig.debug" |
902 | 901 | ||
903 | source "security/Kconfig" | 902 | source "security/Kconfig" |
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 527adc808ad6..51008a2ba5b4 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
@@ -63,6 +63,7 @@ config NR_CPUS | |||
63 | config SPARC | 63 | config SPARC |
64 | bool | 64 | bool |
65 | default y | 65 | default y |
66 | select HAVE_OPROFILE | ||
66 | 67 | ||
67 | # Identify this as a Sparc32 build | 68 | # Identify this as a Sparc32 build |
68 | config SPARC32 | 69 | config SPARC32 |
@@ -320,8 +321,6 @@ endmenu | |||
320 | 321 | ||
321 | source "fs/Kconfig" | 322 | source "fs/Kconfig" |
322 | 323 | ||
323 | source "kernel/Kconfig.instrumentation" | ||
324 | |||
325 | source "arch/sparc/Kconfig.debug" | 324 | source "arch/sparc/Kconfig.debug" |
326 | 325 | ||
327 | source "security/Kconfig" | 326 | source "security/Kconfig" |
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index 158522f51d31..a7739b507b74 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig | |||
@@ -8,6 +8,8 @@ mainmenu "Linux/UltraSPARC Kernel Configuration" | |||
8 | config SPARC | 8 | config SPARC |
9 | bool | 9 | bool |
10 | default y | 10 | default y |
11 | select HAVE_OPROFILE | ||
12 | select HAVE_KPROBES | ||
11 | 13 | ||
12 | config SPARC64 | 14 | config SPARC64 |
13 | bool | 15 | bool |
@@ -465,8 +467,6 @@ source "drivers/sbus/char/Kconfig" | |||
465 | 467 | ||
466 | source "fs/Kconfig" | 468 | source "fs/Kconfig" |
467 | 469 | ||
468 | source "kernel/Kconfig.instrumentation" | ||
469 | |||
470 | source "arch/sparc64/Kconfig.debug" | 470 | source "arch/sparc64/Kconfig.debug" |
471 | 471 | ||
472 | source "security/Kconfig" | 472 | source "security/Kconfig" |
diff --git a/arch/um/Kconfig b/arch/um/Kconfig index dd1689b814cb..55945db1313c 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig | |||
@@ -289,6 +289,4 @@ config INPUT | |||
289 | bool | 289 | bool |
290 | default n | 290 | default n |
291 | 291 | ||
292 | source "kernel/Kconfig.instrumentation" | ||
293 | |||
294 | source "arch/um/Kconfig.debug" | 292 | source "arch/um/Kconfig.debug" |
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig index b6a50b8b38de..ace479ab273f 100644 --- a/arch/v850/Kconfig +++ b/arch/v850/Kconfig | |||
@@ -331,8 +331,6 @@ source "sound/Kconfig" | |||
331 | 331 | ||
332 | source "drivers/usb/Kconfig" | 332 | source "drivers/usb/Kconfig" |
333 | 333 | ||
334 | source "kernel/Kconfig.instrumentation" | ||
335 | |||
336 | source "arch/v850/Kconfig.debug" | 334 | source "arch/v850/Kconfig.debug" |
337 | 335 | ||
338 | source "security/Kconfig" | 336 | source "security/Kconfig" |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 7109037bdf7c..3162cb467ab3 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -18,6 +18,8 @@ config X86_64 | |||
18 | ### Arch settings | 18 | ### Arch settings |
19 | config X86 | 19 | config X86 |
20 | def_bool y | 20 | def_bool y |
21 | select HAVE_OPROFILE | ||
22 | select HAVE_KPROBES | ||
21 | 23 | ||
22 | config GENERIC_LOCKBREAK | 24 | config GENERIC_LOCKBREAK |
23 | def_bool n | 25 | def_bool n |
@@ -106,10 +108,6 @@ config GENERIC_TIME_VSYSCALL | |||
106 | config HAVE_SETUP_PER_CPU_AREA | 108 | config HAVE_SETUP_PER_CPU_AREA |
107 | def_bool X86_64 | 109 | def_bool X86_64 |
108 | 110 | ||
109 | config ARCH_SUPPORTS_OPROFILE | ||
110 | bool | ||
111 | default y | ||
112 | |||
113 | select HAVE_KVM | 111 | select HAVE_KVM |
114 | 112 | ||
115 | config ARCH_HIBERNATION_POSSIBLE | 113 | config ARCH_HIBERNATION_POSSIBLE |
@@ -1597,8 +1595,6 @@ source "drivers/firmware/Kconfig" | |||
1597 | 1595 | ||
1598 | source "fs/Kconfig" | 1596 | source "fs/Kconfig" |
1599 | 1597 | ||
1600 | source "kernel/Kconfig.instrumentation" | ||
1601 | |||
1602 | source "arch/x86/Kconfig.debug" | 1598 | source "arch/x86/Kconfig.debug" |
1603 | 1599 | ||
1604 | source "security/Kconfig" | 1600 | source "security/Kconfig" |
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index 844721e8e3dd..5d5546ce88fe 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig | |||
@@ -246,8 +246,6 @@ config EMBEDDED_RAMDISK_IMAGE | |||
246 | provide one yourself. | 246 | provide one yourself. |
247 | endmenu | 247 | endmenu |
248 | 248 | ||
249 | source "kernel/Kconfig.instrumentation" | ||
250 | |||
251 | source "arch/xtensa/Kconfig.debug" | 249 | source "arch/xtensa/Kconfig.debug" |
252 | 250 | ||
253 | source "security/Kconfig" | 251 | source "security/Kconfig" |
diff --git a/drivers/scsi/aic7xxx/Makefile b/drivers/scsi/aic7xxx/Makefile index e4f70c563bc2..4c549540a35d 100644 --- a/drivers/scsi/aic7xxx/Makefile +++ b/drivers/scsi/aic7xxx/Makefile | |||
@@ -44,13 +44,8 @@ clean-files += aic79xx_seq.h aic79xx_reg.h aic79xx_reg_print.c | |||
44 | 44 | ||
45 | # Dependencies for generated files need to be listed explicitly | 45 | # Dependencies for generated files need to be listed explicitly |
46 | 46 | ||
47 | $(obj)/aic7xxx_core.o: $(obj)/aic7xxx_seq.h | 47 | $(addprefix $(src)/,$(aic7xxx-y:.o=.c)): $(obj)/aic7xxx_seq.h $(obj)/aic7xxx_reg.h |
48 | $(obj)/aic7xxx_core.o: $(obj)/aic7xxx_reg.h | 48 | $(addprefix $(src)/,$(aic79xx-y:.o=.c)): $(obj)/aic79xx_seq.h $(obj)/aic79xx_reg.h |
49 | $(obj)/aic79xx_core.o: $(obj)/aic79xx_seq.h | ||
50 | $(obj)/aic79xx_core.o: $(obj)/aic79xx_reg.h | ||
51 | |||
52 | $(addprefix $(obj)/,$(aic7xxx-y)): $(obj)/aic7xxx_seq.h | ||
53 | $(addprefix $(obj)/,$(aic79xx-y)): $(obj)/aic79xx_seq.h | ||
54 | 49 | ||
55 | aic7xxx-gen-$(CONFIG_AIC7XXX_BUILD_FIRMWARE) := $(obj)/aic7xxx_reg.h | 50 | aic7xxx-gen-$(CONFIG_AIC7XXX_BUILD_FIRMWARE) := $(obj)/aic7xxx_reg.h |
56 | aic7xxx-gen-$(CONFIG_AIC7XXX_REG_PRETTY_PRINT) += $(obj)/aic7xxx_reg_print.c | 51 | aic7xxx-gen-$(CONFIG_AIC7XXX_REG_PRETTY_PRINT) += $(obj)/aic7xxx_reg_print.c |
diff --git a/include/linux/init.h b/include/linux/init.h index 2efbda016741..90cdbbbbe077 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
@@ -124,9 +124,6 @@ | |||
124 | #define __REF .section ".ref.text", "ax" | 124 | #define __REF .section ".ref.text", "ax" |
125 | #define __REFDATA .section ".ref.data", "aw" | 125 | #define __REFDATA .section ".ref.data", "aw" |
126 | #define __REFCONST .section ".ref.rodata", "aw" | 126 | #define __REFCONST .section ".ref.rodata", "aw" |
127 | /* backward compatibility */ | ||
128 | #define __INIT_REFOK .section __REF | ||
129 | #define __INITDATA_REFOK .section __REFDATA | ||
130 | 127 | ||
131 | #ifndef __ASSEMBLY__ | 128 | #ifndef __ASSEMBLY__ |
132 | /* | 129 | /* |
diff --git a/init/Kconfig b/init/Kconfig index dcc96a8c8c69..b2acdeb2d312 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -665,6 +665,20 @@ config SLOB | |||
665 | 665 | ||
666 | endchoice | 666 | endchoice |
667 | 667 | ||
668 | config PROFILING | ||
669 | bool "Profiling support (EXPERIMENTAL)" | ||
670 | help | ||
671 | Say Y here to enable the extended profiling support mechanisms used | ||
672 | by profilers such as OProfile. | ||
673 | |||
674 | config MARKERS | ||
675 | bool "Activate markers" | ||
676 | help | ||
677 | Place an empty function call at each marker site. Can be | ||
678 | dynamically changed for a probe function. | ||
679 | |||
680 | source "arch/Kconfig" | ||
681 | |||
668 | endmenu # General setup | 682 | endmenu # General setup |
669 | 683 | ||
670 | config SLABINFO | 684 | config SLABINFO |
diff --git a/kernel/Kconfig.instrumentation b/kernel/Kconfig.instrumentation deleted file mode 100644 index 468f47ad7503..000000000000 --- a/kernel/Kconfig.instrumentation +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | menuconfig INSTRUMENTATION | ||
2 | bool "Instrumentation Support" | ||
3 | default y | ||
4 | ---help--- | ||
5 | Say Y here to get to see options related to performance measurement, | ||
6 | system-wide debugging, and testing. This option alone does not add any | ||
7 | kernel code. | ||
8 | |||
9 | If you say N, all options in this submenu will be skipped and | ||
10 | disabled. If you're trying to debug the kernel itself, go see the | ||
11 | Kernel Hacking menu. | ||
12 | |||
13 | if INSTRUMENTATION | ||
14 | |||
15 | config PROFILING | ||
16 | bool "Profiling support (EXPERIMENTAL)" | ||
17 | help | ||
18 | Say Y here to enable the extended profiling support mechanisms used | ||
19 | by profilers such as OProfile. | ||
20 | |||
21 | config OPROFILE | ||
22 | tristate "OProfile system profiling (EXPERIMENTAL)" | ||
23 | depends on PROFILING && !UML | ||
24 | depends on ARCH_SUPPORTS_OPROFILE || ALPHA || ARM || BLACKFIN || IA64 || M32R || PARISC || PPC || S390 || SUPERH || SPARC | ||
25 | help | ||
26 | OProfile is a profiling system capable of profiling the | ||
27 | whole system, include the kernel, kernel modules, libraries, | ||
28 | and applications. | ||
29 | |||
30 | If unsure, say N. | ||
31 | |||
32 | config KPROBES | ||
33 | bool "Kprobes" | ||
34 | depends on KALLSYMS && MODULES && !UML | ||
35 | depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32 | ||
36 | help | ||
37 | Kprobes allows you to trap at almost any kernel address and | ||
38 | execute a callback function. register_kprobe() establishes | ||
39 | a probepoint and specifies the callback. Kprobes is useful | ||
40 | for kernel debugging, non-intrusive instrumentation and testing. | ||
41 | If in doubt, say "N". | ||
42 | |||
43 | config MARKERS | ||
44 | bool "Activate markers" | ||
45 | help | ||
46 | Place an empty function call at each marker site. Can be | ||
47 | dynamically changed for a probe function. | ||
48 | |||
49 | endif # INSTRUMENTATION | ||
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 0d8a5a4a789d..0d385be682db 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -81,7 +81,7 @@ config HEADERS_CHECK | |||
81 | 81 | ||
82 | config DEBUG_SECTION_MISMATCH | 82 | config DEBUG_SECTION_MISMATCH |
83 | bool "Enable full Section mismatch analysis" | 83 | bool "Enable full Section mismatch analysis" |
84 | default n | 84 | depends on UNDEFINED |
85 | help | 85 | help |
86 | The section mismatch analysis checks if there are illegal | 86 | The section mismatch analysis checks if there are illegal |
87 | references from one section to another section. | 87 | references from one section to another section. |
@@ -90,19 +90,19 @@ config DEBUG_SECTION_MISMATCH | |||
90 | most likely result in an oops. | 90 | most likely result in an oops. |
91 | In the code functions and variables are annotated with | 91 | In the code functions and variables are annotated with |
92 | __init, __devinit etc. (see full list in include/linux/init.h) | 92 | __init, __devinit etc. (see full list in include/linux/init.h) |
93 | which result in the code/data being placed in specific sections. | 93 | which results in the code/data being placed in specific sections. |
94 | The section mismatch anaylsis are always done after a full | 94 | The section mismatch analysis is always done after a full |
95 | kernel build but enabling this options will in addition | 95 | kernel build but enabling this option will in addition |
96 | do the following: | 96 | do the following: |
97 | - Add the option -fno-inline-functions-called-once to gcc | 97 | - Add the option -fno-inline-functions-called-once to gcc |
98 | When inlining a function annotated __init in a non-init | 98 | When inlining a function annotated __init in a non-init |
99 | function we would loose the section information and thus | 99 | function we would lose the section information and thus |
100 | the analysis would not catch the illegal reference. | 100 | the analysis would not catch the illegal reference. |
101 | This options tell gcc to inline less but will also | 101 | This option tells gcc to inline less but will also |
102 | result in a larger kernel. | 102 | result in a larger kernel. |
103 | - Run the section mismatch analysis for each module/built-in.o | 103 | - Run the section mismatch analysis for each module/built-in.o |
104 | When we run the section mismatch analysis on vmlinux.o we | 104 | When we run the section mismatch analysis on vmlinux.o we |
105 | looses valueable information about where the mismatch was | 105 | lose valueble information about where the mismatch was |
106 | introduced. | 106 | introduced. |
107 | Running the analysis for each module/built-in.o file | 107 | Running the analysis for each module/built-in.o file |
108 | will tell where the mismatch happens much closer to the | 108 | will tell where the mismatch happens much closer to the |
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c index 50e61c411bc0..734cf4f3131e 100644 --- a/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c | |||
@@ -821,6 +821,7 @@ static void conf_load(void) | |||
821 | return; | 821 | return; |
822 | if (!conf_read(dialog_input_result)) { | 822 | if (!conf_read(dialog_input_result)) { |
823 | set_config_filename(dialog_input_result); | 823 | set_config_filename(dialog_input_result); |
824 | sym_set_change_count(1); | ||
824 | return; | 825 | return; |
825 | } | 826 | } |
826 | show_textbox(NULL, _("File does not exist!"), 5, 38); | 827 | show_textbox(NULL, _("File does not exist!"), 5, 38); |
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c index fdad17367f61..606ceb9e746e 100644 --- a/scripts/kconfig/menu.c +++ b/scripts/kconfig/menu.c | |||
@@ -203,12 +203,9 @@ void sym_check_prop(struct symbol *sym) | |||
203 | prop_warn(prop, | 203 | prop_warn(prop, |
204 | "config symbol '%s' uses select, but is " | 204 | "config symbol '%s' uses select, but is " |
205 | "not boolean or tristate", sym->name); | 205 | "not boolean or tristate", sym->name); |
206 | else if (sym2->type == S_UNKNOWN) | 206 | else if (sym2->type != S_UNKNOWN && |
207 | prop_warn(prop, | 207 | sym2->type != S_BOOLEAN && |
208 | "'select' used by config symbol '%s' " | 208 | sym2->type != S_TRISTATE) |
209 | "refers to undefined symbol '%s'", | ||
210 | sym->name, sym2->name); | ||
211 | else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE) | ||
212 | prop_warn(prop, | 209 | prop_warn(prop, |
213 | "'%s' has wrong type. 'select' only " | 210 | "'%s' has wrong type. 'select' only " |
214 | "accept arguments of boolean and " | 211 | "accept arguments of boolean and " |
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index f8efc93eb700..5d546466e6b1 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c | |||
@@ -870,7 +870,7 @@ const struct sectioncheck sectioncheck[] = { | |||
870 | /* Do not export init/exit functions or data */ | 870 | /* Do not export init/exit functions or data */ |
871 | { | 871 | { |
872 | .fromsec = { "__ksymtab*", NULL }, | 872 | .fromsec = { "__ksymtab*", NULL }, |
873 | .tosec = { ALL_INIT_SECTIONS, ALL_EXIT_SECTIONS, NULL }, | 873 | .tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL }, |
874 | .mismatch = EXPORT_TO_INIT_EXIT | 874 | .mismatch = EXPORT_TO_INIT_EXIT |
875 | } | 875 | } |
876 | }; | 876 | }; |
@@ -1125,15 +1125,15 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch, | |||
1125 | to = to_is_func ? "function" : "variable"; | 1125 | to = to_is_func ? "function" : "variable"; |
1126 | to_p = to_is_func ? "()" : ""; | 1126 | to_p = to_is_func ? "()" : ""; |
1127 | 1127 | ||
1128 | sec_mismatch_count++; | ||
1129 | if (!sec_mismatch_verbose) | ||
1130 | return; | ||
1131 | |||
1128 | fprintf(stderr, "WARNING: %s(%s+0x%llx): Section mismatch in" | 1132 | fprintf(stderr, "WARNING: %s(%s+0x%llx): Section mismatch in" |
1129 | " reference from the %s %s%s to the %s %s:%s%s\n", | 1133 | " reference from the %s %s%s to the %s %s:%s%s\n", |
1130 | modname, fromsec, fromaddr, from, fromsym, from_p, | 1134 | modname, fromsec, fromaddr, from, fromsym, from_p, |
1131 | to, tosec, tosym, to_p); | 1135 | to, tosec, tosym, to_p); |
1132 | 1136 | ||
1133 | sec_mismatch_count++; | ||
1134 | if (!sec_mismatch_verbose) | ||
1135 | return; | ||
1136 | |||
1137 | switch (mismatch) { | 1137 | switch (mismatch) { |
1138 | case TEXT_TO_INIT: | 1138 | case TEXT_TO_INIT: |
1139 | fprintf(stderr, | 1139 | fprintf(stderr, |
@@ -1939,10 +1939,9 @@ int main(int argc, char **argv) | |||
1939 | write_dump(dump_write); | 1939 | write_dump(dump_write); |
1940 | if (sec_mismatch_count && !sec_mismatch_verbose) | 1940 | if (sec_mismatch_count && !sec_mismatch_verbose) |
1941 | fprintf(stderr, "modpost: Found %d section mismatch(es).\n" | 1941 | fprintf(stderr, "modpost: Found %d section mismatch(es).\n" |
1942 | "To see additional details select \"Enable full " | 1942 | "To see full details build your kernel with:\n" |
1943 | "Section mismatch analysis\"\n" | 1943 | "'make CONFIG_DEBUG_SECTION_MISMATCH=y'\n", |
1944 | "in the Kernel Hacking menu " | 1944 | sec_mismatch_count); |
1945 | "(CONFIG_SECTION_MISMATCH).\n", sec_mismatch_count); | ||
1946 | 1945 | ||
1947 | return err; | 1946 | return err; |
1948 | } | 1947 | } |
diff --git a/scripts/setlocalversion b/scripts/setlocalversion index 52f032e409a3..1c1bdaf7348a 100644..100755 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion | |||
@@ -45,3 +45,19 @@ if hgid=`hg id 2>/dev/null`; then | |||
45 | # All done with mercurial | 45 | # All done with mercurial |
46 | exit | 46 | exit |
47 | fi | 47 | fi |
48 | |||
49 | # Check for svn and a svn repo. | ||
50 | if rev=`svn info 2>/dev/null | grep '^Revision'`; then | ||
51 | rev=`echo $rev | awk '{print $NF}'` | ||
52 | changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l` | ||
53 | |||
54 | # Are there uncommitted changes? | ||
55 | if [ $changes != 0 ]; then | ||
56 | printf -- '-svn%s%s%s' "$rev" -dirty "$changes" | ||
57 | else | ||
58 | printf -- '-svn%s' "$rev" | ||
59 | fi | ||
60 | |||
61 | # All done with svn | ||
62 | exit | ||
63 | fi | ||