Re: Linux 3.1-rc9

From: Simon Kirby
Date: Wed Nov 02 2011 - 14:28:34 EST


On Wed, Nov 02, 2011 at 05:40:53PM +0100, Thomas Gleixner wrote:

> On Mon, 31 Oct 2011, Simon Kirby wrote:
>
> > One more, again a bit different. The last few lockups have looked like
> > this. Not sure why, but we're hitting this at a few a day now. Thomas,
> > this is without your patch, but as you said, that's right before a free
> > and should print a separate lockdep warning.
> >
> > No "huh" lines until after the trace on this one. I'll move to 3.1 with
>
> That means that the lockdep warning hit in the same net_rx cycle
> before the leak was detected by the softirq code.
>
> > cherry-picked b0691c8e now.
>
> Can you please add the debug patch below and try the following:
>
> Enable CONFIG_FUNCTION_TRACER & CONFIG_FUNCTION_GRAPH_TRACER
>
> # cd $DEBUGFSMOUNTPOINT/tracing
> # echo sk_clone >set_ftrace_filter
> # echo function >current_tracer
> # echo 1 >options/func_stack_trace
>
> Now wait until it reproduces (which stops the trace) and read out
>
> # cat trace >/tmp/trace.txt
>
> Please provide the trace file along with the lockdep splat. That
> should tell us which callchain is responsible for the spinlock
> leakage.
> Thanks,
>
> tglx
>
> --------------->
> kernel/softirq.c | 1 +
> 1 file changed, 1 insertion(+)
>
> Index: linux-2.6/kernel/softirq.c
> ===================================================================
> --- linux-2.6.orig/kernel/softirq.c
> +++ linux-2.6/kernel/softirq.c
> @@ -238,6 +238,7 @@ restart:
> h->action(h);
> trace_softirq_exit(vec_nr);
> if (unlikely(prev_count != preempt_count())) {
> + tracing_off();
> printk(KERN_ERR "huh, entered softirq %u %s %p"
> "with preempt_count %08x,"
> " exited with %08x?\n", vec_nr,

Ok, I'll try this. Hmm, all CPUs typically try to grab the lock fairly
quickly after it happens, which could make it difficult to cat the file.
I'll try ftrace_dump(DUMP_ALL); in there instead.

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