2011/1/21 Philippe Gerum <[email protected]> > On Fri, 2011-01-21 at 18:01 +0100, Michel Rinaldi wrote: > > Hi to all, > > > > I'm running an application on a Linux system with kernel 2.6.35.7 > > patched with Xenomai 2.5.5.2, Adeos ipipe patch 2.7-04. > > My application uses native skin and creates some realtime tasks, each > > with rt_task_shadow(), each other with rt_task_create(). > > Sorry, -ENOPARSE. rt_task_shadow() is usually invoked from the main > thread to make it a Xenomai thread, rt_task_create is normally used to > create more tasks. Who is doing what in your code exactly? How many > times is rt_task_shadow() invoked? >
I apologize for "tar.gzipped" :-) explanation. I have one main thread that calls rt_task_shadow() to become a real-time task. This task creates a pthread that makes itself a real-time thread with rt_task_shadow() call. Then, latter task creates a new real-time task with rt_task_create(). First rt_task_create() call spends more time, next calls are immediate ( < 1millisecond ). > > When I call for first time rt_task_create(), this function is very > > slow (700-800 ms) to execute, also if rt_task_shadow() calls come > > first. Subsequent calls of rt_task_create() are quick as expected. I > > read on manual that at first call rt_task_create() creates a signal > > handler for SIGWINCH signal: could be this operation that wastes time, > > maybe on waiting some resources from Linx kernel? > > No, can't be that long. Something looks wrong in your application init. > I'll do additional checks on my code monday. > > > Another problem that I've encountered is that if I call a > > rt_int_delete() and then a rt_task_join() on userspace task that > > handles destroyed IRQ, rt_task_join() never returns (obviously this > > task was created with joinable flag). If I create this task without > > joinable flag and then I call rt_task_delete() instead rt_task_join() > > I obtain two different behaviours: sometimes rt_task_delete() returns > > but I still view task on /proc/xenomai/sched (with X status), > > sometimes system freezes on this call. > > Make sure to test the return values of ALL Xenomai syscalls in your app, > particularly what rt_intr_wait() sends you back, and make sure to break > out from your work loop whenever it signals any error. > I'll also add additional checks on all Xenomai calls. Thank you very much. Regards Mauro Salvini > > > Thanks to all in advance. > > Regards > > > > Mauro Salvini > > > > > > _______________________________________________ > > Xenomai-help mailing list > > [email protected] > > https://mail.gna.org/listinfo/xenomai-help > > -- > Philippe. > > > > _______________________________________________ > Xenomai-help mailing list > [email protected] > https://mail.gna.org/listinfo/xenomai-help >
_______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
