Timing problem on mem_fpage_unmap() in the fiasco kernel
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Fri Nov 24 22:11:33 CET 2006
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
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list