[Patch 2/2] ksym_tracer:Handle machine stall when cat trace_pipefor ksym tracer

From: K.Prasad
Date: Tue Jun 16 2009 - 19:05:52 EST


'trace_pipe' does not handle a TRACE_TYPE_PARTIAL_LINE well and causes the
machine to stall. While a TRACE_TYPE_UNHANDLED return causes the tracer to
output unrelated data, a TRACE_TYPE_HANDLED return presents a clean output
(minus all partial traces).

Signed-off-by: K.Prasad <prasad@xxxxxxxxxxxxxxxxxx>
---
kernel/trace/trace_ksym.c | 6 ++++++
1 file changed, 6 insertions(+)

Index: linux-2.6-tip.hbkpt/kernel/trace/trace_ksym.c
===================================================================
--- linux-2.6-tip.hbkpt.orig/kernel/trace/trace_ksym.c
+++ linux-2.6-tip.hbkpt/kernel/trace/trace_ksym.c
@@ -389,6 +389,12 @@ static enum print_line_t ksym_trace_outp

trace_assign_type(field, entry);

+ /*
+ * Return early without any output if we don't have sufficient
+ * information
+ */
+ if ((!field->ksym_hbp->info.type) || (!field->ip))
+ return TRACE_TYPE_HANDLED;
ret = trace_seq_printf(s, "%-15s %-5d %-3d %-20s ", field->p_name,
entry->pid, iter->cpu, field->ksym_name);
if (!ret) {

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/