[Rtai] two kernel tasks mutual interference
aivanov at ligo.caltech.edu
Tue Sep 30 03:00:16 CEST 2008
I tried running one of our control apps consisting of two real-time tasks
running on different CPUs communicating through shared memory. Both tasks
run at 32 kHz sampling frequency and they use different A/D converters to
read voltages, then they exchange data. This is done so that some of the
filtering can be done in parallel.
They appear to run fine when I can bring them up together. But startup
appears to be hard to achieve. The first task to be started runs fine. The
second one usually kills the first one unless I am lucky and they both
stay up an running. I think that the process of starting the second task
slows down the first one and kills it (it gets DMA timeouts).
These two tasks are compiled as different kernel modules and are loaded
separately. The first task to be loaded just starts going, it doesn't
wait for the second task, there is no synchronization.
Is there a way to make sure that already running tasks are not bumped into
when I start new tasks?
More information about the Rtai