diff options
Diffstat (limited to 'kernel/trace')
| -rw-r--r-- | kernel/trace/Kconfig | 10 | ||||
| -rw-r--r-- | kernel/trace/ring_buffer.c | 3 | ||||
| -rw-r--r-- | kernel/trace/trace.c | 23 | ||||
| -rw-r--r-- | kernel/trace/trace_sysprof.c | 3 |
4 files changed, 21 insertions, 18 deletions
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 4a13e5a01ce3..61071fecc82e 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
| @@ -147,7 +147,7 @@ config IRQSOFF_TRACER | |||
| 147 | disabled by default and can be runtime (re-)started | 147 | disabled by default and can be runtime (re-)started |
| 148 | via: | 148 | via: |
| 149 | 149 | ||
| 150 | echo 0 > /debugfs/tracing/tracing_max_latency | 150 | echo 0 > /sys/kernel/debug/tracing/tracing_max_latency |
| 151 | 151 | ||
| 152 | (Note that kernel size and overhead increases with this option | 152 | (Note that kernel size and overhead increases with this option |
| 153 | enabled. This option and the preempt-off timing option can be | 153 | enabled. This option and the preempt-off timing option can be |
| @@ -168,7 +168,7 @@ config PREEMPT_TRACER | |||
| 168 | disabled by default and can be runtime (re-)started | 168 | disabled by default and can be runtime (re-)started |
| 169 | via: | 169 | via: |
| 170 | 170 | ||
| 171 | echo 0 > /debugfs/tracing/tracing_max_latency | 171 | echo 0 > /sys/kernel/debug/tracing/tracing_max_latency |
| 172 | 172 | ||
| 173 | (Note that kernel size and overhead increases with this option | 173 | (Note that kernel size and overhead increases with this option |
| 174 | enabled. This option and the irqs-off timing option can be | 174 | enabled. This option and the irqs-off timing option can be |
| @@ -261,7 +261,7 @@ config PROFILE_ANNOTATED_BRANCHES | |||
| 261 | This tracer profiles all the the likely and unlikely macros | 261 | This tracer profiles all the the likely and unlikely macros |
| 262 | in the kernel. It will display the results in: | 262 | in the kernel. It will display the results in: |
| 263 | 263 | ||
| 264 | /debugfs/tracing/profile_annotated_branch | 264 | /sys/kernel/debug/tracing/profile_annotated_branch |
| 265 | 265 | ||
| 266 | Note: this will add a significant overhead, only turn this | 266 | Note: this will add a significant overhead, only turn this |
| 267 | on if you need to profile the system's use of these macros. | 267 | on if you need to profile the system's use of these macros. |
| @@ -274,7 +274,7 @@ config PROFILE_ALL_BRANCHES | |||
| 274 | taken in the kernel is recorded whether it hit or miss. | 274 | taken in the kernel is recorded whether it hit or miss. |
| 275 | The results will be displayed in: | 275 | The results will be displayed in: |
| 276 | 276 | ||
| 277 | /debugfs/tracing/profile_branch | 277 | /sys/kernel/debug/tracing/profile_branch |
| 278 | 278 | ||
| 279 | This option also enables the likely/unlikely profiler. | 279 | This option also enables the likely/unlikely profiler. |
| 280 | 280 | ||
| @@ -323,7 +323,7 @@ config STACK_TRACER | |||
| 323 | select KALLSYMS | 323 | select KALLSYMS |
| 324 | help | 324 | help |
| 325 | This special tracer records the maximum stack footprint of the | 325 | This special tracer records the maximum stack footprint of the |
| 326 | kernel and displays it in debugfs/tracing/stack_trace. | 326 | kernel and displays it in /sys/kernel/debug/tracing/stack_trace. |
| 327 | 327 | ||
| 328 | This tracer works by hooking into every function call that the | 328 | This tracer works by hooking into every function call that the |
| 329 | kernel executes, and keeping a maximum stack depth value and | 329 | kernel executes, and keeping a maximum stack depth value and |
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 2e642b2b7253..dc4dc70171ce 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <linux/debugfs.h> | 10 | #include <linux/debugfs.h> |
| 11 | #include <linux/uaccess.h> | 11 | #include <linux/uaccess.h> |
| 12 | #include <linux/hardirq.h> | 12 | #include <linux/hardirq.h> |
| 13 | #include <linux/kmemcheck.h> | ||
| 13 | #include <linux/module.h> | 14 | #include <linux/module.h> |
| 14 | #include <linux/percpu.h> | 15 | #include <linux/percpu.h> |
| 15 | #include <linux/mutex.h> | 16 | #include <linux/mutex.h> |
| @@ -1270,6 +1271,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer, | |||
| 1270 | if (tail < BUF_PAGE_SIZE) { | 1271 | if (tail < BUF_PAGE_SIZE) { |
| 1271 | /* Mark the rest of the page with padding */ | 1272 | /* Mark the rest of the page with padding */ |
| 1272 | event = __rb_page_index(tail_page, tail); | 1273 | event = __rb_page_index(tail_page, tail); |
| 1274 | kmemcheck_annotate_bitfield(event, bitfield); | ||
| 1273 | rb_event_set_padding(event); | 1275 | rb_event_set_padding(event); |
| 1274 | } | 1276 | } |
| 1275 | 1277 | ||
| @@ -1327,6 +1329,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer, | |||
| 1327 | return NULL; | 1329 | return NULL; |
| 1328 | 1330 | ||
| 1329 | event = __rb_page_index(tail_page, tail); | 1331 | event = __rb_page_index(tail_page, tail); |
| 1332 | kmemcheck_annotate_bitfield(event, bitfield); | ||
| 1330 | rb_update_event(event, type, length); | 1333 | rb_update_event(event, type, length); |
| 1331 | 1334 | ||
| 1332 | /* The passed in type is zero for DATA */ | 1335 | /* The passed in type is zero for DATA */ |
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 8acd9b81a5d7..c1878bfb2e1e 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
| @@ -344,7 +344,7 @@ static raw_spinlock_t ftrace_max_lock = | |||
| 344 | /* | 344 | /* |
| 345 | * Copy the new maximum trace into the separate maximum-trace | 345 | * Copy the new maximum trace into the separate maximum-trace |
| 346 | * structure. (this way the maximum trace is permanently saved, | 346 | * structure. (this way the maximum trace is permanently saved, |
| 347 | * for later retrieval via /debugfs/tracing/latency_trace) | 347 | * for later retrieval via /sys/kernel/debug/tracing/latency_trace) |
| 348 | */ | 348 | */ |
| 349 | static void | 349 | static void |
| 350 | __update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) | 350 | __update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) |
| @@ -2414,21 +2414,20 @@ static const struct file_operations tracing_iter_fops = { | |||
| 2414 | 2414 | ||
| 2415 | static const char readme_msg[] = | 2415 | static const char readme_msg[] = |
| 2416 | "tracing mini-HOWTO:\n\n" | 2416 | "tracing mini-HOWTO:\n\n" |
| 2417 | "# mkdir /debug\n" | 2417 | "# mount -t debugfs nodev /sys/kernel/debug\n\n" |
| 2418 | "# mount -t debugfs nodev /debug\n\n" | 2418 | "# cat /sys/kernel/debug/tracing/available_tracers\n" |
| 2419 | "# cat /debug/tracing/available_tracers\n" | ||
| 2420 | "wakeup preemptirqsoff preemptoff irqsoff function sched_switch nop\n\n" | 2419 | "wakeup preemptirqsoff preemptoff irqsoff function sched_switch nop\n\n" |
| 2421 | "# cat /debug/tracing/current_tracer\n" | 2420 | "# cat /sys/kernel/debug/tracing/current_tracer\n" |
| 2422 | "nop\n" | 2421 | "nop\n" |
| 2423 | "# echo sched_switch > /debug/tracing/current_tracer\n" | 2422 | "# echo sched_switch > /sys/kernel/debug/tracing/current_tracer\n" |
| 2424 | "# cat /debug/tracing/current_tracer\n" | 2423 | "# cat /sys/kernel/debug/tracing/current_tracer\n" |
| 2425 | "sched_switch\n" | 2424 | "sched_switch\n" |
| 2426 | "# cat /debug/tracing/trace_options\n" | 2425 | "# cat /sys/kernel/debug/tracing/trace_options\n" |
| 2427 | "noprint-parent nosym-offset nosym-addr noverbose\n" | 2426 | "noprint-parent nosym-offset nosym-addr noverbose\n" |
| 2428 | "# echo print-parent > /debug/tracing/trace_options\n" | 2427 | "# echo print-parent > /sys/kernel/debug/tracing/trace_options\n" |
| 2429 | "# echo 1 > /debug/tracing/tracing_enabled\n" | 2428 | "# echo 1 > /sys/kernel/debug/tracing/tracing_enabled\n" |
| 2430 | "# cat /debug/tracing/trace > /tmp/trace.txt\n" | 2429 | "# cat /sys/kernel/debug/tracing/trace > /tmp/trace.txt\n" |
| 2431 | "# echo 0 > /debug/tracing/tracing_enabled\n" | 2430 | "# echo 0 > /sys/kernel/debug/tracing/tracing_enabled\n" |
| 2432 | ; | 2431 | ; |
| 2433 | 2432 | ||
| 2434 | static ssize_t | 2433 | static ssize_t |
diff --git a/kernel/trace/trace_sysprof.c b/kernel/trace/trace_sysprof.c index e04b76cc238a..f6693969287d 100644 --- a/kernel/trace/trace_sysprof.c +++ b/kernel/trace/trace_sysprof.c | |||
| @@ -203,7 +203,8 @@ static void start_stack_timer(void *unused) | |||
| 203 | hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); | 203 | hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); |
| 204 | hrtimer->function = stack_trace_timer_fn; | 204 | hrtimer->function = stack_trace_timer_fn; |
| 205 | 205 | ||
| 206 | hrtimer_start(hrtimer, ns_to_ktime(sample_period), HRTIMER_MODE_REL); | 206 | hrtimer_start(hrtimer, ns_to_ktime(sample_period), |
| 207 | HRTIMER_MODE_REL_PINNED); | ||
| 207 | } | 208 | } |
| 208 | 209 | ||
| 209 | static void start_stack_timers(void) | 210 | static void start_stack_timers(void) |
