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

Reply via email to