I personally think that it is simpler to unify all IPC under a single SRR
paradigm.   The problem with rt-fifo's is that you have to treat them
separately from the nameAttach/nameLocate paradigm.

I think it would be a useful contribution to be able to view an RT thread
as effectively a SIMPL "process".  This could be used to handle certain
classes of RTLinux problems quite nicely.

I agree that an RT blocking "sender" thread would appear to have little use
at first glance ... but there are many cases where the user process is a
natural receiver.  ie. it is blocking on messages from either other SIMPL
processes, the keyboard, sockets or rt-fifo messages and handling all
accordingly.  Even though the rt-fifo messages are in discrete packets they
are effectively banged together in a stream.   In these classes of problems
it is important to insure that the user space process operates fast enough
on average to empty the steam ... using the rt-fifo as a buffer for
fluctuations in user space timing.   We have successfully used this
technique for a voice over IP project. 

In the QNX world this kind of thing is often handled with a non blocking
send called a proxy.   Unfortunately to get data through the proxy method
is often a two step affair.   It would be nice to "have our cake and eat it
too".  rt-fifos are effectively non blocking sends with message content. 

What if we were to implement the non blocking send in a similar manner to
the non blocking receive?   The user space reply would then come in
asynchronously to the RTLinux side ... but that could still be useful.  

At 06:53 PM 3/17/00 -0500, you wrote:
>SIMPL - http://www.holoweb.net/~simpl
>
>
>Hi folks,
>
>I looked at  the rt-linux implementation of rt FIFO's for communication
>between rt-linux threads and user space today because I recall
>some interest in SRR and rt-linux. The fifo implementation is tiny
>and trivial, but I'm left wondering if its worth it. We have three different
>IPC possibilities here.
>
>1 - SRR between rt-linux threads. Given the tiny size/weight of rt-linux
>threads I don't see why this would be useful. If it was, it could be
>implemented trivially as simple wrappers around semaphores since
>the threads can access each others data already.
>
>2 - Send from rt-linux to user-space. Why a rt task would willingly block
>on a non-rt task is beyond me. This is useless.
>
>3 - Send from user-space to rt-linux. More interesting.
>
>On the rt-linux side it could do a name_attach(), then when it gets
>asynch notification of data availability (much like the FIFOs work),
>the thread could do a Receive() (which would never block). It
>could then do a Reply() of data back to user space whenever it
>wants. The u-space process would be blocked on the rt-thread
>until the reply occurs, and of course reply never blocks. Trigger()
>(which is also non-blocking) could also be implemented.
>
>So we have here a rt-linux task that from the user-space client process
>is indistinguishable from a user-space server process, it just does
>a name locate, and starts making requests. Sounds fine.
>
>---------
>Summary of rt-linux support (easily) possible:
>qnx_name_attach()
>Receive() (but it will never block...)
>Reply()
>Trigger()
>
>To the user-space client, rt-linux would look like anything else.
>
>---------------
>
>But why?
>
>It's trivial to use the FIFO's to talk to a rt-linux task, so I'm not sure
>what you'd gain here.
>
>Does anybody have any comments? Reasons why this would be worth
>my time implementing? I seem to recall some traffic on this list suggesting
>it might be worth it.
>
>Sam
>
>
>______________________________________________________________________
>To unsubscribe, write to [EMAIL PROTECTED]
>______________________________________________________________________
>Start Your Own FREE Email List at http://www.listbot.com
>
>
Robert D. Findlay
Senior Software Engineer        
FC software Inc.
Tel: (905)659-0512                      
email: [EMAIL PROTECTED]         Web: www.netcom.ca/~fcsoft
-- [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