Hi, adam
On Mon Sep 19, 2016 at 22:55:52 +0800, li94575 wrote:
I compiled the l4re-snapshot-2014092821 with the default modules.list, and everything seems goes
well. However, L4Linux would stop at "Calibrating delay loop ...", because the value of jiffies did not change. Timer thread has not generate soft interrupt? If I entered jdb via ESC at this time, and quit via "g", then l4linux can run again. It makes me confused so much. Any help or suggestion will be very welcome.
This behavior typically indicates that there's an issue with Fiasco's timer interrupt or with the user-level one in L4Linux. For a start you could add e.g. a printk(".\n") in timer_thread in arch/l4/kernel/timer.c to see if it really does something. Does 'hello' work? Although it's a bit of work you could also compare the code of your snapshot and a recent one if there's any significant change (i.e. fix) that might be relevant. Check arch/l4/kernel/timer.c and src/kern/arm/timer-arm-generic.cpp and src/kern/arm/generic_timer.cpp in the Fiasco kernel.'Hello' can work well, which prints "Hello World!" circularly. I add printk(".\n") in timer_thread inarch/l4/kernel/timer.c, and found timer_thread stop at l4_ipc_reply_and_wait(u, t, &l, to) afterinitializing the variable ‘increment’. However, if I use LOG_printf() for printing, the phenomenon is different, that timer_thread trigers a soft interrupt once. I have checked src/kern/arm/timer-arm-generic.cpp and src/kern/arm/generic_timer.cpp in the Fiasco kernel, there is less likely to be a problem with them.