Re: [PATCH] tracing: use raw spinlocks instead of spinlocks

From: Ingo Molnar
Date: Wed Nov 05 2008 - 05:56:16 EST



* Frédéric Weisbecker <fweisbec@xxxxxxxxx> wrote:

> 2008/11/4 Ingo Molnar <mingo@xxxxxxx>:
> > just make sure normal printk is totally silent. (otherwise you get
> > double lines on the console plus no reduction in recursion risk)
> >
> > i usually add a return; hack to kernel/printk.c:printk(), to make sure
> > it never executes anything. (and add a notrace to it as well) Maybe we
> > could even make this dependent on early_printk=...,keep.
>
> Thanks for your help!
>
> I tried the earlyprintk=vga,keep and I thought that the normal printk
> output would
> be replaced by early_printk output but that's not the case...
> So I replaced the content of printk by this of early_printk and it worked.
> But it seems that after the setting of the console, the early_printk
> doesn't work anymore.
>
> Should I disable something else? I haven't any console=.... parameter
> but I guess I missed
> something there...

perhaps try a "console=tty 3" bootup - to boot into non-graphics
initlevel 3, and to have a vga tty set up. Then comment out the
regular printk(), to make sure it never tries to output to the regular
tty.

does earlyprintk=vga,keep work in that case?

> But, I set the parameter nmi_watchdog=2 (I didn't know I had to
> start explicitly the nmi watchdog) and at last... I had my
> backtraces :-)

heh :-)

> All these backtraces were related to time function. And one of the
> special things of the time functions is that they often manipulate
> 64 bits numbers. Actually I totally forgot that a function could
> return a long long, so I had to save edx register in the return
> handler to restore it in its end because 64 bits numbers are
> returned as a couple into eax and edx in x86-32.
>
> So the main problem is now solved. But it remains a last (but more
> rare) deadlock somewhere. I don't know why at this time and the nmi
> watchdog doesn't tell anything. So I will have to use early_printk
> to see the last functions traced. But the problem is that it doesn't
> print on the console...

hm. Let me know if you cannot get this to work. I regularly use
earlyprintk=serial,...,keep myself, and it works there - but i dont
use earlyprintk=vga,keep that often.

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