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

From: Frédéric Weisbecker
Date: Wed Nov 05 2008 - 05:50:40 EST


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

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 :-)

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