On 03/09/18 11:35, Sebastian Huber wrote:
Hello,
I have now a prototype implementation of the FreeBSD epoch memory
reclamation API:
https://github.com/freebsd/freebsd/blob/master/share/man/man9/epoch.9
I think it would be a nice feature for RTEMS SMP in general. One
option would be to integrate it in RTEMS instead of libbsd. This would
require an import of Concurrency Kit to RTEMS:
https://github.com/concurrencykit/ck
Concurrency Kit lacks support for C++ and needs probably some changes
to work well in uni-processor setups. So, it would need some changes
for RTEMS. What do you think?
Just some more background information. The Concurrency Kit offers an
epoch API for general use and is used by FreeBSD. The epoch API and
implementation from FreeBSD is a specialization which deals also with
the storage management of the epoch records (ck_epoch_record_t) as a
per-processor resource. The use of per-processor data is a very elegant
approach which avoids some life cycle issues which would pop up if
thread-local records would be used.
The measured performance on a T4240 is quite good. Concurrent enter/exit
scales linearly up to 12 processors, then I guess a bus saturation is
reached.
--
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.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel