Re: frequent softlockups with 3.10rc6.

From: Dave Jones
Date: Wed Jun 26 2013 - 16:00:43 EST


On Wed, Jun 26, 2013 at 03:52:15PM -0400, Steven Rostedt wrote:

> > > Hmm, no it needs a fix to make this work. I applied a patch below that
> > > should do this correctly (and will put this into my 3.11 queue).
> > >
> > > If you run the test again with this change and with the above filter, it
> > > should stop the trace before overwriting the first dump, as it should
> > > ignore the printk output.
> >
> > I think something isn't right with this patch.
> > After 10 hours, I hit the bug again, but...
> >
> > (01:21:28:root@binary:tracing)# cat trace
> > # tracer: preemptirqsoff
> > #
> > (01:21:30:root@binary:tracing)#
>
> Did you apply the patch I added to my last email. It should have prevent
> that form happening :-/

Yeah, that's what I meant by "this patch".
To reduce ambiguity, I mean the one below.. There wasn't another patch
that I missed right ?

Dave


diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c
index b19d065..2aefbee 100644
--- a/kernel/trace/trace_irqsoff.c
+++ b/kernel/trace/trace_irqsoff.c
@@ -373,7 +373,7 @@ start_critical_timing(unsigned long ip, unsigned long parent_ip)
struct trace_array_cpu *data;
unsigned long flags;

- if (likely(!tracer_enabled))
+ if (!tracer_enabled || !tracing_is_enabled())
return;

cpu = raw_smp_processor_id();
@@ -416,7 +416,7 @@ stop_critical_timing(unsigned long ip, unsigned long parent_ip)
else
return;

- if (!tracer_enabled)
+ if (!tracer_enabled || !tracing_is_enabled())
return;

data = per_cpu_ptr(tr->trace_buffer.data, cpu);


--
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/