All of lore.kernel.org
 help / color / mirror / Atom feed
* RTAI -> Xenomai4
@ 2025-04-02 16:33 Markus Weiß
  2025-04-03  8:25 ` Philippe Gerum
  0 siblings, 1 reply; 3+ messages in thread
From: Markus Weiß @ 2025-04-02 16:33 UTC (permalink / raw)
  To: xenomai@lists.linux.dev

Hello Xenomai List,

sorry if this is not the right place to ask these kind of questions. Maybe somebody could point me in the right direction then.

We are currently considering Xenomai4 as a replacement for an older RTAI real time project that we have to revive for a client.
Some advisory comments to the following sections will be greatly appreciated.

One of the major requirements is to switch from hard real time in kernel mode, we had a kernel module for that, to hard real time
in user mode. We will now have a user mode process that shall do most of the work of the former kernel module. We did some
prototyping on current RTAI versions for X86_64 and things looked nice when we found that our RTAI system can become unstable
when put under stress even without our prototype software running at all on top of it. But only with RTAIs own test programs.

I'm currently checking the Xenomai4 API and found that thread creation and attaching to the EVL core is pretty similar to RTAI.

Using the clock and timer API it should be possible to setup a one shot timer which we will also need.

We also used RTAIs shared memory feature for some kind of communication between kernel mode and user mode. It seems as if
the File proxy API together with mmap() can be used to achieve what we need.

Additionally we used linux iotcl() to make calls to our kernel module to configure and run the application, do monitoring and what not.

The prototype used RTAIs rt_rpcx(), rt_evdrpx(), rt_receivex(), rt_returnx() and also RTAIs global heap for dynamically created
named shared memory to implement an ioctl()-like communication between several processes and our kernel module replacement
in user mode. Where needed communication between ioctl() threads in kernel space where synchronized with the real time thread.
So from a client perspective our ioctl() replacement does not need to communicate with the real time thread directly.
This works nicely except for the missing re-entrancy of ioctl() calls into a driver which could be solved by using threads at the right
place. I looked at the Cross-buffer API but our ioctl() interface is quite sophisticated and I am very unsure if the Cross-buffer APIs
intended use cases match the requirements we have in this area. Are there parts in the Xenomai4 API which could be of help here?
Maybe standard IPC mechanisms are better suited here, something like a local socket interfaces. Though, I do not have much
experience in the networking domain.

Mit freundlichen Grüßen I With best regards I 祝好!

Markus Weiß

Softwareentwicklung – Software Development

ARADEX AG
Ziegelwaldstrasse 3
73547 Lorch, Germany
Phone +49 7172 91 81 0
Fax +49 7172 91 81 91

Registergericht / Company register: Ulm HRB 701828
Vorstände / executive management: Dr. Stefan Hellfeld (Vorsitzender / Chairman), Ji Zhang
Aufsichtsratsvorsitz / Chairman of the Supervisory Board: Yingbo Wan
www.aradex.de  |  info@aradex.com  |  https://www.linkedin.com/company/aradex-ag  | https://www.aradex.de/datenschutzerklaerung/


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-04-03 10:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-02 16:33 RTAI -> Xenomai4 Markus Weiß
2025-04-03  8:25 ` Philippe Gerum
2025-04-03 10:18   ` AW: " Markus Weiß

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.