> >I havent found any way to force a linux user space process to run
> immediately after my real-time IRQ handler.

Use a fifo and have the realtime section post to the fifo when it runs.
In the linux app, simply open the fifo and then read it with a normal
blocking "read" something like:

   fifo = open(fifo)
   run = 1

   while ( run ) {
     l = read(fifo)
     process...
   }

This will cause the linux scheduler to run your linux app when the fifo
has data in it and your linux app and rt app will be in sync unless/until
something disrupts the linux app.  

If your linux app is more complex and must be monitor multiple things at
once, your should use "select".  Select permits a linux program to
effectively wait on I/O from multiple sources at once.  


> I'm trying to decrease the timeslice duration 
> in Linux so my soft real time app has a faster response to what the real
> time handler has done.

You don't have to do this at all.  It will cause the system to waste more
time switching about.



> >I see (on an O-scope) my process runs every 2 msec, (as opposed to every
> >20 ms when HZ was 100). Why doesn't this process run every millisecond ? !!!


Sounds like an N-1 problem.  Try changing the interval from 1 to 2 and
then 3 and note the rate for each on your scope. I suspect with  an
interval of 1, you'll execute on every other timer interrupt not every
interrupt.  This is contrary to the man page at:

http://rtlinux.cs.nmt.edu/~rtlinux/man/rt_task_make_periodic.2.html


C. W. Wright

   http://www.remote.sensing.org



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