RTEMS SMP Status Report v3
Sebastian Huber
sebastian.huber at embedded-brains.de
Wed Dec 21 14:19:35 UTC 2016
On 21/12/16 15:02, Cudmore, Alan P. (GSFC-5820) wrote:
> I agree, it’s an excellent report. Thanks for the SMP implementation in RTEMS, it is very important to our future work.
>
> In the past I have used the classic RTEMS API. For SMP applications, is there a preferred API? Does the POSIX API offer more control or features over the Classic API for SMP?
There is an discussion about self-contained objects and its use inside
of RTEMS:
https://devel.rtems.org/ticket/2843
I would definitely use self-contained objects for an SMP application. I
would also prefer a standard API to be as much as possible compatible to
Linux. Currently available are OpenMP, C11 and C++11 (or FreeBSD kernel
APIs via libbsd). They all lack support for various options interesting
for real-time applications, e.g. binary semaphores, counting semaphores,
priority ceiling mutexes, barriers, message queues, etc.
We should change the POSIX synchronization objects
* mutexes,
* rwlocks,
* barriers,
* condition variables,
* keys, and
* semaphores
into self-contained objects from my point of view. Since the POSIX types
are now defined in a system-specific header file, this is quite easy:
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=blob;f=newlib/libc/sys/rtems/include/sys/_pthreadtypes.h;h=bd66c689ecf0a3ef335867b5a08d32f9dfe9041b;hb=HEAD
Its about a man week of work to do this (more if certain defects of the
POSIX implementation should be fixed).
The POSIX API provides no binary semaphores, so task/interrupt
synchronization is a problem. So, for drivers there is still a need for
some RTEMS-specific APIs.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list