Jack Whorn wrote:
> Hi Gilles,
>
>
>>Once your program enters this infinte loop, it never gets out, so :
>>- your assumption that "t_task_set_mode periodically clears T_LOCK and
>> T_SHIELD and sets T_RRB" is false;
>
>
> Yeah, I just realized that it does this only once. According to
> http://snail.fsffrance.org/www.xenomai.org/documentation/branches/v2.0.x/html/api/group__task.html#ga44But
> I think that the arguments used in the rt_task_set_mode() -call are correct.
> Isn't that sufficient for the Linux OS to catch e.g. keyboard interrupts?
>
>
>>- even if higher priority task runs, Linux, which is Xenomai idle task
>> never runs, so the system locks up.
>
>
> Gotcha, that sounds sensible to me.
>
> Actually, the higher-priority task uses some linux-system calls to store data
> to hard disk. This does no longer take place as soon as the infinite loop is
> entered. I expected priority coupling to solve that. Where is my error in
> reasoning?
Maybe storing data to the disk requires a kernel thread to flush them.
If this thread never has a chance to run, then your data are written in
the cache but never flushed to the disk. I may be wrong, but I am almost
sure that if you let Linux run, everything will go as expected.
If I am wrong, please, send us a self-contained example program which
demonstrates the behaviour you observed.
--
Gilles Chanteperdrix
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help