diff options
author | Ingo Molnar <mingo@kernel.org> | 2012-04-14 07:18:27 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-04-14 07:19:04 -0400 |
commit | 6ac1ef482d7ae0c690f1640bf6eb818ff9a2d91e (patch) | |
tree | 021cc9f6b477146fcebe6f3be4752abfa2ba18a9 /arch/Kconfig | |
parent | 682968e0c425c60f0dde37977e5beb2b12ddc4cc (diff) | |
parent | a385ec4f11bdcf81af094c03e2444ee9b7fad2e5 (diff) |
Merge branch 'perf/core' into perf/uprobes
Merge in latest upstream (and the latest perf development tree),
to prepare for tooling changes, and also to pick up v3.4 MM
changes that the uprobes code needs to take care of.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/Kconfig')
-rw-r--r-- | arch/Kconfig | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/arch/Kconfig b/arch/Kconfig index d0e37c9d5f6b..e5d3778d5554 100644 --- a/arch/Kconfig +++ b/arch/Kconfig | |||
@@ -47,18 +47,29 @@ config KPROBES | |||
47 | If in doubt, say "N". | 47 | If in doubt, say "N". |
48 | 48 | ||
49 | config JUMP_LABEL | 49 | config JUMP_LABEL |
50 | bool "Optimize trace point call sites" | 50 | bool "Optimize very unlikely/likely branches" |
51 | depends on HAVE_ARCH_JUMP_LABEL | 51 | depends on HAVE_ARCH_JUMP_LABEL |
52 | help | 52 | help |
53 | This option enables a transparent branch optimization that | ||
54 | makes certain almost-always-true or almost-always-false branch | ||
55 | conditions even cheaper to execute within the kernel. | ||
56 | |||
57 | Certain performance-sensitive kernel code, such as trace points, | ||
58 | scheduler functionality, networking code and KVM have such | ||
59 | branches and include support for this optimization technique. | ||
60 | |||
53 | If it is detected that the compiler has support for "asm goto", | 61 | If it is detected that the compiler has support for "asm goto", |
54 | the kernel will compile trace point locations with just a | 62 | the kernel will compile such branches with just a nop |
55 | nop instruction. When trace points are enabled, the nop will | 63 | instruction. When the condition flag is toggled to true, the |
56 | be converted to a jump to the trace function. This technique | 64 | nop will be converted to a jump instruction to execute the |
57 | lowers overhead and stress on the branch prediction of the | 65 | conditional block of instructions. |
58 | processor. | ||
59 | 66 | ||
60 | On i386, options added to the compiler flags may increase | 67 | This technique lowers overhead and stress on the branch prediction |
61 | the size of the kernel slightly. | 68 | of the processor and generally makes the kernel faster. The update |
69 | of the condition is slower, but those are always very rare. | ||
70 | |||
71 | ( On 32-bit x86, the necessary options added to the compiler | ||
72 | flags may increase the size of the kernel slightly. ) | ||
62 | 73 | ||
63 | config OPTPROBES | 74 | config OPTPROBES |
64 | def_bool y | 75 | def_bool y |
@@ -126,6 +137,9 @@ config HAVE_KRETPROBES | |||
126 | 137 | ||
127 | config HAVE_OPTPROBES | 138 | config HAVE_OPTPROBES |
128 | bool | 139 | bool |
140 | |||
141 | config HAVE_NMI_WATCHDOG | ||
142 | bool | ||
129 | # | 143 | # |
130 | # An arch should select this if it provides all these things: | 144 | # An arch should select this if it provides all these things: |
131 | # | 145 | # |
@@ -216,4 +230,7 @@ config HAVE_CMPXCHG_LOCAL | |||
216 | config HAVE_CMPXCHG_DOUBLE | 230 | config HAVE_CMPXCHG_DOUBLE |
217 | bool | 231 | bool |
218 | 232 | ||
233 | config ARCH_WANT_OLD_COMPAT_IPC | ||
234 | bool | ||
235 | |||
219 | source "kernel/gcov/Kconfig" | 236 | source "kernel/gcov/Kconfig" |