Philippe Gerum wrote: > Jan Kiszka wrote: >> Hi Philippe, >> >> I had a bit "fun" today trying to get some of our robotic hardware >> running with latest Xenomai / Ipipe, also in order to test recent RTDM >> fixes. It turned out that the head-optimised variant easily creates that >> infamous stalled Xenomai domain, e.g. like this one: >> > > Eeek... Ok, two things come to my mind for debugging this issue. The > first one is > to make sure the assumption in ipipe_restore_pipeline_head() is a good > one, so could > you try please testing the patch below, and see if the situation > improves (it cannot > worsen anyway): > > --- include/linux/ipipe.h~ 2006-05-08 12:17:06.000000000 +0200 > +++ include/linux/ipipe.h 2006-05-12 00:17:00.000000000 +0200 > @@ -563,7 +563,9 @@ > static inline void ipipe_restore_pipeline_head(unsigned long x) > { > struct ipipe_domain *head = __ipipe_pipeline_head(); > +#if 0 > if (x != test_bit(IPIPE_STALL_FLAG, > &head->cpudata[ipipe_processor_id()].status)) > +#endif > __ipipe_restore_pipeline_head(head,x); > } > > > Second, if the first try is unsuccessful, could you try disabling the wired > interrupt support the way below, keeping the rest of the invariant pipeline > head optimizations active? > > --- kernel/ipipe/core.c~ 2006-05-07 18:05:28.000000000 +0200 > +++ kernel/ipipe/core.c 2006-05-11 18:34:57.000000000 +0200 > @@ -482,8 +482,10 @@ > if (ipd->irqs[irq].control & IPIPE_SYSTEM_MASK) > return -EPERM; > > +#if 0 > if (!test_bit(IPIPE_AHEAD_FLAG, &ipd->flags)) > /* Silently unwire interrupts for non-heading domains. */ > +#endif > modemask &= ~IPIPE_WIRED_MASK; > > spin_lock_irqsave_hw(&__ipipe_pipelock, flags); >
As long as I didn't messed my build up (it's late...): no effect for both patches. Jan _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core