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