On Wed Nov 22, 2006 at 18:40:28 +0900, WanKeun Jo wrote:
I prevented the timing problem to occur by simply unset the l4linux-2.6 option "Show timing information on printks" before.
When the option is set, then in the function 'vprintk()' of "l4linux-2.6/kernel/printk.c", the system get current jiffies and then converted it to the string and add it to log buffer. The system works well right before the following codes in the function. When I remove the following code, the system works well without adding timing information on log buffer.
------------------------------------------------ tlen = sprintf(tbuf, 590 "<%c>[%5lu.%06lu] ", 591 loglev_char, 592 (unsigned long)t, 593 nanosec_rem/1000); 594 595 for (tp = tbuf; tp < tbuf + tlen; tp++) 596 emit_log_char(*tp); 597 printed_len += tlen; ------------------------------------------------
However, when I add one of the above three statements - (1) tlen = sprintf(), (2) for(), (3) printed_len += tlen - then the timing error occur during the "Freeing INITRD". even one statement of them..
This is so strange to me and also to you. I'm just beginner in this kind of works, so there might something that I overlooked.
Is there somebody who can give me an advice for this kind of ERRORs..??
Those kind of behaviour is probably hard to track down. It may also involve the kernel where one has to look what's going on. I usually start instrumenting user and possibly kernel code to follow code execution and understand what the code does. I know that this is not the easiest thing to do but that's how thing work out for me. There might be other possibilities...
Adam