Real Time in Solaris. Help with your experience...

Real Time in Solaris. Help with your experience...

Post by TN1X Yaeli Karni 408 » Mon, 19 May 1997 04:00:00



Hello,

   Do you have experience with the Real-Time class of Solaris

  o  Were you satisfied?
  o  What problems one should expect ?
  o  Special features you liked / lacked ?
  o  Do you know the interrupt latency time (I read that the
interrupt        thread should be run within 2 milli seconds since
     the interrupt - is it right? Do you have other times?).
  o  How many events per second did your system handled

  We want to use Sun/Solaris board as the application processor for
  a telephony application which should handle between 100 to 400
  events per second. The events are coming from other specialized
  boards in the system.  

  Any experience/recommendation to share with us?

                        Regards,

                       Yaeli Karni    Telephone:  + 972 8 977 4087

--

 
 
 

Real Time in Solaris. Help with your experience...

Post by John Bens » Tue, 20 May 1997 04:00:00


     Solaris real time?  My experience has been very good,
but you have to design the application to take advantage
of what works and what does not.

     My application has 2.11 million bits per second continuausly
coming in, and I can read it with no data loss on a Solaris x86
p5 system.  Single processor, 32m of ram.

     To do so, first, we put a FIFO on the hardware so the
interrupt rate went down to about one every 60 milliseconds.
Then I constructed a software FIFO behind the hardware FIFO
large enough to accomidate almost a whole second's worth of data.

     The reason for that, is that the part of the IO driver
copying data from kernel memory to user memory is part of
a normal process, and even with real time priority, you can't
trust the scheduler to dispatch your real time process very
well.  The typical latency is 10 milliseconds, but worst case
is very much worse.

     Now, my FIFOs never overflow, as long as the overall
interrupt rate in the rest of the box stays low, say less than
1500 per second.  Bad ethernet cards or cheap IDE disks
are right out, since they trade off having the processor do
too much of the work, and their interrupt rate is too high.
Especially the IDE disks.  Scsi, like the 2940 controller
fixes that perfectly.

     Solaris latency makes me think it would not be a good
system for process control loop kinds of real time.  But
for telemetry ingest, which is what I'm doing, I'm quite
certain I could crank the rate up to at least 10 million bits
per second and it would still work just fine.


       John M. Benson
       Space Science and Engineering
       University of Wisconsin

 
 
 

Real Time in Solaris. Help with your experience...

Post by Lupe Christo » Tue, 20 May 1997 04:00:00



>I've spent nearly two years `lost in parameter space' trying to make a
>Solaris system do this kind of thing.  It's nearly impossible, since
>there seem to be a only a few combinations of setting that keep the
>interrupt latency within bounds. In most of my experiments the typical
>latency was <1ms but I got occasional latencies >100ms which killed the
>system.
>My system, which now seems to be stable and robust, has these
>characteristics:

You did not mention the Solaris release. The behaviour you describe
occurred in 2.4 and should have been fixed in 2.5 (there was a window
in the scheduler or dispatcher that could postpone the RT process
if hit in the right way).
--


| "I don't have a life - I have a program."          | s-/+ n+ h f* g+ w+ t+  |
| The Doctor, Startrek Voyager, "Tattoo"             | r+ !y                  |
 
 
 

Real Time in Solaris. Help with your experience...

Post by Guy Rixo » Tue, 20 May 1997 04:00:00



Quote:

> Hello,

>    Do you have experience with the Real-Time class of Solaris

>   o  Were you satisfied?
>   o  What problems one should expect ?
>   o  Special features you liked / lacked ?
>   o  Do you know the interrupt latency time (I read that the
> interrupt        thread should be run within 2 milli seconds since
>      the interrupt - is it right? Do you have other times?).
>   o  How many events per second did your system handled

>   We want to use Sun/Solaris board as the application processor for
>   a telephony application which should handle between 100 to 400
>   events per second. The events are coming from other specialized
>   boards in the system.

I've spent nearly two years `lost in parameter space' trying to make a
Solaris system do this kind of thing.  It's nearly impossible, since
there seem to be a only a few combinations of setting that keep the
interrupt latency within bounds. In most of my experiments the typical
latency was <1ms but I got occasional latencies >100ms which killed the
system.

My system, which now seems to be stable and robust, has these
characteristics:

SS5/85 dedicated processor.
Interrupt rate ~250Hz consisting of input from one physical device,
that device being on S-bus.
Interrupts fielded by four processes each running the same program
on a different minor of the physical device.
I/O processes are multithreaded and sink the read data to disk.
* The four programs in RT scheduling class.
* Time quantum for RT scheduling 20ms.
* No other RT processes on the system.
* No swap file.
* Input and output to disk are in separate threads.
* Threads have process scope, not system.
* Input thread has higher priority than anything else in its process.

The attributes marked with `*' seem to be the critical ones, especially
the low time-quantum.

Things that have been suggested as problems but don't seem as important:
- Being on ethernet.
- Bulk I/O to disk.
- Program buffers not locked into RAM.
- NFS traffic.
- TS-class processes (a few only) on the same machine.
--

Software Engineering Group,             Tel: +44-1223-374000
Royal Greenwich Observatory             Fax: +44-1223-374700

 
 
 

Real Time in Solaris. Help with your experience...

Post by Guy Rixo » Mon, 26 May 1997 04:00:00




> >I've spent nearly two years `lost in parameter space' trying...

> You did not mention the Solaris release. The behaviour you describe
> occurred in 2.4 and should have been fixed in 2.5 (there was a window
> in the scheduler or dispatcher that could postpone the RT process
> if hit in the right way).

Yes, I heard about that through this newsgroup.  My project started at
Solaris 2.4 and the problems continued with 2.5 until I hit on the
solution in my previous post.  Now
we're at Solaris 2.5.1 (customer upgraded their cluster the day before
installation) and it's all broken again.

I don't think  Solaris is remotely suitable for hard real-time data
acquisition.
--

Software Engineering Group,             Tel: +44-1223-374000
Royal Greenwich Observatory             Fax: +44-1223-374700

 
 
 

1. Needed - experienced brain in - MPEG, Windows Media 9, codec in real-time embedded system environment

We have a client - N.Calif. whom desperately needs help.

Name your salary deal. (within reason)

might benefit a member of the group.

a.. We seek your experience in the following areas:

a.. MPEG-2 transport stream
a.. MPEG2/4, H.264, and Windows Media 9 Series Code
a.. Real-time embedded systems (VxWorks, or real time Linux), and network
programming.
a.. C/C++
a.. Video streaming using RTP/RTSP
a.. Built set top box player or AV box dealing with video and audio codec

The following skills are desired:

a.. Hands on networking, system integration, script programming
a.. Has network installation experience
a.. Able to debug network, and can use network debugging tool e.g. sniffer
a.. Has system testing experience
a.. Experience of product development cycles including product release, and
field support, etc.

--

Ref UT002

John D Allen. CEO & President.
Leveridge Systems INC.
v1 (909) 699 3751
f1 (800) 783 4350

2. Newbie Question

3. System time warping around real time problem - please help

4. How do I parse words in sh?

5. Kernel Change Summary 1.3.93

6. Real/Non-real time communication over Ethernet?

7. SunRay and resolution setting

8. Solaris 2: Time to convert? Request for experiences

9. Real time on Solaris

10. Real-time process and Solaris

11. Solaris real time scheduler - does it work?

12. Threads, real time and LWPs on Solaris 2.2