Tomasz Motylewski wrote:
>
> I would like to ask whether calling wake_up_interruptible is OK in RTL and
> RTAI from real time ISR (or RT task)? I remember some discussion where Paolo
> stated it is possible in RTAI.
>
> Another question is whether I can use standard wake_up_interruptible() kernel
> call, or I have to change it to some other function?
>
> I have the following situation in mind: I have normal Linux interrupt
> handler, packing data into static buffer. It then calls
> wake_up_interruptible. Can I just register this handler as RT IRQ handler
> without any modification? When the woken up task will run? On next regular
> timer tick? Or after any other soft Linux interrupt (when BH is processed)?
>
> I hope the answer can be added to:
> http://gatling.aszi.sztaki.hu/~kissg/doc_nmt/context.html
>
> Best regards,
If I said that I was wrong. Maybe I was misunderstood, the technique
explained below is native in RTAI. I used it to implement fifos, where
you have just the same problem, when in RTL there was still a patch to
run a specific treal time task queue. In any case sorry.
In fact you should not wake up Linux processes within real time, as your
interrupt can have interrupted just an atomic process list management
within wake up itself, and that can cause troubles. Maybe it can work if
your task wait queue contains just one process. The safe way is to have
an RTAI sysreq pended so that it can be managed when the CPU is passed
back to Linux. There is no loss of efficiency as in any case the waken
up process will run only when Linux is back in charge. I guess is the
same in RTL now.
Ciao, Paolo.
-- [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/