stack overflow with RTAI 3.1 - test4 on 2.6.7

David Rolenc drolenc at
Fri Oct 1 17:39:41 CEST 2004


My driver basically starts DMAs from the realtime interrupt handler and 
then calls rt_pend_linux_irq() When a wakeup is desired.

The solution was two-fold.

First, the calls to pend were minimized by keeping better track of the 
amount of DMA done in the realtime ISR.

Second, as you may recall from my first post, the main purpose of the 
linux ISR in my case was to call a regular linux wakeup() to wake any 
waiters on the data obtained through the DMAs in the realtime ISR. I 
created a mask that was set when somebody actually was in need of a 
wakeup to minimize the calls to wakeup from within the linux ISR instead 
of blindly calling wakeup whether it was needed or not.


Paolo Mantegazza wrote:

> David Rolenc wrote:
>> A modification to minimize propagation of interrupts to linux in my 
>> driver fixed, or made less likely, the problem. I still am not 
>> convinced in the validity of this solution, but have not seen the 
>> problem in days. Thanks for everone's assistance.
> Can you give me clues on what you did to fix it. It might be of help 
> to remember it for any future need.
> Paolo.

More information about the Rtai mailing list