M. Koehrer wrote:
Hi all, I am about to switch an realtime application from Xenomai to the RT_PREEMPTION patch. Everything works really smooth, however I have one question. With my Xenomai application I use the message queue which combine transfer (including queuing) of data with activation of the thread. In my Xenomai application I use this feature quite frequently. Now, I am not sure how to do an equivalent with the RT_PREEMPT patch. (see http://www.xenomai.org/documentation/xenomai-2.4/html/api/group__native__queue.html) Of course I could use condition variables and a struct or array to hold the data I want to pass with the activation of a thread. However, using this approach I do not have the queuing (which is some extra effort I could spent...). Another idea I have: I could use sockets which realize the queuing but the overhead is too high. Is there any suitable way to implement a message queue like approach using RT_PREEMPT patch? I am running x86 (Dual/Quad Cores).
I don't if we have many xenomai experts on this list. It would help to understand which aspects of the Xenomai message queue are important to you (other than the ability to block on a queue and wake when a message is available). For a basic message queueing system with the ability to prioritize messages, you can look to the POSIX.4 Message Queues. A google search will provide plenty of howto's, and the API appears at least similar to what you were using with Xenomai.
I haven't looked, but I don't think Linux supports message driven Priority Inheritance (http://www.qnx.com/developers/docs/6.3.2/neutrino/sys_arch/kernel.html#Priority_inheritance_messages).
-- Darren Hart IBM Linux Technology Center Real-Time Linux Team -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html