Messages in this thread |  | | Date | Wed, 5 Nov 2008 11:50:29 +0100 | From | "Frédéric Weisbecker" <> | Subject | Re: [PATCH] tracing: use raw spinlocks instead of spinlocks |
| |
2008/11/4 Ingo Molnar <mingo@elte.hu>: > 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...
|  |