Gang,

        I am troubled by some rather non-deterministic behavior that I am
observing in the scheduler of RTL 3.0.  Basically, I have an ISR that
responds to an interrupt by doing a pthread_wakeup_np() on a thread that was
sleeping on a pthread_suspend_np().  Just before doing the wakeup I capture
the time from gethrtime().  Just after the wakeup, I capture the time with
another gethrtime().  I then examined the time difference between the two. 

        Unfortunately, rather than getting a large cluster of times centered
around some reasonably small mean time, I got a distribution that spread
over an order of magnitude.  Here is the histogram (roughly):

  0-2 uS  28,590,000
  2-4 uS  28,150,000
  4-6 uS     492,000
  6-8 uS     293,000
 8-10 uS     848,800
10-12 uS   1,051,000
12-14 uS      40,564
14-16 uS       1,272
16-18 uS       1,200
18-20 uS       1,094
20-22 uS       1,606
22-24 uS       3,084
24-26 uS         881
26-28 uS          10
28-30 uS           2

        This is running on a Celeron 400 with plenty of RAM.  Linux is
running a Tcl application that displays a front panel on an X window with no
window manager running.  I would describe the Linux load as "very light".

        I am greatly troubled by the very long delays here.  I was expecting
*all* of the delays to be in the sub-10 uS range and for the *vast majority*
to fall in the sub-2 uS range.  I am quite unpleasantly surprised.

        I need to depend on things to be deterministic.  Obviously,
something is preventing me from having any real semblance of determinism.
Does anybody have any suggestions for places to look for solutions to this
problem?

        Alternatively, if someone can provide a description of *why* I get
some delays in the tens of micro-seconds and some assurance that I will not
see *any* delay longer than X microseconds, that would help put my mind at
ease.

Regards,

Steve


------------------------------------------
Stephen D. Cohen, Engineering Manager
Xybion Positioning Systems
11528 53rd Street North
Clearwater, FLA  33760
phone: (727) 299-0150, fax: (727) 299-0804
------------------------------------------

-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/

Reply via email to