Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
tracing: Fix trace_print_seq()
kprobes: No need to unlock kprobe_insn_mutex
tracing/fastboot: Document the need of initcall_debug
trace_export: Repair missed fields
tracing: Fix stack tracer sysctl handling

+12 -14
+1 -5
kernel/kprobes.c
··· 237 237 { 238 238 struct kprobe_insn_page *kip; 239 239 struct hlist_node *pos, *next; 240 - int safety; 241 240 242 241 /* Ensure no-one is preepmted on the garbages */ 243 - mutex_unlock(&kprobe_insn_mutex); 244 - safety = check_safety(); 245 - mutex_lock(&kprobe_insn_mutex); 246 - if (safety != 0) 242 + if (check_safety()) 247 243 return -EAGAIN; 248 244 249 245 hlist_for_each_entry_safe(kip, pos, next, &kprobe_insn_pages, hlist) {
+3 -3
kernel/trace/Kconfig
··· 226 226 the timings of the initcalls and traces key events and the identity 227 227 of tasks that can cause boot delays, such as context-switches. 228 228 229 - Its aim is to be parsed by the /scripts/bootgraph.pl tool to 229 + Its aim is to be parsed by the scripts/bootgraph.pl tool to 230 230 produce pretty graphics about boot inefficiencies, giving a visual 231 231 representation of the delays during initcalls - but the raw 232 232 /debug/tracing/trace text output is readable too. 233 233 234 - You must pass in ftrace=initcall to the kernel command line 235 - to enable this on bootup. 234 + You must pass in initcall_debug and ftrace=initcall to the kernel 235 + command line to enable this on bootup. 236 236 237 237 config TRACE_BRANCH_PROFILING 238 238 bool
+2 -2
kernel/trace/ftrace.c
··· 3160 3160 3161 3161 ret = proc_dointvec(table, write, file, buffer, lenp, ppos); 3162 3162 3163 - if (ret || !write || (last_ftrace_enabled == ftrace_enabled)) 3163 + if (ret || !write || (last_ftrace_enabled == !!ftrace_enabled)) 3164 3164 goto out; 3165 3165 3166 - last_ftrace_enabled = ftrace_enabled; 3166 + last_ftrace_enabled = !!ftrace_enabled; 3167 3167 3168 3168 if (ftrace_enabled) { 3169 3169
+3
kernel/trace/trace_event_types.h
··· 26 26 ftrace_graph_ret_entry, ignore, 27 27 TRACE_STRUCT( 28 28 TRACE_FIELD(unsigned long, ret.func, func) 29 + TRACE_FIELD(unsigned long long, ret.calltime, calltime) 30 + TRACE_FIELD(unsigned long long, ret.rettime, rettime) 31 + TRACE_FIELD(unsigned long, ret.overrun, overrun) 29 32 TRACE_FIELD(int, ret.depth, depth) 30 33 ), 31 34 TP_RAW_FMT("<-- %lx (%d)")
+1 -2
kernel/trace/trace_output.c
··· 27 27 { 28 28 int len = s->len >= PAGE_SIZE ? PAGE_SIZE - 1 : s->len; 29 29 30 - s->buffer[len] = 0; 31 - seq_puts(m, s->buffer); 30 + seq_write(m, s->buffer, len); 32 31 33 32 trace_seq_init(s); 34 33 }
+2 -2
kernel/trace/trace_stack.c
··· 326 326 ret = proc_dointvec(table, write, file, buffer, lenp, ppos); 327 327 328 328 if (ret || !write || 329 - (last_stack_tracer_enabled == stack_tracer_enabled)) 329 + (last_stack_tracer_enabled == !!stack_tracer_enabled)) 330 330 goto out; 331 331 332 - last_stack_tracer_enabled = stack_tracer_enabled; 332 + last_stack_tracer_enabled = !!stack_tracer_enabled; 333 333 334 334 if (stack_tracer_enabled) 335 335 register_ftrace_function(&trace_ops);