All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philippe Gerum <rpm@xenomai.org>
To: Steven Seeger <steve@domain.hid>
Cc: "xenomai@xenomai.org" <xenomai@xenomai.org>, xenomai@xenomai.org
Subject: [Xenomai-core] Re: [Xenomai-help] rt_task_wait_period() and overruns
Date: Wed, 01 Mar 2006 11:22:35 +0100	[thread overview]
Message-ID: <440575EB.4080304@domain.hid> (raw)
In-Reply-To: <C029D34C.25A3%steve@domain.hid>

Steven Seeger wrote:
> I do not recall having this problem with fusion, but I'll take your word on
> it. I don't have time to go back and check. :)
> 
> Purging the overrun count when rt_task_wait_period() is called may work but
> not for all conditions. For example, say I am monitoring a patient's
> heartbeat by taking an A/D reading every 1 ms in order to build an ECG
> waveform. If I have 4 overruns, I've got a problem because I've missed
> crucial data, and this is a serious problem. Of course, it isn't the RTOS's
> job to create an error condition in this fashion. But on the other hand, it
> woudln't be desirable to have 4 duplicate measurements in such a waveform,
> either. The user could check the overrun count himself already, if desired.
> 
> The problem with purging the overrun count is that a lot of periodic threads
> use counters to perform certain actions. Say my thread runs every 1 ms, so
> every 500 times I want to toggle an LED to make it blink at a rate of 2 Hz.
> If the overrun counter is purged, then such behavior is going to mess up the
> counter. If there is a momentary loss of realtime due to a higher priorituy
> thread going nuts, the light will still most likely blink at the right time.
> 
> Perhaps the best option would be to make this a task property that users can
> set? Keep the current behavior by default, but purge overruns if they so
> desire. The cost of this would be only one branch condition in
> rt_task_wait_period().
>

I'm not sure to get your point clearly, yet. The other option I've described for 
dealing with overruns in rt_task_wait_period would be as follows:

- save the count of overruns
- clear the count of overruns  /* i.e. "purge" */
- return both the saved count and -ETIMEDOUT to the user.

This way, rt_task_wait_period would return only once with an error status, telling 
the user about the exact count of pending overruns in the same time. In that case, 
the application code would be free to take all needed actions so that its results 
would not be polluted by the multiple overruns. In the waveform case, this would 
precisely allow not to log invalid data that would otherwise be obtained by 
spinning without waiting through multiple calls to rt_task_wait_period. In the 
counter example, nothing would prevent you from updating such counter once with 
the returned number of overruns.

> Steven
> 
> 
> On 2/28/06 9:53 AM, "Philippe Gerum" <rpm@xenomai.org> wrote:
> 
> 
>>Steven Seeger wrote:
>>Right (except that fusion never exhibited the behaviour you described,
>>though). 
>>Still, there is an interesting question that remains which you indirectly
>>brought 
>>in, and which is the real issue to worry about: does rt_task_wait_period(), as
>>it 
>>is now, behave in the best interest of users who happen to use it properly?
>>
>>I mean: if the application misses several deadlines because something is going
>>wild in there, wouldn't the recovery procedure be easier if one knows at once
>>how 
>>many deadlines have been missed in a raw, without having to call the RTOS
>>back. 
>>IOW, do we want to purge the overrun count after the first notification and
>>make 
>>rt_task_wait_period return this count (e.g. ala Chorus/OS's thread pools), or
>>would it be preferable to keep the things the way they are now?
>>
>>Breaking the API again is also an issue, albeit we already broke it for a few
>>other calls when working on v2.1 anyway.
>>
>>Open question. Something like a poll, actually.
> 
> 
> 


-- 

Philippe.


  reply	other threads:[~2006-03-01 10:22 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-27 14:20 [Xenomai-help] resume/suspend periodic timing issue Steven Seeger
2006-02-27 18:39 ` Gilles Chanteperdrix
2006-02-28 13:45   ` Steven Seeger
2006-02-28 13:55     ` Gilles Chanteperdrix
2006-02-28 14:07       ` Steven Seeger
2006-02-28 14:21         ` Jan Kiszka
2006-02-28 14:24           ` Steven Seeger
2006-02-28 15:10             ` Philippe Gerum
2006-02-28 15:13               ` Steven Seeger
2006-02-28 15:27                 ` Jan Kiszka
2006-02-28 15:29                   ` Steven Seeger
2006-02-28 15:43                     ` Jan Kiszka
2006-02-28 15:46                       ` Steven Seeger
2006-02-28 16:01                         ` Jan Kiszka
2006-02-28 16:27                           ` Steven Seeger
2006-02-28 15:29                 ` Philippe Gerum
2006-02-28 15:31                   ` Steven Seeger
2006-02-28 16:20                     ` Philippe Gerum
2006-02-28 16:28                       ` Steven Seeger
2006-02-28 16:37                         ` Philippe Gerum
2006-02-28 17:24                           ` Steven Seeger
2006-02-28 17:53                             ` [Xenomai-core] rt_task_wait_period() and overruns Philippe Gerum
2006-02-28 18:02                               ` [Xenomai-core] Re: [Xenomai-help] " Philippe Gerum
2006-02-28 18:15                               ` Steven Seeger
2006-03-01 10:22                                 ` Philippe Gerum [this message]
2006-03-01 15:25                                   ` Dmitry Adamushko
2006-03-01 16:00                                     ` Philippe Gerum
2006-03-01 19:01                                       ` Dmitry Adamushko
2006-03-03 11:29                                         ` Philippe Gerum
2006-02-28 13:57     ` [Xenomai-help] resume/suspend periodic timing issue Philippe Gerum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=440575EB.4080304@domain.hid \
    --to=rpm@xenomai.org \
    --cc=steve@domain.hid \
    --cc=xenomai@xenomai.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.