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
This commit is contained in:
Linus Torvalds 2009-07-10 11:41:41 -07:00
commit 2a6f86bc5e
6 changed files with 12 additions and 14 deletions

View File

@ -237,13 +237,9 @@ static int __kprobes collect_garbage_slots(void)
{ {
struct kprobe_insn_page *kip; struct kprobe_insn_page *kip;
struct hlist_node *pos, *next; struct hlist_node *pos, *next;
int safety;
/* Ensure no-one is preepmted on the garbages */ /* Ensure no-one is preepmted on the garbages */
mutex_unlock(&kprobe_insn_mutex); if (check_safety())
safety = check_safety();
mutex_lock(&kprobe_insn_mutex);
if (safety != 0)
return -EAGAIN; return -EAGAIN;
hlist_for_each_entry_safe(kip, pos, next, &kprobe_insn_pages, hlist) { hlist_for_each_entry_safe(kip, pos, next, &kprobe_insn_pages, hlist) {

View File

@ -226,13 +226,13 @@ config BOOT_TRACER
the timings of the initcalls and traces key events and the identity the timings of the initcalls and traces key events and the identity
of tasks that can cause boot delays, such as context-switches. of tasks that can cause boot delays, such as context-switches.
Its aim is to be parsed by the /scripts/bootgraph.pl tool to Its aim is to be parsed by the scripts/bootgraph.pl tool to
produce pretty graphics about boot inefficiencies, giving a visual produce pretty graphics about boot inefficiencies, giving a visual
representation of the delays during initcalls - but the raw representation of the delays during initcalls - but the raw
/debug/tracing/trace text output is readable too. /debug/tracing/trace text output is readable too.
You must pass in ftrace=initcall to the kernel command line You must pass in initcall_debug and ftrace=initcall to the kernel
to enable this on bootup. command line to enable this on bootup.
config TRACE_BRANCH_PROFILING config TRACE_BRANCH_PROFILING
bool bool

View File

@ -3160,10 +3160,10 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
ret = proc_dointvec(table, write, file, buffer, lenp, ppos); ret = proc_dointvec(table, write, file, buffer, lenp, ppos);
if (ret || !write || (last_ftrace_enabled == ftrace_enabled)) if (ret || !write || (last_ftrace_enabled == !!ftrace_enabled))
goto out; goto out;
last_ftrace_enabled = ftrace_enabled; last_ftrace_enabled = !!ftrace_enabled;
if (ftrace_enabled) { if (ftrace_enabled) {

View File

@ -26,6 +26,9 @@ TRACE_EVENT_FORMAT(funcgraph_exit, TRACE_GRAPH_RET,
ftrace_graph_ret_entry, ignore, ftrace_graph_ret_entry, ignore,
TRACE_STRUCT( TRACE_STRUCT(
TRACE_FIELD(unsigned long, ret.func, func) TRACE_FIELD(unsigned long, ret.func, func)
TRACE_FIELD(unsigned long long, ret.calltime, calltime)
TRACE_FIELD(unsigned long long, ret.rettime, rettime)
TRACE_FIELD(unsigned long, ret.overrun, overrun)
TRACE_FIELD(int, ret.depth, depth) TRACE_FIELD(int, ret.depth, depth)
), ),
TP_RAW_FMT("<-- %lx (%d)") TP_RAW_FMT("<-- %lx (%d)")

View File

@ -27,8 +27,7 @@ void trace_print_seq(struct seq_file *m, struct trace_seq *s)
{ {
int len = s->len >= PAGE_SIZE ? PAGE_SIZE - 1 : s->len; int len = s->len >= PAGE_SIZE ? PAGE_SIZE - 1 : s->len;
s->buffer[len] = 0; seq_write(m, s->buffer, len);
seq_puts(m, s->buffer);
trace_seq_init(s); trace_seq_init(s);
} }

View File

@ -326,10 +326,10 @@ stack_trace_sysctl(struct ctl_table *table, int write,
ret = proc_dointvec(table, write, file, buffer, lenp, ppos); ret = proc_dointvec(table, write, file, buffer, lenp, ppos);
if (ret || !write || if (ret || !write ||
(last_stack_tracer_enabled == stack_tracer_enabled)) (last_stack_tracer_enabled == !!stack_tracer_enabled))
goto out; goto out;
last_stack_tracer_enabled = stack_tracer_enabled; last_stack_tracer_enabled = !!stack_tracer_enabled;
if (stack_tracer_enabled) if (stack_tracer_enabled)
register_ftrace_function(&trace_ops); register_ftrace_function(&trace_ops);