Steven Scholz wrote:
>>>I am running 2.6.19 + adeos-ipipe-2.6.19-arm-1.6-02.patch +
>>>on an AT91RM9200 (160MHz/80MHz).
>>>When starting "latency -p 200" it runs for a while printing
>>>RTT| 00:05:37 (periodic user-mode task, 200 us period, priority 99)
>>>RTH|-----lat min|-----lat avg|-----lat max|-overrun|----lat best|---lat worst
>>>RTD| 11.200| 139.200| 236.800| 1| 10.800| 280.800
>>>but then hangs. The timer LED stops blinking. No "soft lockup detected"
>>The only explanation I have is that the period is too small. I do not
>>observe the same behaviour with latency -p 1000. Note that setting the
>>period to a value comparable to the latency is not considered a normal
>>use of Xenomai.
> Sure but I would still not expect the system to hang!
> As I said missing a deadline is bad but ok.
> But hanging the whole system is not quite ok.
I want this bug solved too, especially since I am not sure that we will
only see it with too short periods.
>>>Using a BDI200 it looks like that in kernel/sched.c:schedule() he is
>>>in the lines
>>> if (unlikely(!ipipe_root_domain_p))
>>>#endif /* CONFIG_IPIPE */
>>>When stepping trough I only see him getting into schedule() but leaving
>>>it in the above lines and in include/linux/proc_fs.h:proc_net_fops_create()
>>Ok. Thanks for pointing this out. That is interesting, but not very
>>informative. It would be interesting if you could get the full
>>backtrace. What would be also interesting would be to set a break point
>>on the timer interrupt handler and to follow what happens from timer
>>interrupt to timer interrupt.
> I tried! Attached the patch I used. Since teh scheduler hangs I can't use
> normal printk(), right?
> *ipipe_current_domain != ipipe_root_domain !
> *ipipe_current_domain = c01fc2c0
> *ipipe_root_domain = c01af2c0
> But I don't get the output of __backtrace()!
> my_printk() works with __backtrace(). The dump of a soft lockup works.
I would add the call to printascii(printk_buff) directly in vprintk, and
use printk. Note however that special care must be taken to avoid
recursion when calling printk inside schedule, because printk may use
schedule. Anyway, I think the tracer will give better results than a
Xenomai-core mailing list