On 03/03/2012 01:14 AM, Oscar Dávila wrote:
> 2012/3/2 Gilles Chanteperdrix <[email protected]>
>
>> On 03/02/2012 11:04 AM, Gilles Chanteperdrix wrote:
>>> On 03/01/2012 05:23 AM, Oscar Dávila wrote:
>>>> Finally i could get the dump
>>>>
>>>>
>>>> post-prompt
>>>> No breakpoints or watchpoints.
>>>>
>>>> breakpoints-table-end
>>>>
>>>> post-prompt
>>>> Dump of assembler code for function __ipipe_sync_stage:
>>>> 0xc106d376 <__ipipe_sync_stage+0>: push %ebp
>>>> (...)
>>>> 0xc106d526 <__ipipe_sync_stage+432>: ret
>>>> End of assembler dump.
>>>
>>> The address where the EIP is when the NMI watchdog triggers is
>>> 0xc106d5e1, so, outside this code.
>>>
>> And this dump does not seem to correspond to the kernel that was running
>> when the bug happened, because in that case we had
>>
>> 0xc106d5e1 == __ipipe_sync_stage + 0x21b
>>
>> whereas in your dump,
>>
>> __ipipe_sync_stage + 0x21b == 0xc106d591
>>
>> Sorry about that, i lost that image of the kernel.
>
> Here is a new complete test.
>
> Kernel Messages
>
>
> Kernel failure message 1:
> BUG: NMI Watchdog detected LOCKUP on CPU0, ip c10751d3, registers:
>
> local_irq_disable_hw();
> c10751bf: fa cli
> c10751c0: 89 e0 mov %esp,%eax
> c10751c2: 25 00 e0 ff ff and $0xffffe000,%eax
> root_stall_after_handler();
> while (__ipipe_check_root_resched())
> c10751c7: 83 78 14 00 cmpl $0x0,0x14(%eax)
> c10751cb: 75 58 jne c1075225 <__xirq_end+0x2>
> c10751cd: f6 40 08 08 testb $0x8,0x8(%eax)
> c10751d1: 74 52 je c1075225 <__xirq_end+0x2>
> c10751d3: eb f8 jmp c10751cd
> <__ipipe_sync_stage+0x12b>
> __ipipe_preempt_schedule_irq();
Looks like an infinite loop when CONFIG_PREEMPT is off. Try putting an
#ifdef CONFIG_PREEMPT around this code:
#ifdef CONFIG_PREEMPT
while (__ipipe_check_root_resched())
__ipipe_preempt_schedule_irq();
#endif
To test that this is indeed the issue, you may try enabling
CONFIG_PREEMPT in the code.
>
--
Gilles.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help