> -----Message d'origine-----
> De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De
> la part de ROSSIER Daniel
> Envoyé : vendredi, 21. juillet 2006 15:40
> À : [EMAIL PROTECTED]; Daniel Simon
> Cc : [email protected]
> Objet : RE: [Xenomai-help] Priority inversion
> 
> 
> > -----Message d'origine-----
> > De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> De
> > la part de Philippe Gerum
> > Envoyé : vendredi, 21. juillet 2006 15:16
> > À : Daniel Simon
> > Cc : [email protected]
> > Objet : Re: [Xenomai-help] Priority inversion
> >
> > On Fri, 2006-07-21 at 14:51 +0200, Daniel Simon wrote:
> > > On Fri, 21 Jul 2006 14:12:47 +0200
> > > "ROSSIER Daniel" <[EMAIL PROTECTED]> wrote:
> > >
> > > > but it might be at the spin() level.
> > >
> > > I have observed that the behaviour of rt_timer_spin() does not fit
> with
> > > the expected behaviour as described in the doxygened comment: its
> actual
> > > awakening time do not increase when it is preempted.
> > >
> > > According to the code in timer.c (using 2.1.2) the wakening time seems
> > > to be computed once for all at the beginning of the function call.
> > >
> > > Am I right?
> > >
> >
> > Yes. But nothing is said in the documentation about the determination of
> > the end spinning time, so the doc is right; what it says is that your
> > task is going to wait for a certain count of nanoseconds, as seen from
> > its own POV, it does not say that only cycles spent in actual spinning
> > wait on behalf of the caller should be accounted for. Fact is that the
> > task will have waited for a certain amount of time before returning,
> > what has occurred in the rest of the system during that period is
> > irrelevant to the purpose of rt_task_spin().
> >
> > I guess that your interpretation of the behaviour of your application
> > has been wrong due to the non-cumulative aspect of rt_timer_spin(), i.e.
> > a first spinning interrupted by a second one will exit immediately upon
> > return if the initial end time has been reached, because of the second
> > spin time. But in any case, this is an expected behaviour.
> 
> Yes, that's definitively the point; and again, sorry for the mishap with
> the mutex/sema, which actually perfectly works :-)
> 
> Back to rt_timer_spin(), in other words, does it mean that there is a kind
> of global counter used by this function that evolves over the different
> tasks when rt_timer_spin() is used, or something like this (no notion of
> virtual task time)?

An additional point: if we replace rt_timer_spin(n) by looping n times 
rt_timer_spin(1), the behaviour of this tricky application is correct!

> 
> >
> > >   Daniel
> > >
> > --
> > 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

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

Reply via email to