Re: [Xenomai-core] Bug in rt_task_sleep() ?

2009-11-28 Thread Jan Kiszka
Michael Löffler wrote:
 Hello List!
 
 I have an application running rt_task_sleep() in a loop. After a more or
 less random number of loops, something up to 5000 cycles, the system
 reboots with the following error message:
 
 Kernel panic - not syncing:
 BUG!
 4BUG: failure at kernel/ipipe/core.c:319/__ipipe_restore_root()!
 
 For me it's not a bigger issue, as I can replace it with usleep() and

usleep means that your RT task leaves real-time space for the execution
of this Linux service. So you effectively avoid the permanent switch
between primary and secondary mode that your demo currently triggers due
to rt_task_sleep vs. printf.

 everything works fine, but maybe it's something, someone could have a
 closer look at. On my system (blackfin537-stamp, uclinux2008, xenomai
 2.4.0) it can be reproduced with the following code:

Already tried with a non-outdated Xenomai release, namely 2.4.10 or 2.5
git? It makes no sense hunting already fixed bugs.

Jan



signature.asc
Description: OpenPGP digital signature
___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


[Xenomai-core] Bug in rt_task_sleep() ?

2009-11-27 Thread Michael Löffler
Hello List!

I have an application running rt_task_sleep() in a loop. After a more or
less random number of loops, something up to 5000 cycles, the system
reboots with the following error message:

Kernel panic - not syncing:
BUG!
4BUG: failure at kernel/ipipe/core.c:319/__ipipe_restore_root()!

For me it's not a bigger issue, as I can replace it with usleep() and
everything works fine, but maybe it's something, someone could have a
closer look at. On my system (blackfin537-stamp, uclinux2008, xenomai
2.4.0) it can be reproduced with the following code:

#include stdio.h
#include unistd.h
#include rtdm/rtdm.h
#include native/task.h
#include linux/delay.h

RT_TASK _rtTask;

int main(int argc, char *argv[]) {
rt_task_shadow(_rtTask, whatever, 1, 0);
rt_task_set_mode(0, T_PRIMARY, NULL); // primary

uint32_t n = 0;
while (1) {
printf(Loop %u OK. Waiting\n, n++);
rt_task_sleep(1); // 500MHZ - 0.2s
//usleep(10);
}
}


___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core