I am running Xenomai 2.5.3, I-pipe version 2.9-00, with Linux 2.6.33.4
on a PowerPC MPC5121.  With small values of sleep ticks passed to
rt_task_sleep, I get various sorts of crashes.  Here is a simple program
using a delay loop that exhibits the behavior.


-----
#include <stdio.h>
#include <errno.h>
#include <native/task.h>
#include <native/timer.h>

int main(int argc, char **argv)
{
   int cnt=0;
   while(1)
   {
      int ret;
      if((ret = rt_task_sleep(rt_timer_ns2ticks(1000UL)))) {
         errno = -ret;
         perror("rt_task_sleep");
      }
      if(cnt++ > 100)
         break;
   }
   return 0;
}

If I increase the tick count, it seems to not occur.  The errors I get
are not quite consistent.  Here are a few examples of the output I get
from the kernel log.

-----

[   22.213774] Xenomai: Switching  to secondary mode after exception
#769 from user-space at 0xff7c7ac (pid 571)
[   22.226494] I-pipe: Detected illicit call from domain 'Xenomai'
[   22.226505] <3>        into a service reserved for domain 'Linux' and
below.

-----

[  216.495518] BUG: scheduling while atomic: gatekeeper/0/155/0x00000002
[  216.501932] Modules linked in:
[  216.504933] Call Trace:
[  216.507414] [c7883ed0] [c0008ba0] show_stack+0x3c/0x160 (unreliable)
[  216.513727] [c7883f00] [c001b338] __schedule_bug+0x6c/0x80
[  216.519211] [c7883f20] [c02792ec] schedule+0x5a8/0x5bc
[  216.524345] [c7883f70] [c00737cc] gatekeeper_thread+0x150/0x194
[  216.530250] [c7883fc0] [c003f250] kthread+0x78/0x7c
[  216.535111] [c7883ff0] [c0012ee8] kernel_thread+0x4c/0x68


I'm not sure if I have something misconfigured or what.  I am upgrading
from Xenomai 2.4.10 on an older kernel and I did not have this same
problem.

Thanks.


_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to