Summary: How do I activate a userspace program from an rtlinux kernel
module quickly ?

Hello,

I've been reading this mailinglist for some time and have experimented
with rtlinux a little.

My main interest is in programming demos, which may be described as a
sort of realtime multimedia productions, much like what unix people
know as `eye-candy'.

What I'd like to do is build a kernel module that activates a routine
that will poll the vertical retrace register of an IBM VGA card, and
when the retrace starts, the kernel module should activate a userspace
process, the demo. Then the userspace process continues for some time,
and when it's finished rendering a screenful, it gives control to the
other processes running in the background. Then some time later the
realtime clock should activate the vertical retrace polling routine
again and everything starts all over again. One loop of this passes
in 1/70th of a second, since the refresh frequency of the IBM VGA in
the mode used is 70Hz.

By this method the userspace process will be able to update the screen
at every screen refresh, and is thereby able to produce fluent motion
animation.

If i just reschedule the userspace process and poll the vertical
retrace register directly, other processes don't get any cpu power and
some (network traffic handling &c) will timeout eventually. The 70 Hz
frequency is too high to use linux's default timer functionality.

I have experimented with an rtlinux kernelmodule which made the rtc
run at 8192Hz, and activate the vertical retrace polling routine just
before the actual retrace would occur (some 10% earlier). I haven't
been able to make a fast `connection' with the userspace process
though. In most examples on rtlinux and rtai that I could find, the
userspace programs are not realtime.

My questions now are the following:

How do I wake up the userspace process easily?  Do i have to modify
the default linux scheduler?  Is rtlinux of any use here, or is it
impossible to reschedule processes this fast?

Thanks in advance,
-- 
Tijs van Bakel, <[EMAIL PROTECTED]>
--- [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