On 03/07/2012 07:13 PM, Roberto Bielli wrote: > Hi Gilles, > > this is the trace and the test. > > It seems that '__ipipe_dispatch_event' last about ~84 milliseconds with > disable interrupts.
Sorry, I somehow missed this post. I am afraid you are mis-reading the trace. The time spent in user-space gets accounted to __ipipe_dispatch_event, because this is the last instrumented function called before the return to user-space. Interrupts are disabled at this point, this is perfectly normal, but they are probably re-enabled when returning to user-space. What is more problematic, however, is that the timer interrupt did not tick at -83749 like it is supposed to. If it had ticked and the interrupt had been disabled in user-space, you would have taken the interrupt at -35, when __ipipe_syscall_root gets called with interrupts on. So, now, you have to understand why the timer interrupt did not tick. I suggest, when the problem happens, you look at: * the interrupt controller register, to see if the timer interrupt is still masked, if it is masked, then try first commenting out the snippet in arch/arm/plat-mxc/avic.c which declares mxc_mask_irq as the irq_mask_ack callback * the timer registers, to see if the timer was programmed correctly, and is still ticking when the issue happens. -- Gilles. _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core